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:31:14


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
lu ciol
Novice
Inscrit le: 21 Jan 2006
Messages: 6
Répondre en citant
Posté le : 19/07/2006 18:21:57 Sujet du message : compteur pour tuer 20 ames en peine

Bonjour, dans une de mes mes quetes, le perso doit tuer 20 ames en peine. Donc pour tester la quete j'ai commencer avec 1 ame en peine. J'utilse la variable "roguemort" que j'initialise dans le dialogue de quete:
NWScript :
void main()
{
   
    SetLocalInt(GetPCSpeaker(), "roguemort", 0);

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


Aprés dans les propriétés de l'ame en peine à l'option "on death" j'utilise le script d'origine que j' ai modifié et renommé

NWScript :
#include "x2_inc_compon"
#include "x0_i0_spawncond"

void main()
{
    int vmort = GetLocalInt(GetPCSpeaker(), "roguemort" );
    int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
    int nAlign = GetAlignmentGoodEvil(OBJECT_SELF);
    object oKiller = GetLastKiller();

    // If we're a good/neutral commoner,
    // adjust the killer's alignment evil
    if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
    {
        AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
    }

    // Call to allies to let them know we're dead
    SpeakString("NW_I_AM_DEAD", TALKVOLUME_SILENT_TALK);

    //Shout Attack my target, only works with the On Spawn In setup
    SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);

    // NOTE: the OnDeath user-defined event does not
    // trigger reliably and should probably be removed
    if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(1007));
    }
    craft_drop_items(oKiller);
    vmort = vmort + 1 ;
    SetLocalInt(GetPCSpeaker(), "roguemort", vmort );
}
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.


Donc dans le test je tue l'ame en peine et aprés, je retourne voir le personnage de quete qui normalement devrais changer de discours avec:
NWScript :
int StartingConditional()
{

    // Inspecter variables locales
    if(!(GetLocalInt(GetPCSpeaker(), "roguemort") == 1))
        return FALSE;

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

Mais, j'avais toujours le meme discours.
Donc j' ai essayé d'installer un brasero qui s'allume lorsque l'ame en peine est morte.
Donc dans les propriété du brasero au scrip onused j'ai rectifié celui d'origine par :

NWScript :
void main()
{

    if((GetLocalInt(GetPCSpeaker(), "roguemort") == 1))
    {
        object oSelf = OBJECT_SELF;
        PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE);
        //DelayCommand(0.4,SetPlaceabl eIllumination(oSelf, TRUE));
        SetLocalInt(OBJECT_SELF,"NW_L_AMION",1);
        //DelayCommand(0.5,RecomputeSt aticLighting(GetArea(oSelf)));
        effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_20);
        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oSelf);
    }
    else
    {
        object oSelf = OBJECT_SELF;
        PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE);
        //DelayCommand(0.4,SetPlaceabl eIllumination(oSelf, FALSE));
        SetLocalInt(OBJECT_SELF,"NW_L_AMION",0);
        //DelayCommand(0.9,RecomputeSt aticLighting(GetArea(oSelf)));
        effect eEffect = GetFirstEffect(oSelf);
        while (GetIsEffectValid(eEffect) == TRUE)
        {
            if (GetEffectType(eEffect) == EFFECT_TYPE_VISUALEFFECT)
                RemoveEffect(oSelf, eEffect);
            eEffect = GetNextEffect(oSelf);
        }

    }
}
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 pareil le brasero est toujours allumé.
Etant novice dans Aurora ( c'est mon premier module ), Y a peut etre quelque chose qui m'échappe.
D'avance merci.
PS: j'essai de m'inspirer ( d'adapter ) l'acte 1 de diablo 2 sur NWN d' où la premiére quete avec l'antre maléfique ou il faut éradiquer toutes les créatures de la grotte.

Edit finipe : balises NWScript rajoutées
 
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 : 19/07/2006 19:45:13 Sujet du message :

Salut. Alors déjà utilise les balise [*NWscript][*/NWscript] (sans les *) pour les scripts, on s'y retrouve plus vite Smile

Donc, quand le joueur accepte le dialogue tu mets la variable "roguemort" a 0 :

NWScript :
void main()
{
object oPC = GetPCSpeaker();
SetLocalInt(oPC, "roguemort", 0);
}
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.


ensuite, dans le Ondeath des ames en peine tu leur mets ça :

NWScript :
void main()
{
object oPC = GetLastKiller();
int iAme = GetLocalInt(oPC, "roguemort");
if(iAme == 20)
{
SendMessageToPC(oPC, "");
}
else
{
iAme++;
SendMessageToPC(oPC, "Vous avez tuer "+IntToString(iAme)+" pour le moment");
}
}
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 c'est fait rapidement sans l'éditeur, donc je sais pas si j'ai fait des erreurs, mais me semble pas, donc teste avec ça. Aufaite, ta pas besoin de te compliquer la vie a faire un brasero ou un dialogue pour voir si tu as tuer une ame, tu a juste a utilisé SendMessageToPC Smile

voila
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 20/07/2006 10:14:32 Sujet du message :

Dans ton script "onDeath" tu as marqué :


NWScript :
int vmort = GetLocalInt(GetPCSpeaker(), "roguemort" );
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.


Le joueur ne parle pas à la créature, donc ce ne sera pas "GetPCSpeaker". Smile
Le GetPCSpeaker ne peut fonctionner que lors d'une conversation.
Là, le joueur, c'est celui qui est définit comme ayant tué la créature donc : GetLastKiller().
Etant donné qu'il est définit dans le script, je t'invite à mettre ceci en dessous de la ligne définissant le oKiller :


NWScript :
int vmort = GetLocalInt(oKiller, "roguemort");
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.






Normalement ça devrait aller mieux. Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lu ciol
Novice
Inscrit le: 21 Jan 2006
Messages: 6
Répondre en citant
Posté le : 21/07/2006 12:25:28 Sujet du message :

Merci à vous deux, effectivement cela fonctionne mieux.
J'ai procéder ainsi pour la variable.

int vmort = GetLocalInt(GetModule(), "roguemort" );

J'ai mis des colonnes luineuses un peut partout dans la zone, et elles s' allument bien une fois que les 20 ames en peine sont mortes.Very Happy

Maintenant mon probléme c'est de faire dire un message en conséquence au personnage de quete, mais là j'y arrive pas. J'ai essayé ça dans les actions requises ( au niveau des dialogues) :

NWScript :
int StartingConditional()
{

    // Inspecter variables locales
    if ((!GetLocalInt(GetModule(), "roguemort" ) ==20 ))
        return FALSE;

    return 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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lu ciol
Novice
Inscrit le: 21 Jan 2006
Messages: 6
Répondre en citant
Posté le : 21/07/2006 13:36:43 Sujet du message : je répond moi même

J'ai trouvé ce qui cloché, Le ! avant la condition doit inverser la comparaison (==20)
donc la comparaison été valider pour tout ce qui était diférent de 20.
Donc j'ai enlevé le !, puis là j'ai inversé l'ordre du False et du TRUE.
Ce qui donne:
NWScript :
int StartingConditional()
{

    // Inspecter variables locales
    if (GetLocalInt(GetModule(), "roguemort" ) ==20 )
        return TRUE;

    return FALSE;
}
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.

Champagne ça marche Very Happy
 
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 : 21/07/2006 15:56:56 Sujet du message :

Pour débutant, il est mieux de ne pas mettre de if((!, les points d'exclamation pose toujours probleme au début Smile
_________________
[http]
 
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 : 21/07/2006 16:10:17 Sujet du message :

C'est juste une histoire de grammaire. Le point d'exclamation était juste mal placé (ou la parenthèse c'est selon), il fallait faire :

NWScript :
if (GetLocalInt(GetModule(), "roguemort") !=20 )
//ou
if (!(GetLocalInt(GetModule(), "roguemort") ==20) )

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à il comparait !(GetLocalInt(blabla)) à 20. Donc un résultat logique (TRUE/FALSE) soit 0 et 1 à 20, donc toujours faux.

En revanche, tu peux écrire ta condition plus simplement :

NWScript :
int StartingConditional()
{
return (GetLocalInt(GetModule(), "roguemort" ) ==20 );
}
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.


Ca renvoit bien TRUE si la varible vaut 20, FALSE sinon.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lu ciol
Novice
Inscrit le: 21 Jan 2006
Messages: 6
Répondre en citant
Posté le : 21/07/2006 16:43:52 Sujet du message :

Pour écrire mon premier script éronné, je m' étais basé sur les script que donnent les assistants script de l' aide au dialogue.
D'aprés ce que j'ai pu comprendre le ! correspond à la fonction inverse dans la logique combinatoire ( dans les systémes logique électronique) c'est à dire qu'en binaire,si a=1
a!=0 ( ou "a barre" mais je ne voit pas comment le rédiger ).
Donc dans mon premier script ( avec ! ) toutes les valeurs pouvait passer sauf 20
Enfin, c'est ce que je crois avoir compris Embarassed
Je débute dans l'éditeur aurora.Désolé
 
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 : 21/07/2006 21:36:57 Sujet du message :

Oui ta compris t'inquiete pas Razz Mais fait plutot comme Sith ta montrer, c'est largement plus simple, ou alors si t'es fana des point d'exclamation, à la place de faire if(!(... tu fait != (à la place de ==) Razz
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
burning-angel
Novice
Inscrit le: 17 Juin 2007
Messages: 10
Répondre en citant
Posté le : 27/06/2007 00:27:32 Sujet du message : suite logique du probleme... le pet !

j ai exactement le même code que lu ciol à la différence pret que je décompte au lieu de compter, tout marche à la perfection ! sauf... pour le famillier de mon druide... alors comment faire pour corriger la valeur de oKiller pour qu il compte (ou décompte) même si c'est le pet qui tue la créature

ca va faire un bon moment que je cherche une solution et je tourne en rond...

actuellement mon script est ceci pour la définition de oKiller :

NWScript :
object oKiller = GetLastKiller();
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.


d'avance merci a qui m'aidera et a qui trouver la réponse.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Flumby
Chevalier
Inscrit le: 01 Juin 2006
Messages: 71
Répondre en citant
Posté le : 27/06/2007 13:02:08 Sujet du message :

apres ta définition du tueur, fait un test pour savoir si la créature à un maitre, ca donnerait a peu près ca :

NWScript :
object oKiller = GetLastKiller();
object oMaster = GetMaster(oKiller);

if(oMaster != OBJECT_INVALID){ oKiller = oMaster;}
else {;}

/*
La suite du code
*/

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.


Edit.

Sachant qu'il peut y avoir des invocation d'invocation (la première solution est peut être un peu limite, tu peux aussi faire ca, pour être sur de remonter au maitre suprême (le joueur)

NWScript :

while (GetIsObjectValid(GetMaster(oKiller)))
  {
  oKiller=GetMaster(oKiller);
  }
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.


Ca te renverra a coup sur la maitre
_________________
Premier DM a avoir inauguré la chute d'auberge sur Joueur rebel

Preuve Smile => http:
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
burning-angel
Novice
Inscrit le: 17 Juin 2007
Messages: 10
Répondre en citant
Posté le : 27/06/2007 15:50:37 Sujet du message :

je teste ca tout de suite !
merci !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
burning-angel
Novice
Inscrit le: 17 Juin 2007
Messages: 10
Répondre en citant
Posté le : 27/06/2007 16:40:03 Sujet du message :

ca marche !
merci beaucoup !
je retiendrais ses lignes de codes pour d autres quest dans mon module !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
OVLORD
Acolyte
Inscrit le: 05 Juil 2005
Messages: 22
Répondre en citant
Posté le : 24/01/2008 17:04:29 Sujet du message :


Black Knight a écrit :
Salut. Alors déjà utilise les balise [*NWscript][*/NWscript] (sans les *) pour les scripts, on s'y retrouve plus vite Smile

Donc, quand le joueur accepte le dialogue tu mets la variable "roguemort" a 0 :

NWScript :
void main()
{
object oPC = GetPCSpeaker();
SetLocalInt(oPC, "roguemort", 0);
}
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.


ensuite, dans le Ondeath des ames en peine tu leur mets ça :

NWScript :
void main()
{
object oPC = GetLastKiller();
int iAme = GetLocalInt(oPC, "roguemort");
if(iAme == 20)
{
SendMessageToPC(oPC, "");
}
else
{
iAme++;
SendMessageToPC(oPC, "Vous avez tuer "+IntToString(iAme)+" pour le moment");
}
}
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
BONJOUOIR (contraction de bonjour et de bonsoir lol pour pas se tromper mmm bref^^)

Voila ces 2 sripts (up^^) me plaisent beaucoup mais hélas le compteur ne marche pô Sad
A chaque orques(oui chez moi c'est des orques^^) tués ça me marque toujours "vous avez tué 1 orque" sans donc faire l'addition *snif* et quand j'atteint la quantité souhaitée par la variable (20 donc) le dialogue correspondant à la condition apparait pas

Donc!!!!
1- need help^^
2- est-ce possible que "le massacre" apparaisse en mode "crier" avec le nom du PC: <FullName> a tué ... orques! -> pour un concour à la Légolas versus Gimli ça serait sympa ^^

Enfin voila... un scripteur charitable s'il vous plait??? ^^ D'avance merci Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 26/01/2008 21:41:19 Sujet du message :

Salut.

Pour la premiere question, ce qui manque c'est ta variable +1.
Dans le OnDeath de ta créature, tu dois faire ça :
NWScript :
int iVar = GetLocalInt(oPC,"Nomdetavariable");

SetLocalInt(oPC,"Nomdetavariable",iVar+1);
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.

Pour ta deuxieme question :

NWScript :
void SpeakString(string sStringToSpeak, int nTalkVolume=TALKVOLUME_TALK)
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.


Dans ton script, tu ajoutes :

NWScript :
int iCompta = GetLocalInt(oKiller, "NOMDELAVARIABLE");
int iCompte = SetLocalInt(iCompta+1);
string sInt = IntToString(iCompte);
string sCompte = "";
string sCompte2 = " orcs";

AssignCommand(oPC, SpeakString(GetName(oPC)+sCompte+sInt+sComte2, TALKVOLUME_SHOUT));
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 crois que c'est ça (j'ai pas nwn sous la main).
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
OVLORD
Acolyte
Inscrit le: 05 Juil 2005
Messages: 22
Répondre en citant
Posté le : 28/01/2008 10:52:58 Sujet du message :

okiiii bon je teste ça et je dis quoi Wink
merciiii Cool
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
OVLORD
Acolyte
Inscrit le: 05 Juil 2005
Messages: 22
Répondre en citant
Posté le : 02/02/2008 11:25:29 Sujet du message :

Bonjouuuoirrr et bon week end aussi^^

Voila j'ai testé ce que tu m'as donné Warpshadow et le compteur fonctionne ça c'est parfait.
Par contre une fois le nombre de créature qu'il faut abattre atteint, il ne m'affiche pas la phrase

NWScript :
if(iAme == 20)
{
SendMessageToPC(oPC, "");
/* 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.


Sinon le script ci-dessous je n'ai pas trop compris en faite Embarassed il se rajoute ou se substitut au script a metttre dans le ondeath car ça semble être un compteur également.

NWScript :
int iCompta = GetLocalInt(oKiller, "NOMDELAVARIABLE");
int iCompte = SetLocalInt(iCompta+1);
string sInt = IntToString(iCompte);
string sCompte = "";
string sCompte2 = " orcs";

AssignCommand(oPC, SpeakString(GetName(oPC)+sCompte+sInt+sComte2, TALKVOLUME_SHOUT));
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.


Merci d'éclairer ma vieille torche lol ^^ Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 02/02/2008 19:04:57 Sujet du message :

Salut.

Alors, pour le deuxieme script, il faut l'ajouter bien sûr Smile Si tu ne sais pas le faire, passe-le moi ici.
Pour le premier, je ne sais pas, copie-colle moi le script en entier Smile

Je repasse ce soir.
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 02/02/2008 21:30:46 Sujet du message :

Tu avais pas NwN sous la main donc tu as laissé plusieurs fautes :
- Tu déclares oKiller et oPC
- Tu déclares SetLocalInt en tant qu'entier
- Tu as oublié les arguments dans SetLocalInt
- sCompte2 tu as mit sComte2

Quelques petites remarques :
- Pour ton compteur mieu vaut dans un premier temps récuperer la variable iCompta+1, et tu peut enregistrer la variable ensuite (et iCompta est exploitable car tu as +1).
- Point de vu personnel je trouve sCompte, sCompte2 sont pas trop pratique ici, comme ils sont courts autant les mettres directement dans le SpeakString, c'est plus clair et ça evite deux déclarations. (dans d'autres cas je dis pas ^^)

Sur ce amuse toi bien Razz
_________________
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
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 02/02/2008 23:13:07 Sujet du message :

Pas faux Ivellios (salut au passage, depuis le temps Very Happy).

J'attend qu'il poste ses scripts et je lui fais tout ça.
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
OVLORD
Acolyte
Inscrit le: 05 Juil 2005
Messages: 22
Répondre en citant
Posté le : 03/02/2008 17:05:09 Sujet du message :

En faite je suis pas allé bien loin Embarassed voila ce que j'ai fait

NWScript :

void main()
{
object oPC = GetLastKiller();
int iAme = GetLocalInt(oPC, "mort_ork");
SetLocalInt(oPC,"mort_ork",iAme+1);
if (iAme == 3)
{
SendMessageToPC(oPC, "");
}
else
{
iAme++;
SendMessageToPC(oPC, "Vous avez tue "+IntToString(iAme)+" orque pour le moment");
}
}
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.


Apres avoir tué 3 orques, le compteur m'indique "vous avez tué 3 oques pour le moment" et non pas "Bravo!! Vous avez tué 3 orques!!!" phrase devant apparaitre si la variable concernée par le compteur arrive à 3 --> if (iAme == 3)

Bon je m'y connais pas mais bon utiliser l'expression "else" est-ce correct?

Voila j'ai coincé dès la début comme tu peus le voir - je suis trop PAS fort là lol ^^

Merci encore Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 03/02/2008 22:27:58 Sujet du message :

NWScript :
void main()
{
    object oPC = GetLastKiller();
    int iAme = GetLocalInt(oPC, "mort_ork");

    SetLocalInt(oPC,"mort_ork",iAme+1);

    if (iAme == 3)
    {
        SendMessageToPC(oPC, "");
    }
    else
    {
        iAme++;
        AssignCommand(oPC, SpeakString(GetName(oPC)+""+IntToString(iAme)+" orques pour le moment", TALKVOLUME_SHOUT));
    }
}
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.


(juste avec le "crier" et le nom que tu voulais, TALKVOLUME). Et en agencé plus facilement pour que tu t'y retrouves. Sinon, j'ai pas trouvé d'erreur, faut voir si ça marche.
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 78.222ms