La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 28/12/2024 09:57:55
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
Voila, dans mon modue ya un Guild hall de mages et dedans je voudrais metre des Golemes gardien, alors je voudrais que ces Golemes attaque tout ceux qui ne sont pas, soit mage soit sorcier, de fait que si tu n'est pas inviter, tu resort vite fait. esce possible ?
si oui ....par ou je comence ? |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
oui, c'est possible !
tu commences par faire un trigger, et sur le OnEnter, tu fais un Code : object oIntrus = GetEnteringObject(); object oGolem = GetObjectByTag("Goldorak"); //nbre de Golems taggés Gogoth0, Golgoth1, ... int nbre_de_Golgoth = 1; if (GetIsPc(oIntrus) && !(GetClassByPosition(1,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(2,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(3,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(1,oIntrus) == CLASS_TYPE_WIZARD || GetClassByPosition(2,oIntrus) == CLASS_TYPE_WIZARD || GetClassByPosition(3,oIntrus) == CLASS_TYPE_WIZARD)) { int i; for(i=0;i<nbre_de_Golgoth;i++){ object oGolem = GetObjectByTag("Golgoth"+IntToString(i)); AssignCommand(oGolem, ActionAttack(oIntrus)); } DetermineCombatRound(); } else { AssignCommand(oGolem, "Glad to see you My Master"); } pense à laisser une chance aux voleurs de passer sans combattre, par exemple, en mettant les Golems pas doué en Spot ... Dernière édition par Wololo le 16/01/2003 20:18:13; édité 1 fois
|
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
Ok geniale, mais va faloir que tu me prenne par la main, Le trigger jle met ou ? devant la porte par ou ont entre dans le Area ?
et le OnEnter de quoi ? du trigger , de l'area ? |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
tu mets le trigger ou tu veux, mais je le verrai bien dans l'antichambre, c'est évidemment le OnEnter du trigger (je trouve ca plus souple ...mais l'Area c'est possible aussi), évidemment il faut ne pas pouvoir l'éviter !
|
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
ok, et tout ce que jai a changer du script. c remplacer Goldorak par le Tag de mes Goleme ?
|
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
ah tiens d'ailleurs je me suis planté, attends j'éedites mais oui ...., en fait il faudrait le metttre plusieurs fois ...
mais attends ... voilà, il faut tagger tes Golems par un_nom0, puis un_nom1 etc ... tu mets le nombre de Golems dans nbre_de_Golems, et tu remplaces Goldorak et Golgoth par un_nom ... quoique le Golem qui fait une boule de feu, ca ressemble un peu au fulguropoing, l'appel de la foudre c'est corno-machin, la hache ca va être plus dur ... un p'tit module faites vous Goldorak ? |
Revenir en haut | |
Serguai Grand Chevalier Messages: 104 |
Ben la hache c'est Astérohache
Suffit de lui mettre une double hache dans les mains a ton golem ) |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
bah oui, mais ca va pas apparitre c'est pas prevu dans la skin ! c'est comme filer une armure lourde à un élémental ...
|
Revenir en haut | |
Serguai Grand Chevalier Messages: 104 |
Lol je sais, je plaisantais )
|
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
ok dit moi si sa a du sense ca :
Code : object oIntrus = GetEnteringObject(); object oGolem = GetObjectByTag("GolemedeTarem"); //nbre de Golems taggés Gogoth0, Golgoth1, ... int nbre_de_Golgoth = 2; if (GetIsPc(oIntrus) && !(GetClassByPosition(1,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(2,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(3,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(1,oIntrus) == CLASS_TYPE_WIZARD || GetClassByPosition(2,oIntrus) == CLASS_TYPE_WIZARD || GetClassByPosition(3,oIntrus) == CLASS_TYPE_WIZARD)) { int i; for(i=0;i<nbre_de_GolemedeTarem;i++){ object oGolem = GetObjectByTag("GolemedeTarem"+IntToString(i)); AssignCommand(oGolem, ActionAttack(oIntrus)); } DetermineCombatRound(); } else { AssignCommand(oGolem, "Glad to see you My Master"); } je crois pas que je voit claire, trop compliquer pour moi pouriez vous faire le script pour moi ? mes goleme ont le tag et le nom : GolemedeTarem je peut faire 1 trigger par goleme si il faut. |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
si j'ai bien vu y a deux GolemedeTarem : tag les GolemedeTarem0 et GolemedeTarem1 (même si je crois qu'on dit Golem, j'ai tout mis avec Goleme comme toi ...)
et ce script devrait marcher : Code : object oIntrus = GetEnteringObject(); object oGolem = GetObjectByTag("GolemedeTarem0"); int nbre_de_GolemedeTarem = 2; if (GetIsPc(oIntrus) && !(GetClassByPosition(1,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(2,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(3,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(1,oIntrus) == CLASS_TYPE_WIZARD || GetClassByPosition(2,oIntrus) == CLASS_TYPE_WIZARD || GetClassByPosition(3,oIntrus) == CLASS_TYPE_WIZARD)) { int i; for(i=0;i<nbre_de_GolemedeTarem;i++){ object oGolem = GetObjectByTag("GolemedeTarem"+IntToString(i)); AssignCommand(oGolem, ActionAttack(oIntrus)); } DetermineCombatRound(); } else { AssignCommand(oGolem, "Glad to see you My Master"); } la solution du script simple avec un trigger par Golem est très sale pour moi (mais je suis un informaticien ...). L'vanatage de ce script c'est qu'il suffit pour prendre un compte un autre Golem de changer son tag et de changer la variable nbre_de_GolemedeTarem. |
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
Dhoh...jai copier coler et sa ne compile po .. c dans la ligne ou ya le if en vert
sa dit INVALID DECLARATION TYPE ... |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
oui, erreur de majuscule, puis après il manquait un include .. pfiou, je me fais vieux moi ... heureusement je pars bientôt à la retraite ...
Code : #include "NW_I0_GENERIC" void main() { object oIntrus = GetEnteringObject(); object oGolem = GetObjectByTag("GolemedeTarem0"); int nbre_de_GolemedeTarem = 2; if ( GetIsPC(oIntrus) && !( GetClassByPosition(1,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(2,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(3,oIntrus) == CLASS_TYPE_SORCERER || GetClassByPosition(1,oIntrus) == CLASS_TYPE_WIZARD || GetClassByPosition(2,oIntrus) == CLASS_TYPE_WIZARD || GetClassByPosition(3,oIntrus) == CLASS_TYPE_WIZARD ) ) { int i; for(i=0;i<nbre_de_GolemedeTarem;i++){ object oGolem = GetObjectByTag("GolemedeTarem"+IntToString(i)); AssignCommand(oGolem, ActionAttack(oIntrus)); } DetermineCombatRound(); } else { AssignCommand(oGolem, SpeakString("Glad to see you My Master")); } } ca ca compile |
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
ca y est presque
encore une erreur ERROR : UNDEFINED IDENTIFIER (DetermineCombatRound) c ce que ca me dit quand jessai de compiler |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
Attention, il y a un include au tout début du script a effectué !
Si tu ne recopies pas cette ligne avant le main, le script butera toujours sur cette fonction ! J'ai réussi à compiler chez moi avec le dernier script fourni. |
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
Voila ou ca colais pas
|
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
reste plus qu'à tester !
|
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Désolé d'intervenir (surtout aussi tard ), mais, n'aurait-il pas été plus simple de mettre le script sur le OnPerception des Golems ?
Ainsi comme ça a été dis, ça laisse une chance aux persos invisibles... Enfin, je dis ça, je dis rien... _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Euh... il n'aurait pas été plus simple d'utiliser GetLevelByClass() ?
Code : #include "NW_I0_GENERIC" void main() { object oIntrus = GetEnteringObject(); int nbre_de_GolemedeTarem = 2; if ( GetIsPC(oIntrus) && !GetLevelByClass(CLASS_TYPE_SORCERER, oIntrus) && !GetLevelByClass(CLASS_TYPE_WIZARD, oIntrus)) { int i; for(i=0;i<nbre_de_GolemedeTarem;i++) { object oGolem = GetObjectByTag("GolemedeTarem"+IntToString(i)); AssignCommand(oGolem, ActionAttack(oIntrus)); AssignCommand(oGolem, DetermineCombatRound(oIntrus)); } } else { int i; for(i=0;i<nbre_de_GolemedeTarem;i++) { object oGolem = GetObjectByTag("GolemedeTarem"+IntToString(i)); AssignCommand(oGolem, SpeakString("Glad to see you My Master")); } } } J'ai également corrigé l'utilisation de DetermineCombatRound() et j'ai fait en sorte que tous les golems saluent. Mais à la base c'est le même script. |
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
en fait jai tester ce que Wolo avais conquocter et ca marche vien sauf que si un perso entre dans la Guild et que les goleme lataque, il n'ont qua ce depecher de se rendre ou le trigger au sol se termine pour etre sauf, aussi si ils decident en voyant 2 goleme facher qui se dirigent ver eux de resortir dehors, les Goleme les suivent dans la ville jusque a leurs Destruction Totale ! , en fait jai penser placer un WP_ dans la guilde pour que les goleme, aussi tot desinterreser y retourne, mais quand je fait ca, les golemes attaque qu'un seul round les intrus...Aussi jaurais besoin de gree une faction pour les goleme, si je les met commoner, et que un perso entre dans le guild hall, les goleme devienent hostil envores eux, alors il ressortent du guild hall pour se rendre compte que tout la ville leurs est hostile !! HAAA
mais jai pas encore compris coment fonctionnent les faction, jen ai cree une autre et quand je vais dans les stats, sa ne montre pas les % envers les autre faction, seulement envers celle que je vien de cree. Anyways c'est pas mal d'ouvrage, je crois que je vais laisser ca comme ca pour l'instant et juste assayer de trouver une solution pour la faction. merci a tous pour votre aide |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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