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 16:46:05


  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 : 10/01/2006 23:51:03 Sujet du message : Il est trop trop lourd cet objet ... ! :(

Bonsoir ,

Alors voila , je bute sur un pb , je souhaite choisir une feuille d'arbre placée dans inventaire du joueur , et augmenter le poids de cette feuille d'arbre.

Jusque là , pas de pb , je le fais avec ce script en demandant au joueur de toucher un levier qui à ce script :

NWScript :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.


Là ou je ne trouve pas , c'est pour faire l'opération inverse , c'est a dire RETIRER 5 livres a chaque fois que le joueur touche un autre levier !!!

J'ai bien essayé ce script :

NWScript :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.


Mais ça ne fonctionne pas... ! Sad

Quelqu'un aurait une idée ?
_________________
" 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
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 11/01/2006 00:22:42 Sujet du message :

Je pense que le type de constante correspond pas.
Pour le poids d'un item tu as 2 options :
-l'augmenter (par pallier de 5 livres)
-le réduire (par pourcentage du poids)

C'est pas tout à fait la même chose, et pas très logique à mon avis. Au final ça done des trucs pas très pratiques à manier.

Pour ton problème soit retire le poids supplementaire (RemoveItemProperty()), soit ajoute une réduction du poids pour faire comme si. (sachant que c'est encore super clair mais la propriété "réduction du poids 80%" c'est en fait baisser le poids de l'item de 20%, c'est 80% du poids total)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 11/01/2006 00:25:56 Sujet du message : Obèsité ?

Je pense que ton problème est tout simple, tu demandes à ton deuxième script d'enlever du poid et d'en ajouter en même temps, le PC ne peut pas comprendre.

Tu peux essayer ceci, je ne l'ai pas testé, mais cela doit marcher :




NWScript :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.



Seulement, tu ne peux pas choisir exactement de combien ta feuille doit "maigrir".
Voilà !
 
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 : 11/01/2006 01:20:32 Sujet du message :

NWScript :
//::
//:: Created 2005-12-12 Lylver
//:: Fonctions sur les ajouts/retraits d'effets et de proprietes
//:: lors de la fonction s'equiper d'un objet
//::

int RemoveSpecificProp(object oItem, int iItemProp){
  itemproperty ipItem = GetFirstItemProperty(oItem) ;
  int bBonus = FALSE ;
  while( GetIsItemPropertyValid(ipItem) ){
      if( GetItemPropertyType(ipItem) == iItemProp ){
        RemoveItemProperty(oItem,ipItem);
        bBonus = TRUE ;
        break ;
      }
      ipItem = GetNextItemProperty(oItem) ;
  }
  return bBonus ;
}

// void main() {}
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.


NWScript :
//::
//:: Updated 2005-12-21 Lylver
//::
//:: Created 2005-12-12 Lylver
//:: Script de retrait de proprietes
//:: sur l'item passe en object du script
//::

#include "ly_lib_itprop"

void main()
{
  object oItem = OBJECT_SELF ;
  string sItem = GetTag(oItem) ;
  if( sItem == "TagdeMonItem" ) RemoveSpecificProp(oItem,ITEM_PROPERTY_WEIGHT_INCREASE) ;
}
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.


Inspire-toi des scripts ci-dessus
Dernière édition par lylver le 11/01/2006 01:22:52; édité 1 fois
 
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 : 11/01/2006 01:20:50 Sujet du message :

Post à effacer (doublon)
 
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 : 12/01/2006 13:35:27 Sujet du message :

Bon , apparement ce que je craignait depuis le début est bel et bien vrai , il est possible d'augmenter définitivement le poids d'un objet , mais pas de le réduire de la même maniére...... !

Il ne me reste plus qu'a ruser en utilisant le DURATION_TYPE_TEMPORARY a la place du DURATION_TYPE_PERMANENT
_________________
" 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
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 12/01/2006 14:00:51 Sujet du message :

Sinon tu as toujours la bonne vieille methode de créer 2 templates pour la feuille, une avec +5lbs et l'autre sans, et de les interchanger dans l'inventaire par le script.
 
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 : 12/01/2006 19:28:32 Sujet du message :

Sith Vicious> vi je sais bien , j'y ai pensé dés le départ , mais j'essaie d'éviter autant que possible au joueur que les magouilles des scripteurs ne lui sautent au visage a chaque ligne de script !

En parlant de magouille génante pendant le jeu , je parles bien sûr des messages serveurs incontrolables qui vont passer leur temps a apparaitre du genre " vous avez gagné une feuille " , " vous venez de perdre une feuillle " , ce qui n'a aucun sens pour le joueur qui veut juste jouer et ne pas être embêté ! Very Happy

Pi j'ai pas tout a fait tort , je viens d'essayer ma solution et elle fonctionne parfaitement ! Very Happy Tout fonctionne et reste totalement invisible pour le joueur ! Embarassed
_________________
" 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
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 13/01/2006 00:25:08 Sujet du message :


Citation :

Pi j'ai pas tout a fait tort , je viens d'essayer ma solution et elle fonctionne parfaitement ! Very Happy Tout fonctionne et reste totalement invisible pour le joueur ! Embarassed
J'ai rien dit ....... !

Le message serveur comme quoi je suis surchargé arrête pas d'apparaitre , et de plus comme je l'ai craint au début , le lag dû a un seul joueur est terrible a cause des boucles , alors j'ose mmême pas immaginer a une vingtaine de joueurs ... !

Ils abusent de ne pas mettre de fonctions inverse .....

Ca marche , mais ça marche mal ... ! GGGrrrr ! Mad

Ca m'apprendra a faire des tests plus poussés ... !
_________________
" 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
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 13/01/2006 03:39:54 Sujet du message :

Essaye ça :

NWScript :

void main()
{
object oPC = GetLastUsedBy();
object feuille = GetItemPossessedBy(oPC,"feuillearbre");

itemproperty ipTruc = GetFirstItemProperty(feuille);
while (GetIsItemPropertyValid(ipTruc))
{
    if (GetItemPropertyType(ipTruc) ==ITEM_PROPERTY_WEIGHT_INCREASE)
    {
    RemoveItemProperty(feuille,ipTruc);break;
    }

    ipTruc = GetNextItemProperty(oItem);
}
}
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.


(en regardant bien c'est exactement ce que Lylver avait posté plus haut en fait ^^, mais je l'ai fait tout seul comme un grand)
 
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 : 13/01/2006 13:34:15 Sujet du message :

Sith Vicious & Lyver > merci a vous 2 , ça marche nikel ! Wink
_________________
" 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
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 15/01/2006 20:43:25 Sujet du message :

Sith Vicious> une question , a quoi sert le " break " dans le script ?
_________________
" 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 : 15/01/2006 21:26:25 Sujet du message :

Les break dans les boucles ça permet d'en sortir, ce qui n'est pas très propre selon moi.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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:46:13 Sujet du message :

Cela ne sert à rien d'aller plus avant d'une boucle d'exploration de telle ou telle propriété quand tu l'as trouvée, le break est là pour dire que l'on a fini le travail : on rend le contrôle au moteur de jeu au plus tôt.
 
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 45.64ms