
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 30/04/2025 23:30:06
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 |
gussometre Ecuyer ![]() Messages: 56 Localisation: Petit asteroïde dans le finistére sud |
Bonjour bonsoir
![]() je suis en train de bosser sur un module ou les pj peuvent entrer dans des guildes. Le problemme c'est que j'aimerais que quand le chef meurt c'est le membre de la guilde le plus important qui lui succéde, j'ai pensé a une variable qui augmenterais selon les actions efectués par le joueur(ou peut etre memme par les pnj mais je suis pas encore assez expérimenté pour ca ![]() ![]() ![]() _________________ N'oublions pas le proverbe:quand on a faim il faut manger! Dernière édition par gussometre le 29/03/2006 13:03:32; édité 1 fois
|
Revenir en haut | ![]() ![]() ![]() ![]() |
kiky.le.magnifique Homme très gay ![]() Messages: 907 Localisation: Camping de la nation martienne... |
La vrai question, c'est comment sera augmenté cette variable?
Ce sera fait pas les MD? Par le chef existant de la guilde? Automatiquement dans le jeu par script? Dans le dernier cas : quel type d'action augmentera (ou diminuera) cette variable? Si c'était un module solo, un simple SetLocalInt aurait suffit. Mais j'imagine qu'il système de guilde, c'est plutôt du persistant ![]() vous utilisez quoi comme base de donné, celle d'origine de bioware ou une extérieure? (MySQL?) _________________ http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin! |
Revenir en haut | ![]() ![]() ![]() ![]() |
gussometre Ecuyer ![]() Messages: 56 Localisation: Petit asteroïde dans le finistére sud |
Ben en fait je le fait plus en monojoueur (Je sais c'est con mais bon
![]() ![]() ![]() ![]() _________________ N'oublions pas le proverbe:quand on a faim il faut manger! |
Revenir en haut | ![]() ![]() ![]() ![]() |
kiky.le.magnifique Homme très gay ![]() Messages: 907 Localisation: Camping de la nation martienne... |
Il va y avoir une histoire de boucle while.
Donc en fait, si c'est mono joueur, tous les membres de la guilde seront des PNJ (+ éventuellement le joueur ^^) c'est ça? Alors admettons que tu as 10 membres. Admettons qu'il ont une variable d'assignée : SetLocaInt(oPNJ, "Nivo", iN); Avec iN un chiffre variant de 1 à 10, le chef de la guilde ayant 10. Admettons que les membres aient pour tag "mbrgld01", "mbrgld02", "mbrgld03", "mbrgld04", etc, jusqu'à 10. Ton script se lance à la mort du chef de la guilde, donc c'est un script dans son OnDeath. Le chef disparaissant, le rang N°10 devient libre, alors le 9 deviens 10, le 8 deviens 9, etc... Je ferais donc un truc dans ce genre : NWScript :
void main() { int iNbGd = 1; // niveau 1 while (iNbGd <= 9) { object oFirst = GetObjectByTag("mbrgld0"+IntToString(iNbGd)); // le PNJ avec un tag mbrgld0 suivi du niveau iNbGd = iNbGd + 1; //on ajoute 1 SetLocalInt(oFirst, "Nivo", iNbGd); //on l'assigne au PNJ, qui obtient donc un point en plus. } int iPJnv = GetLocalInt(GetLastKiller(), "Nivo"); //le niveau du joueur SetLocalInt(GetLastKiller(), "Nivo", iPJnv+1); // +1 location lDied = GetLocation(OBJECT_SELF); effect eDis = EffectVisualEffect(VFX_FNF_DISPEL_DISJUNCTION); effect eBum = EffectVisualEffect(VFX_FNF_SCREEN_BUMP); effect eKil = EffectVisualEffect(VFX_FNF_PWKILL); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eDis,lDied); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eBum,lDied); DelayCommand(3.0,PlaySound("c_elemerth_dead")); DelayCommand(1.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eKil,lDied)); //fin des trucs pour faire jolie ![]() } Je suis un peu rouillé en script, j'ai pu me gourer quelque part, mais du moins ça compile ^^ _________________ http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin! |
Revenir en haut | ![]() ![]() ![]() ![]() |
-MeteZ- Seigneur ![]() Messages: 205 Localisation: Région Parisienne (95) |
Perso j'aurai juste fait stocker les membres de la guilde selon des grades en varibles campaign.
Genre "MAITRE_GUILDE_SCHRMOUF" => Joueur 2; "MEMBRE_SUPERIEUR_SCHRMOUF" => Joueur 1; Joueur 5; Après un script sur le OnPlayerDead, si c'est MAITRE_GUILDE_SCHRMOUF qui meurt eh bien tu fais des boucles en sortes de mettre le premier venu MEMBRE_SUPERIEUR_SCHRMOUF à la place. ![]() Ou encore plus simple : tu stock comme en mysql par ID et NUMERO Un tableau comme : ID NUMERO 1 1 2 2 3 2 4 3 5 3 6 3 Ou 1 = maître, 2 = membres supérieur, 3 = assistant. Bon faut quand même que tu sois a l'aise sur les boucles et les set...campaign. _________________ "Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit." |
Revenir en haut | ![]() ![]() ![]() |
-MeteZ- Seigneur ![]() Messages: 205 Localisation: Région Parisienne (95) |
Ups :s
_________________ "Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit." |
Revenir en haut | ![]() ![]() ![]() |
kiky.le.magnifique Homme très gay ![]() Messages: 907 Localisation: Camping de la nation martienne... |
Je vois pas trop l'intérêt de s'embêter avec des campaign si c'est du solo o,O"
Cela dit, j'ai pas tout compris à ta réponse, alors je suis p'tête à coté de la plaque aussi? lol! Utiliser les campaign, tu veux dire simplement changer mes LocalInt par des CampaignInt? Mais tu parle de "stocker les membres de la guilde", alors tu pense peut être plutôt à StoreCampaignObject/RetrieveCampaignObject ??? Oulà, il est temps que j'aille me coucher moi! ![]() _________________ http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin! |
Revenir en haut | ![]() ![]() ![]() ![]() |
Argyl Grand Sage du Conseil ![]() Messages: 704 |
Gussometre pourrais-tu pour me faire plaisir (uniquement et bon facilité aussi les recherches) corriger ton titre comme suit :
Système de guilde / Quand le chef meurt |
Revenir en haut | ![]() ![]() ![]() |
-MeteZ- Seigneur ![]() Messages: 205 Localisation: Région Parisienne (95) |
Oui kiky c'est à peu près ce que j'aurai faire. Enfaite à chaque joueur on stock un ID (pour le retrouver avec un listing) et un "rang" sous forme de int.
Mais tu vien de dire à quoi servait les données persistantes ? Bah si c'est pas un serveur persistant alors ya pas de maître / membres etc etc :s ? _________________ "Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit." |
Revenir en haut | ![]() ![]() ![]() |
gussometre Ecuyer ![]() Messages: 56 Localisation: Petit asteroïde dans le finistére sud |
Bon tout d'abord merci a tous.
Argyl> J'ai édité le titre maintenant ya plus de faute d'ortographe ![]() -MeteZ-> Mon module est pas persistant, je parle pas de guilde comme dans wow mais comme la guilde des voleurs de bg2 ou les guildes de marchands du moyen age par exemple. Donc le pj entre dans une guilde de pnj (Si c'était de ca que tu parlais parceque la je suis un peu largué ![]() Sinon je pense que je vais apliquer le script de kiky avec plus de monde, encore marci ![]() _________________ N'oublions pas le proverbe:quand on a faim il faut manger! |
Revenir en haut | ![]() ![]() ![]() ![]() |
-MeteZ- Seigneur ![]() Messages: 205 Localisation: Région Parisienne (95) |
Ah ton module est en mode solo, eh bien alors tout ce simplifie. Tu fais le PNJ maître de la guilde dans une zone, si celui meurt en RP. Alors tu destroyobjet(maitre de la guilde); . Et ensuite stock un INT local qui vérifie que le joueur soit maintenant maître.
Comme ca dans les conditions d'executions des dialogues tu peux vérifier si INT local = TRUE ou FALSE. _________________ "Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit." |
Revenir en haut | ![]() ![]() ![]() |


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