La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 01/06/2024 11:18:31


  Page 2 sur 2 ¤ Aller à la page Précédente  1, 2

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Jaha Effect
Acolyte
Inscrit le: 31 Déc 2002
Messages: 39
Répondre en citant
Posté le : 04/01/2003 06:54:34 Sujet du message :

Je vais donner une solution un peu différente à ton problème.
Tu veux compter le nombre de créature morte, pourquoi tu ne fais pas dropper a tes créatures un objet, un oeil ou quelque chose comme ça. Après il est tout simple de récupérer le nombre d'objet dans l'inventaire pour valider la quête ?
Enfin moi je dis ça, ce n'est qu'une solution, pourquoi faire compliqué ...

Jaha Effect Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ak Darkster
Grand Maître Chanteur du Conseil
Inscrit le: 27 Sep 2002
Messages: 1354
Localisation: canada
Répondre en citant
Posté le : 04/01/2003 13:26:23 Sujet du message :

Bon voici le script pour compter que j'utilise (Je sais qu'il est pas bon, mais je sais pas trop quel fonction je dois mettre pour qu'il aille chercher l'int du compteur.

Code :
int StartingConditional()
{

    // Inspect local variables
    if(!(GetLocalInt(GetPCSpeaker(), "cptmobs_sortie") == 9))
        return FALSE;

    return TRUE;
}
[/code]
_________________
On doit tous mourir un jour... mais pour moi, c'est pas demain la veille, alors sort tes armes sale dragon!!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 04/01/2003 13:56:19 Sujet du message :

La tu teste le nombre de mobs que le pj qui parle (GetPCSpeaker) a tué....
Quel script as tu utilisé dans le ondeath des mobs ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Ak Darkster
Grand Maître Chanteur du Conseil
Inscrit le: 27 Sep 2002
Messages: 1354
Localisation: canada
Répondre en citant
Posté le : 04/01/2003 16:16:43 Sujet du message :

celui-ci, doncça colle pas.

Code :
///////////////////////////////////////////
//:: Default:On Death
//:: NW_C2_DEFAULT7
//:: Copyright (c) 2001 Bioware Corp.
//://///////////////////////////////////////////
/*
Shouts to allies that they have been killed
*/
//://///////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//://///////////////////////////////////////////
#include "NW_I0_GENERIC"

void main()
{
    object oNPC = OBJECT_SELF;
    int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
    int nAlign = GetAlignmentGoodEvil(oNPC );

    if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
    {
        object oKiller = GetLastKiller();
        AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
    }

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

    if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
        SignalEvent(oNPC , EventUserDefined(1007));

    // Partie concernant le comptage des Mobs a tuer :
    object oPNC = GetObjectByTag("maire");
    string sVarName = "cptmobs_sortie";
    int cpt = GetLocalInt(oPNC, sVarName);
    SetLocalInt(oPNC, sVarName, cpt+1);
}

_________________
On doit tous mourir un jour... mais pour moi, c'est pas demain la veille, alors sort tes armes sale dragon!!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Ak Darkster
Grand Maître Chanteur du Conseil
Inscrit le: 27 Sep 2002
Messages: 1354
Localisation: canada
Répondre en citant
Posté le : 07/01/2003 00:37:40 Sujet du message :

He ho, y a quelqu'un qui peut m'aider, je suis pas capable de faire le script pour vérifier la variable du compteur.
_________________
On doit tous mourir un jour... mais pour moi, c'est pas demain la veille, alors sort tes armes sale dragon!!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Wololo
Légende vivante
Inscrit le: 13 Déc 2002
Messages: 385
Répondre en citant
Posté le : 07/01/2003 01:22:27 Sujet du message :

Code :


///////////////////////////////////////////
//:: Default:On Death
//:: NW_C2_DEFAULT7
//:: Copyright (c) 2001 Bioware Corp.
//////////////////////////////////////////////
/*
Shouts to allies that they have been killed
*/
//////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//////////////////////////////////////////////
#include "NW_I0_GENERIC"

void main()
{
    object oNPC = OBJECT_SELF;
    int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
    int nAlign = GetAlignmentGoodEvil(oNPC );
    object oKiller = GetLastKiller();

    if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
    { 
        AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
    }

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

    if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
        SignalEvent(oNPC , EventUserDefined(1007));

    // Partie concernant le comptage des Mobs a tuer :
    // object oPNC = GetObjectByTag("maire");
    string sVarName = "cptmobs_sortie";
    int cpt = GetLocalInt(oKiller, sVarName);
    SetLocalInt(oPNC, sVarName, cpt+1);
}



alors là, les variables ont stockées sur les PJs qui tuent les gobs .. si tu préféres une solution où la variable est stockée sur le Chef du groupe comme ca ca récompensera tout le groupe .. mais là j'ai un coup de barre : donc le bon script sera posté quand je saurai quel est le point faible de Zangdar (ép 15 du donjon de Naheulbeuk !)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 07/01/2003 13:06:53 Sujet du message :

Il faut faire un choix sur la façon dont tu veux résoudre le pb: Donner la récompense au premier qui viens la chercher, ou récompenser tout les PJ qui ont tués un certain nombre de gobs.
Ou alors autre solution, tu peux faire un script un peu plus complexe qui récompensera tout les PJ ayant participé à la tuerie... ca me semble faisable en manipulant le ondeath des gobs et en créant sur le module une liste des gens ayant tué au moins un gob.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Ak Darkster
Grand Maître Chanteur du Conseil
Inscrit le: 27 Sep 2002
Messages: 1354
Localisation: canada
Répondre en citant
Posté le : 07/01/2003 14:16:53 Sujet du message :

Ben, les monstres ne respawnent pas. Donc, je dirais récompenser tous ceux qui ont participés à la tuerie. Seulement, ce que je voulais savoir, c'est le script pour pouvoir lire la variable(suis nul Sad)
_________________
On doit tous mourir un jour... mais pour moi, c'est pas demain la veille, alors sort tes armes sale dragon!!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 07/01/2003 18:39:01 Sujet du message : valà ce que je propose

Voilà ce que je propose :
ondeath des mobs:
Code :

#include "NW_I0_GENERIC"

void main()
{
    int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
    int nAlign = GetAlignmentGoodEvil(OBJECT_SELF);
    if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
    {
        object oKiller = GetLastKiller();
        AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
    }

    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);
    if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(1007));
    }

    object module = GetModule();
    //La tu comptes le nombre de mobs
    int cpt = GetLocalInt(module, "cptmobs");
    SetLocalInt(module, "cptmobs", cpt+1);
    //la tu marque le fait que ton pj a bien tué au moins un gob
    SetLocalInt(GetLastKiller(), "haskilledgob",1);

}


Maintenant dans le text appear when de ta conversation en supposant qu'il y'a 10 gobs en tout, et en supposant que chacun des joueur doit venir parler au gars pour chercher sa récompense une fois les 10 gobs tués:

Code :

int StartingConditional()
{
    if(GetLocalInt(GetModule(), "cptmobs")==10 && GetLocalInt(GetPCSpeaker(),"haskilledgob")==1)
   {
        //On s'assure que le PJ ne touchera qu'une fois sa récompense
        SetLocalInt(GetPCSpeaker(), "haskilledgob",2);
        return TRUE;
   }
   return FALSE;
}


sachant que le text appear when de ta conversation par défaut serait:
Code :

int StartingConditional()
{
    if(GetLocalInt(GetPCSpeaker(),"haskilledgob")==0)
        return TRUE;

   return FALSE;
}

et celui d'un perso qui a déjà touché la récompense serait:
Code :

int StartingConditional()
{
    if(GetLocalInt(GetPCSpeaker(),"haskilledgob")==2)
        return TRUE;

   return FALSE;
}

(avec un texte du style "Je vous ai déjà récompensé")
Dernière édition par Serguai le 08/01/2003 11:18:03; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
coolstar
Grand Chevalier
Inscrit le: 16 Oct 2002
Messages: 148
Localisation: Les Mondes - Chambre 270997
Répondre en citant
Posté le : 07/01/2003 20:31:42 Sujet du message :

Quel courage! Wink
_________________
Very Happy Ca c'est Envoyé!

Docteur Cool! Honorable Canard Cool
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Ak Darkster
Grand Maître Chanteur du Conseil
Inscrit le: 27 Sep 2002
Messages: 1354
Localisation: canada
Répondre en citant
Posté le : 08/01/2003 00:43:20 Sujet du message :

Ouah, Serguai, dès que je peux, je mets ça. Super, merci beaucoup.
_________________
On doit tous mourir un jour... mais pour moi, c'est pas demain la veille, alors sort tes armes sale dragon!!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Wololo
Légende vivante
Inscrit le: 13 Déc 2002
Messages: 385
Répondre en citant
Posté le : 08/01/2003 07:52:51 Sujet du message :

mouais, moi je vois que jamais on met la variable à 2, alors pour marquer les PJs ... en effet pour marquer les PJ tu mets la variable à 1 ...
et tu testes si elle est égale à 2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Serguai
Grand Chevalier
Inscrit le: 07 Déc 2002
Messages: 104
Répondre en citant
Posté le : 08/01/2003 11:17:36 Sujet du message :

Vi petite erreur, j'édite Smile

C'est le risque du copier coller Surprised
Merci de l'avoir signalé )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Numéro ICQ Ignorer l'utilisateur
 
Ak Darkster
Grand Maître Chanteur du Conseil
Inscrit le: 27 Sep 2002
Messages: 1354
Localisation: canada
Répondre en citant
Posté le : 07/03/2003 15:36:13 Sujet du message :

Bon, j'arrive toujours pas à faire ça.

Premier script (sur les mobs):

Code :
//://////////////////////////////////////////////
//:: Default:On Death
//:: NW_C2_DEFAULT7
//:: Copyright (c) 2001 Bioware Corp.
//://///////////////////////////////////////////
/*
Shouts to allies that they have been killed
*/
//://///////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//://///////////////////////////////////////////
#include "NW_I0_GENERIC"

void main()
{
    object oNPC = OBJECT_SELF;
    int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
    int nAlign = GetAlignmentGoodEvil(oNPC );

    if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
    {
        object oKiller = GetLastKiller();
        AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
    }

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

    if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
        SignalEvent(oNPC , EventUserDefined(1007));

    // Partie concernant le comptage des Mobs a tuer :
    object oPNC = GetObjectByTag("maire");
    string sVarName = "cptmobs_sortie";
    int cpt = GetLocalInt(oPNC, sVarName);
    SetLocalInt(oPNC, sVarName, cpt+1);
}


Deuxième code: dans la conversation(as-tu fini? oui(le script est là) non)

Code :
//::///////////////////////////////////////////////
//:: FileName conv_garde_yes
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 01/07/2002 22:18:48
//:://////////////////////////////////////////////
int StartingConditional()
{

    // Inspect local variables
    if(!(GetLocalInt(object oPNC = GetObjectByTag("maire")(), "cptmobs_sortie") == 9))
        return FALSE;

    return TRUE;
}

_________________
On doit tous mourir un jour... mais pour moi, c'est pas demain la veille, alors sort tes armes sale dragon!!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Jedaï
Chevalier
Inscrit le: 14 Nov 2002
Messages: 89
Localisation: Le Havre, ville pourrie
Répondre en citant
Posté le : 07/03/2003 20:01:01 Sujet du message :

C'est quoi cette m****, y a des parenthèses en trop là, et comment ça se fait que tu te réveille deux mois après ? Va faire les tutoriaux, si tu relisais ton script avec un oeil critique, tu trouverais ton erreur !Mad
Bon je te met comme même la correction...grmbl, ces jeunes ! Wink
Code :

//:ohwell.gif//////////////////////////////////////////////
//:: FileName conv_garde_yes
//:ohwell.gif/////////////////////////////////////////////
//:ohwell.gif/////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 01/07/2002 22:18:48
//:://///////////////////////////////////////////
int StartingConditional()
{
        return ( GetLocalInt( OBJECT_SELF, "cptmobs_sortie" ) >= 9 );
}
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ak Darkster
Grand Maître Chanteur du Conseil
Inscrit le: 27 Sep 2002
Messages: 1354
Localisation: canada
Répondre en citant
Posté le : 08/03/2003 16:50:40 Sujet du message :

J'ai essayé de faire les tutoriaux, mais je me suis perdu au milieu Sad

Pourquoi je me réveille 2 mois après? parce que j'ai recommencé à travailler sérieusement sur le projet, après avoir croulé sous le boulot scolaire.
_________________
On doit tous mourir un jour... mais pour moi, c'est pas demain la veille, alors sort tes armes sale dragon!!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Tyrion
Ecuyer
Inscrit le: 23 Fév 2003
Messages: 43
Répondre en citant
Posté le : 11/03/2003 21:17:16 Sujet du message :

puisque sa a l'air pour une quete il ne serai pas possible que lorsqu'on parle a un pnj il nous remette un contrat (par exemple) et de stokker le conteur sur se contrat . Ca ne permettrai pas desfois en multijoueur d'avoir plusieurs joueurs qui peuvent faire la quete en meme temps et recevoir chacun une recompense a la fin. J'entend par la que chaque joueur par exemple doit tuer 10 gobs et un fois fait een retournanyt le contrat au pnj celui ci lui echange contre la recompence ?

Merci de me repondre car cela pourrai me servir dans un quete a venir .

Merci Tyrion
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 03/03/2005 11:41:38 Sujet du message :

Perso, dans le OnDeath de la creature, je ferais un truc comme ca :

NWScript :
object oKiller = GetLastKiller();
int cpt = GetLocalInt(oKiller, "gob");

void main()
{
SetLocalInt(oKiller, "gob", cpt+1);
SpeakString("")+ cpt +(" gob sur 10");
}
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 dis plus haut !

Puis, dans la condition d'un dialogue :

NWScript :
int StartingConditional()
{

    // Inspecter variables locales
    if(!(GetLocalInt(GetPCSpeaker(), "cpt") > 10))
        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.

avec dans action consecance :

NWScript :
void main()
{
   
    GiveGoldToCreature(GetPCSpeaker(), 1000);

   
    GiveXPToCreature(GetPCSpeaker(), 1000);

   
    SetLocalInt(GetPCSpeaker(), "recompence", 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.


et enfin, je creer une autre ligne de dialogue, en tout premier pour le pnj :

NWScript :
int StartingConditional()
{

    // Inspecter variables locales
    if(!(GetLocalInt(GetPCSpeaker(), "recompence") == 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.

avec resultat : Vous avez deja tué les gobs, je vous donne pas la recompense une seconde fois.

En clair, ton dial ressemble :
PNJ : (Condition "recompense"=1) vous avez deja tué les gobs !
Pj : Zut, ca marche pas plusieurs fois
PNJ : (Condition "Gob">10) Bravo, voila votre recompense !
Pj : Merci
PNJ : (Sans condition) Les gobs nous pourrisent la vie, tuez 10 des leurs !
Pj, d'accord, j'y vais
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 03/03/2005 19:05:25 Sujet du message :

mdr, a mon avis en 2 ans, soit il a trouvé, soit il a abandonné ^^
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 03/03/2005 19:31:49 Sujet du message :

 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 04/03/2005 11:58:35 Sujet du message :

en fait, j'ai donne la solution, pour moi, car comme ca si j'ai fait une erreur, on la corrige, et pour ceux qui sont interres aussi Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 2 sur 2 ¤ Aller à la page Précédente  1, 2


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 33.022ms