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:39:34


  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 : 17/12/2005 12:31:49 Sujet du message : Level Up Penalite

Voila j'ai fait dans mon mod un truc de pénalité.

Et ce script ne veut pas ajouté les pénalité que je demende.

NWScript :
#include "x2_inc_itemprop"
void main()
{
object oPC = GetPCLevellingUp();
int iDDR = GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE, oPC);
int iPM = GetLevelByClass(CLASS_TYPE_PALEMASTER, oPC);
if(GetHitDice(oPC) > 28)
{
SpeakString(GetName(oPC)+" vien d'avoir un level. Il maintenant level : "+IntToString(GetHitDice(oPC))+". Felicitation!", TALKVOLUME_SHOUT);
}
if(iDDR == 1)
{
if(iPM == 1)
{
AssignCommand(oPC, IPSafeAddItemProperty(GetObjectByTag("PeauPenalite"),ItemPropertyDecreaseAC(IP_CONST_ACMODIFIERTYPE_NATURAL, 4), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING));
SendMessageToPC(oPC, "Vous avez une penalite de -4 a votre CA du a la Classe DDR/MP");
}
else
{
AssignCommand(oPC, IPSafeAddItemProperty(GetObjectByTag("PeauPenalite"),ItemPropertyDecreaseAC(IP_CONST_ACMODIFIERTYPE_NATURAL, 2), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING));
SendMessageToPC(oPC, "Vous avez une penalite de -2 a votre CA du a la Classe DDR");
}
}
if(iPM == 1)
{
if(iDDR == 1)
{
AssignCommand(oPC, IPSafeAddItemProperty(GetObjectByTag("PeauPenalite"),ItemPropertyDecreaseAC(IP_CONST_ACMODIFIERTYPE_NATURAL, 4), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING));
SendMessageToPC(oPC, "Vous avez une penalite de -4 a votre CA du a la Classe DDR/MP");
}
else
{
AssignCommand(oPC, IPSafeAddItemProperty(GetObjectByTag("PeauPenalite"),ItemPropertyDecreaseAC(IP_CONST_ACMODIFIERTYPE_NATURAL, 2), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING));
SendMessageToPC(oPC, "Vous avez une penalite de -2 a votre CA du a la Classe MP");
}
}
if(iDDR == 0 || iPM == 0)
{
AssignCommand(oPC, IPRemoveAllItemProperties(GetObjectByTag("PeauPenalite"),DURATION_TYPE_TEMPORARY));
AssignCommand(oPC, IPRemoveAllItemProperties(GetObjectByTag("PeauPenalite"),DURATION_TYPE_INSTANT));
AssignCommand(oPC, IPRemoveAllItemProperties(GetObjectByTag("PeauPenalite"),DURATION_TYPE_PERMANENT));
}
}
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.


Voila normalement les pénalités s'ajoute sur l'objet "PeauPenalite" (une peau de créature) que le joueur recoit en quand il entre dans le serv, mais... Les penalités ne ce mettent pas. La peau est equipé a l'endroit ou elle doit etre.

Je voulais savoir ou est mon bug...

Merci
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Starkanas
Grand Chevalier
Inscrit le: 14 Mai 2004
Messages: 110
Répondre en citant
Posté le : 17/12/2005 13:24:05 Sujet du message :

Pourquoi tu n'utilises pas AddItemProperty() ?

De plus, je ne comprend pas bien tes conditions, elles ne marchent que quand le PJ n'a qu'un seul level dans la classe demandée ? Car sinon il faudrait plus utilisé un "<= 1" .
_________________
LSDA 3ème Âge : Serveur RôlePlay basé sur les écrits de J.R.R.Tolkien ...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger 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 : 17/12/2005 13:43:01 Sujet du message :

C'est simple si le joueur a 1 en classe de DDR il vas recevoir la penalité pas besoin de dire si il a 2, 3, 4, etc... De plus je sais pas pourquoi j'ai pas utilisé AddItemPropr, mais je pense pas que sa changerais grand chose...
si ?
_________________
[http]
 
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 : 27/12/2005 18:25:37 Sujet du message :

Le GetObjectByTag fait une recherche sur l'ensemble du module, pas spécifiquement sur le joueur.
Le AssignCommand ne sert pas
Tu peux utiliser AddItemProperty mais sur cet objet (cf script), sinon tu risques de modifier la peau de quelqu'un d'autre.

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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 11/01/2006 22:50:58 Sujet du message :

Bonjour Bonjour,

à la place de tes
NWScript :
GetObjectByTag("PeauPenalite")
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 te conseil de mettre
NWScript :
GetItemPossessedBy(oPC, "PeauPenalite")
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.

Comme ca ca ne cherchera que sur le PJ qui monte de niveau.

Et pourquoi mettre ca?
NWScript :
if(iDDR == 1)
{
if(iPM == 1)
{
/* warning: 2 unclosed block {} */
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.

met plutôt
NWScript :
if(iDDR==1&&iPM==1){
/* warning: 1 unclosed block {} */
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.

_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
Dernière édition par BenGorre le 11/01/2006 22:59:13; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 11/01/2006 22:57:17 Sujet du message :

Bonjour Bonjour,

Et oui encore moi. J'ai relu ta phrase:
Citation :
C'est simple si le joueur a 1 en classe de DDR il vas recevoir la penalité pas besoin de dire si il a 2, 3, 4, etc...
Tu pense que comme avant d'être 2,3,4, ect... il faut être passé par le niveau 1 c'est inutile? Et bien dans ton script C'est dit que tu applique les pénalité que si le joueur a plus de 28 niveaux au total, donc quand il passe niveau 29, le PJ peut avoir 2 niveaux en DDR et voila il a pas de penalités. Je te conseilo de mettre:
NWScript :
if(iDDR&&iPM){
/* warning: 1 unclosed block {} */
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.
au lieu du test à un.

PS: dsl javais mal lu ça à cause de la mise en page
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
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.212ms