La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 18/05/2024 22:02:46


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
gussometre
Ecuyer
Inscrit le: 11 Jan 2006
Messages: 56
Localisation: Petit asteroïde dans le finistére sud
Répondre en citant
Posté le : 27/03/2006 23:31:53 Sujet du message : Système de guilde / Quand le chef meurt

Bonjour bonsoir Smile
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 Confused ) mais le problemme c'est que je sais pas comment faire pour determiner qui a la variable la plus haute Crying or Very sad . Quelqu'un a une idée? Ou bien c'est caremment fientifiquement infeufable? Sad
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 28/03/2006 04:28:13 Sujet du message :

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 Razz
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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
gussometre
Ecuyer
Inscrit le: 11 Jan 2006
Messages: 56
Localisation: Petit asteroïde dans le finistére sud
Répondre en citant
Posté le : 28/03/2006 10:34:03 Sujet du message :

Ben en fait je le fait plus en monojoueur (Je sais c'est con mais bon Embarassed ), j'ai pas le niveaux en srcipt pour faire un module persistant(en gros je m'exerce Confused )Pour Faire augmenter la variable donc aucun problemme Very Happy ,le problemme étant de prendre le membre de la guilde qui a la plus haute variable, et ca je sais pas le faire Confused .
_________________
N'oublions pas le proverbe:quand on a faim il faut manger!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 28/03/2006 12:43:17 Sujet du message :

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 Razz
}
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 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 28/03/2006 17:16:44 Sujet du message :

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. Smile

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 28/03/2006 17:17:16 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 28/03/2006 20:58:18 Sujet du message :

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! Embarassed
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Argyl
Grand Sage du Conseil
Inscrit le: 09 Fév 2005
Messages: 704
Répondre en citant
Posté le : 28/03/2006 21:15:41 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 29/03/2006 12:06:37 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
gussometre
Ecuyer
Inscrit le: 11 Jan 2006
Messages: 56
Localisation: Petit asteroïde dans le finistére sud
Répondre en citant
Posté le : 29/03/2006 13:12:44 Sujet du message :

Bon tout d'abord merci a tous.
Argyl> J'ai édité le titre maintenant ya plus de faute d'ortographe Embarassed
-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é Sad )

Sinon je pense que je vais apliquer le script de kiky avec plus de monde, encore marci Very Happy
_________________
N'oublions pas le proverbe:quand on a faim il faut manger!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 29/03/2006 14:25:04 Sujet du message :

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 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 27.54ms