La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 14:36:20


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 14/01/2006 15:35:30 Sujet du message : Comment detecter la perte ou le gain de Po ?

Bonjour , de nouveau là pour un nouveau pb !

Sauriez vous comment faire pour detecter quand un joueur perds ou gagne de l'argent , et SEULEMENT de l'argent ?! Pour tous les autres objets j'y arrive , mais pour le fric ..... je cale un poil !

Par exemple , un joueur pose 1 Po par terre , et là , un message serveur apparait , et il y a marqué

" tu es un peu moins riche maintenant ".

ou alors il ramasse 1 Po , et il y a marqué

" tu es un peu plus riche maintenant ".

Merci d'avance ! Very Happy
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Anthraxcite
Légende vivante
Inscrit le: 12 Juin 2004
Messages: 372
Localisation: Belgique
Répondre en citant
Posté le : 14/01/2006 16:48:23 Sujet du message :

Tu as essayé NW_IT_GOLD001 pour le tag de l'objet déposé ou ramassé?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 14/01/2006 21:33:16 Sujet du message :

Anthraxite> Non , en revanche , j'ai constaté une chose curieuse avec les " onacquiereditem " et le " onunacquiereditem" du mod ....

J'ai fait 2 scripts , un pour la perte , et l'autre pour le gain d'un objet , ces scrios servent a afficher dans le message serveur les resref et le tag de l'objet gagné ou perdu dans l'inventaire.

Pour tous les objets ça marche nikel , ça te donne le resref et le tag de tout objet gagné ou perdu.

En revanche , quand on gagne de l'argent , le script de " onacquireditem " se déclenche bien , mais n'argent semble n'avoir ni tag ni resref , ni quantité , car rien ne s'affiche.

Pire encore ...... car lorsque l'on dépose de l'argent par terre , là , le script de "onunacquieritem" ne se déclenche même pas ! SurprisedSadConfusedSad

De retour chez moi j'essaierais avec ton tag pour voir ce que ça donne.
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Elandil2
Chevalier
Inscrit le: 14 Fév 2005
Messages: 97
Localisation: sur mon ordi loir-et-cher
Répondre en citant
Posté le : 15/01/2006 18:04:39 Sujet du message :

Je n'en sais rien mais je te propose de regarde si l'argnt n'est pas une variable stockée sur le PJ ... En tout cas c'est ce qu'il me semble ... Quant à son nom alors là je ne sais pas ...
_________________
Rejoignez nous sur notre forum
Aelor, module en construction
Vive Gimli

 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 16/01/2006 13:50:57 Sujet du message :

La perte/gain d'or ne déclenche pas d'évênement module
cf http://www.nwnlexicon.com/compiled/event.onunacquireitem.html
http://www.nwnlexicon.com/compiled/event.onacquireitem.html
J'ai eu l'occasion de le vérifier sur le pacth 1.66
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 23/01/2006 12:05:06 Sujet du message :

bon , j'ai réussi a mettre en place une solution assez satisfaisante sur mon mod avec le ohb du module , les mises a jour ne sont pas instantannes , il faut attendre une fin de ohb pour que ce soit fait , mais bon .... ça marche et ça nbe consomme pas grand chose.
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
Posté le : 23/01/2006 17:49:37 Sujet du message :


Semcatala a écrit :
bon , j'ai réussi a mettre en place une solution assez satisfaisante sur mon mod avec le ohb du module , les mises a jour ne sont pas instantannes , il faut attendre une fin de ohb pour que ce soit fait , mais bon .... ça marche et ça nbe consomme pas grand chose.
Ben explique ! Je suis currieux de savoir comment tu procedes. Mon Agrégé en Script étant absent encore 1 semaine, je pourait lui soumettre le problème et ta solution Very Happy

Il me semble qu'il m'avait pondu un truc sur la gestion de l'Or mais j'en suis pas sur...

A chaque evenement d'aquisition et de perte d'item, on comparait avec une variable locale stockée sur le pj. Pour les récompenses ou perte en po via des quetes, cela se reglais dans les scripts, mais je sait plus ce qu'il a fait pour les drops de po et l'argent obtenu via une récompense MD:o
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 23/01/2006 18:43:36 Sujet du message :

Seth de Sombrelune> Ben c'est simple , j'ai placé un objet ridiculement petit , indroppable sur le joueur.
Et avec le ohb , toutes les 6 secondes je vérifie le nombre de piéces d'or du joueur , et en fonction de lui , je modifie le poids de l'objet ( une petite feuille d'arbre sur mon mod ).

Au final , ça simule le poids de l'or !


J'aurais largement aimé pouvoir détecter la perte de Po pour éviter d'avoir a utiliser le OHB , mais c'est impossible avec nwn !!!

Du moins detecter la perte d'or est impossible , car quand on ramasse de l'or , ça déclenche le script de gain d'objet.
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
castorus
Acolyte
Inscrit le: 24 Déc 2005
Messages: 23
Répondre en citant
Posté le : 07/02/2006 11:38:33 Sujet du message :

Bien j'ai à mon avis une meilleur solution, car elle n'utilise pas le OnHeartBeat ^^ . Bien comme l'avais évoqué Evandil apparement l'or est une variable stockée dans le .BIF de votre personnage, alors voila comment j'ai procédé :

Quand le joueur entre sur le mod on enregistre son taux d'or dans une variable int locale situé en lui même.


Ensuite, des que le joueur ramasse un item on compare cette variable Locale avec le taux d'or actuel. Si le taux d'or actuel est strictement supérieur alors cela signifie que l'item qu'a ramassé le joueur est de l'or.


voici les listing des scripts :

Listing du OnClientEnter:
NWScript :

//OnClientEnter :

void main()
{
object oPC = GetEnteringObject();

SetLocalInt(oPC,"OR",GetGold(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.



Listing du OnAcquireItem:
NWScript :

//OnAcquireItem :


void main()
{
object oItem = GetModuleItemAcquired();
string TagItem = GetTag(oItem);
object oPossesor = GetModuleItemAcquiredBy();
int VariableOr = GetLocalInt(oPossesor,"OR");
int TauxOrActuel = GetGold(oPossesor);

  if(VariableOr < TauxOrActuel)
  {
  SendMessageToPC(oPossesor,"Vous avez gagner "+IntToString(TauxOrActuel-VariableOr)+" Pieces d'or.");
  SetLocalInt(oPossesor,"OR",GetGold(oPossesor));
  }

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




Chose confirmant la Thèse que c'est une variable. lorsque vous entrez dans le module observez que le script se déclenche en indiquant que vous avez gagner exactement le nombre de pièce d'or que vous êtes censé avoir , Exemple :

Je joue sur un serveur RP j'ai 50 pièces d'or en tout, je me Deco/Reco puis lorsque je reviens, le script se déclenche en me disant, vous avez gagner 50 pièces d'or. Donc c'est effectivement une variable .Mais je ne sais pas quel est son nom. ^^ voila en espérant que cela vous viendra en aide.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 07/02/2006 12:51:15 Sujet du message :

Je crois que le problème c'est que justement l'event ne se déclenche pas pour l'or...
Autant utiliser GetGold à ce momment là -si ça marche-.
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
castorus
Acolyte
Inscrit le: 24 Déc 2005
Messages: 23
Répondre en citant
Posté le : 07/02/2006 15:03:57 Sujet du message :

Je comprend pas trop ce que tu veux dire puisque je viens de résoudre le problème en vous soummmetant les script pour l'aquisition de l'or, le truc qui y'a c'est que lorsque vous ramassez de l'or, l'objet n'est pas créer dans votre inventaire. donc la fonction pour trouver l'objet qui a été aquis renvoi OBJECT_INVALID car l'item representant l'or a été detruit au moment ou vous l'avez ramassé pour être converti en donnée numérique entières destinée à incrémenté votre variable d'or dont je ne connais pas le nom.
Donc le OnAcquireItem est bien déclenché, je pensais que vous auriez la présence d'esprit de déduire cela pour des scripteurs en herbe....
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 07/02/2006 15:35:18 Sujet du message :

J'avais cru comprendre que l'évènement OnAcquireItem ne marchais pas pour l'or (plus haut).
Mais apparament c'est bon.
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 07/02/2006 17:02:51 Sujet du message :

Ivellios scripteur en herbe huhu Shocked

Bon 30 secondes et demi de test pour voir que effectivement il n'y a pas d'événément OnUnAcquireItem à la perte d'or. Donc ta solution est bien jolie, mais si un gars décide de poser par terre des pieces pour s'alleger, ben tant qu'il aura pas pris un autre objet il pesera toujours le même poids. Donc ça résoud pas grand chose, la solution de Semcatala est la plus sùre (en attendant mieux hein, on sait jamais, ça pousse les scripteurs en herbe ! Very Happy)

Et au passage, il n'y a pas que l'or qui est filé à la connection, tous les items du PJ aussi, le perso arrive a poil et on lui file tout son équipement et on l'habille.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 07/02/2006 17:22:45 Sujet du message :


lylver a écrit :
La perte/gain d'or ne déclenche pas d'évênement module
cf http://www.nwnlexicon.com/compiled/event.onunacquireitem.html
http://www.nwnlexicon.com/compiled/event.onacquireitem.html
J'ai eu l'occasion de le vérifier sur le pacth 1.66
Une autre solution : sur le module SoW, nous avons imaginé la gestion de l'or façon différente.
Tu changes ton or en objets de valeur ou en gemmes sinon tu te le vois remis à l'équivalent d'une petite bourse (scouic perdu) pour ton argent de poche à chaque reboot du serveur.
Bien entendu le système n'est pas que cela, il y a une gestion des prix associées, réputation etc...

Nous avions pris le pas de faire de l'économie est un sujet à part.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 07/02/2006 18:36:02 Sujet du message :

Castorus> Je n'ai JAMAIS dit qu'il était impossible de detecter le GAIN d'or , au contraire ( voir mes post précédents ) !

Ce que j'ai dit c'est qu'il était impossible de detecter la " perte " d'or avec les scripts prévus pour la perte d'objets .

Quand on gagne de l'or , le script de " onacquireditem " se déclenche.
Quand on perds de l'or , le script de " onunacquireditem " ne se déclenche pas.

Le problême final que j'évoquais concerne uniquement la detection de la perte d'or , pas le gain( ça c'est réglé finalement ! Very Happy ).
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 07/02/2006 18:59:51 Sujet du message :


Sith Vicious a écrit :
Ivellios scripteur en herbe huhu Shocked
Cool
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 08/02/2006 13:59:33 Sujet du message :

Bon petite tentative pour expliquer le pourquoi du pas de OnUnAcquire avec l'or.

De l'or, on est bien d'accord on en a pas dans l'inventaire (pas d'icone) donc c'est pas un item. MAIS quand on en met dans un coffre, ça en devient un (le tas de pièces).
En fait il y a un espèce de OnAcquireItem caché, qui fait que lorsqu'on acquiert de l'or (item) l'item est détruit et converti en une variable.
Donc, si le OnUnAcquire marchait pour l'or, il se déclancherait aussi à l'acquisition d'or : en effet, il y a un moment ou l'or est stocké dans l'inventaire sous forme d'item. La preuve remplissez completement votre inventaire, posez de l'or par terre et essayez de le ramasser : c'pas possible. Donc quand cet item est détruit, il déclancherait l'évenement de perte d'item.

En revanche, lorsqu'on pose de l'or par terre ou dans un coffre, l'item n'est pas crée dans l'inventaire, mais directement à sa destination, donc l'evenement ne peut pas se déclancher (on peut poser de l'or même avec un inventaire plein).

De plus, l'or n'est pas forcément convertit en item : lors des transactions tout se passe au niveau virtuel (variables) donc si on vend un objet à un marchand, pas de OnAcquire puisque pas d'item, l'item n'existe que pour l'or dans les contenants et à terre.

Ca vaut ce que ça vaut comme théorie.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 08/02/2006 14:42:03 Sujet du message :

Non mais c'est ça, sur le OnUnacquireItem comme l'or est une icône à part on ne l'as "jamais eu dans l'inventaire" donc on ne risque pas de déclencher l'event.
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger 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 58.779ms