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 19:04:50


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 27/04/2006 21:49:21 Sujet du message : Erreur de script

Voici un script que j'ai fait il y a pas lontemps pour évité les tricheurs dans les arène PvP légit.

NWScript :
if (sTag == "CheckXP_GP")
    {
    int iXPw = GetXP(oTarget);
    int iGPw = GetGold(oTarget);
    object oItemcheck = GetFirstItemInInventory(oTarget);
    while (GetIsObjectValid(oItemcheck))
    {
if(GetBaseItemType(oItemcheck) != BASE_ITEM_HEALERSKIT ||
    GetBaseItemType(oItemcheck) != BASE_ITEM_ARROW ||
    GetBaseItemType(oItemcheck) != BASE_ITEM_BULLET ||
    GetBaseItemType(oItemcheck) != BASE_ITEM_TRAPKIT ||
    GetBaseItemType(oItemcheck) != BASE_ITEM_BOLT)
{
iGPw = iGPw + GetGoldPieceValue(oItemcheck);
}
oItemcheck = GetNextItemInInventory(oTarget);
}

    int i;
    for(i=0;i<=13;i++)
        {
        if(GetIsObjectValid(GetItemInSlot(i, oTarget)))
            {
            iGPw = iGPw + GetGoldPieceValue(GetItemInSlot(i, oTarget));
            }
        }
    int ibalance = iXPw-iGPw;
    int iTake = abs(ibalance);
    SendMessageToPC(oPC, "XP = " + IntToString(iXPw) + " Gold = " + IntToString(iGPw) + " Difference (xp-gp): " + IntToString(ibalance));
    if ( ibalance >0 ){ GiveGoldToCreature(oTarget, iXPw-iGPw); }
    else if ( ibalance <0 )
        {
        AssignCommand(oTarget, TakeGoldFromCreature(GetGold(oTarget)-GetXP(oTarget), oTarget, TRUE));
        }
    }
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.


Ce script est placé dans le OnActivated du module c'est un objet pour verifier l'xp et l'or du joueur. Normalement si le joueur a plus d'xp que d'or, celui-ci gagne de l'or jusqu'à qu'il soit au même niveau que l'xp. Si en revanche le joueur a moins d'xp que d'or alors le script enlève de l'or pour revenir au même niveau que l'xp. Bref... mon probleme, plutôt mes deux problemes, c'est qu'il n'enlève pas l'or, et que dans mon arène les objets comme fleches, billes, traps, et kits de soin sont soit obtenu par un objet en l'utilisant, soit gratuitement quand ils gagnent le round, et donc le script calcule l'or que vaux ces objets, et je ne veux pas. Pourtant j'ai bien placé les scripts j'ai mit les "IF", mais rien à faire. Quelqu'un pourrait m'aidé svp? c'est urgent.

Merci
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Shamrodia
Novice
Inscrit le: 22 Avr 2006
Messages: 13
Répondre en citant
Posté le : 29/04/2006 03:00:26 Sujet du message :

Dans ton script, je lis :

NWScript :
if(GetBaseItemType(oItemcheck) != BASE_ITEM_HEALERSKIT ||
    GetBaseItemType(oItemcheck) != BASE_ITEM_ARROW ||
    GetBaseItemType(oItemcheck) != BASE_ITEM_BULLET ||
    GetBaseItemType(oItemcheck) != BASE_ITEM_TRAPKIT ||
    GetBaseItemType(oItemcheck) != BASE_ITEM_BOLT)
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.


Tu ne devrais pas mettre des "&&" à la place des "||" ? Le type de ton objet doit être différent de tel type et de tel type et de tel autre type... Smile


Et pour l'or qui n'est pas retiré, je cite le Lexicon (http://nwnlexicon.com/compiled/function.takegoldfromcreature.html), à propos de la fonction TakeGoldFromCreature :

Citation :
The taker needs to be a non-area and non-module for it to work correctly.
"Celui qui prend l'or ne doit pas être une zone ou le module pour que cela fonctionne correctement."


Tu aurais dû utiliser la fonction TakeGold (http://nwnlexicon.com/compiled/function.takegold.html) :

Citation :
Removes nAmount gold from oGoldHolder and removes it from the game world.
"Retire nAmount pièces d'or à oGoldHolder et les retire du monde du jeu."


J'espère t'avoir aidé Smile
_________________
Shamrodia, scripteuse un peu folle.
 
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 : 29/04/2006 03:22:49 Sujet du message :

Pour l'or je voudrais pas dire mais quand même ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Shamrodia
Novice
Inscrit le: 22 Avr 2006
Messages: 13
Répondre en citant
Posté le : 29/04/2006 03:50:00 Sujet du message :

Oups, navrée Sith Smile
_________________
Shamrodia, scripteuse un peu folle.
 
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 : 29/04/2006 11:00:07 Sujet du message :

Ah non c'était pas à toi que je m'adressais !! Mais à Black Knight, je lui avais déjà répondu là dessus, il aurait pu faire l'effort de lire Razz
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 29/04/2006 19:57:03 Sujet du message :

Ok j'avais pas revu mes messages qui date de 4 mois aussi... bref, je vais essayé et je vous dit dessuite si cela marche Smile
_________________
[http]
 
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 41.027ms