La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 02/05/2024 03:24:04


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Dragull Hull
Grand Chevalier
Inscrit le: 23 Déc 2002
Messages: 115
Localisation: Quebec
Répondre en citant
Posté le : 23/12/2002 02:29:17 Sujet du message : Question Stupide

bonjour
je sais pas coment faire pour que mes NPC parle tout seul
exemple crieur dans une ville...
jaimerais bien en metre une mais je sais juste pas coment
pouriez vous mexpliquer ca clairement quelqun.?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Numéro ICQ Ignorer l'utilisateur
 
dragum
Chevalier
Inscrit le: 13 Nov 2002
Messages: 80
Répondre en citant
Posté le : 23/12/2002 02:31:48 Sujet du message :

bah c'est comme le systeme des pancarte,faut que tu choisit seulement quand ils doivent crier..
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Dragull Hull
Grand Chevalier
Inscrit le: 23 Déc 2002
Messages: 115
Localisation: Quebec
Répondre en citant
Posté le : 23/12/2002 03:41:00 Sujet du message :

ouais mais je sais pas dutout coment faire
je doit metre une script dans
wen text apear ?
pour que le NPC le dise fort
si je met rien dutout, aucun script null part, le text aparait en blanc au dessu de sa tete just quand le joueur parle au NPC
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 : 23/12/2002 04:16:46 Sujet du message :

Ben, tu peux par exemple mettre un Script dans le OnHeartBeat... comme un truc du genre qui suit! mais vraiment pour faire simple, hein (nan parce que là, sinon, tu peux aussi aller voir le Module de NWN avec l'Aurora!)... Very Happy

Code :

void main()
{
    SpeakString("La fin du monde est proche!");
}

_________________
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
 
Dragull Hull
Grand Chevalier
Inscrit le: 23 Déc 2002
Messages: 115
Localisation: Quebec
Répondre en citant
Posté le : 23/12/2002 04:21:29 Sujet du message :

A merci c tout ce que javais de besoin !!
c simple mais quand ont sais pas ..heh
jai regarder dans le modue solo et ce quil y avais ressemblais a ca :

Code :

int StartingConditional()
{
    int bCondition = !GetIsObjectValid(GetPCSpeaker()) &&
                     GetLocalInt(OBJECT_SELF,"NW_L_TALKTIMES") == 1;
    return bCondition;
}


et ca faisait rien dutout
je sais toujour pas a quoi sert ce script ...c du chinois pour moi hehe
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Numéro ICQ Ignorer l'utilisateur
 
Dragull Hull
Grand Chevalier
Inscrit le: 23 Déc 2002
Messages: 115
Localisation: Quebec
Répondre en citant
Posté le : 23/12/2002 04:32:58 Sujet du message :

Autre chose...
ya moyen de ralentire le nombre de fois que le NPC dit la phrase... comme cest la ill le dit tres souvent
et jaurais besoin de savoir aussi coment faire que un iteme lance un sort

exemple, on use, le PC touche la fontaine ( lutilise) et la fontaine lui fait un sort de guerison ou outre .... doigt de la mort Confused ..ect
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 : 23/12/2002 11:54:16 Sujet du message :

Huummm...


Tout d'abord... SVP, mets les Scripts entre 'Balises' [ code ] [ /code ] (sans les 'espaces'!)... Wink

Code :

int StartingConditional()  // ‘Conditions d’exécution’
{   // Ouverture des Conditions :
    // Vérifier ‘Si’ ce n’est pas un PC qui parle & ‘Si’ la Variable "NW_L_TALKTIMES" est TRUE :
    int bCondition = !GetIsObjectValid(GetPCSpeaker())
    && GetLocalInt(OBJECT_SELF, "NW_L_TALKTIMES") == 1;

    return bCondition; // Si tout est 'Valide' Alors exécuter cette partie du ‘Dialogue’
}   // Fermeture des Conditions…


Par ailleurs... en l'occurrence, ceci ne pouvait rien faire pour toi...ce que tu as là est une "Variable Locale" a insérer dans un Dial... Ca fait partie des Conditions d'exécution pour poursuivre un Dial (reconnaissable au 'int StartingConditional'!)... Ca sert à repérer si la partie "concernée" du 'Dialogue' peut être prononcée... Aussi, si ce n'est pas un PC qui s'Adresse au NPC et si la Variable n'existe pas encore, il ne se passera rien (il faut que la Variable soit créée ailleurs, genre avec un autre NPC qui dira "Va lui parler maintenant, il répondra à ta question !")... Razz

Cependant, pour moins de confusion (et pour que ce Script soit plus logique, vu que je ne comprends pas pourquoi on cherche un PCSpeaker non Valide !), j’aurais écrit plutôt les choses comme ça :
Code :

int StartingConditional()  // ‘Conditions d’exécution’
{   // Ouverture des Conditions :
    // Si c’est un PC qui parle & Si la Variable ‘NW_L_TALKTIMES’ est TRUE, Alors exécuter cette partie du ‘Dialogue’ :
    return GetIsObjectValid(GetPCSpeaker()) && GetLocalInt(OBJECT_SELF, "NW_L_TALKTIMES") == 1;
}   // Fermeture des Conditions…


D'autre part… pour obtenir cette Variable à TRUE (afin que les Conditions d’exécution soient respectés !) il faut l’affectée dans une autre partie de ‘Dialogue’… c’est-à-dire dans les Actions conséquentes (genre lorsqu'un NPC vous dit "Va lui parler maintenant, il répondra à ta question !"), comme suit :
Code :

void main()  // ‘Actions conséquentes’
{   // Ouverture des Actions :
    // On Attribue à l’Objet lui-même (ici au 'NPC') la Variable "NW_L_TALKTIMES" à "1" (TRUE).
    SetLocalInt(OBJECT_SELF, "NW_L_TALKTIMES", 1);
}   // Fermeture des Actions  …

You see??? Laughing



Tout ça pour dire... qu'en fait tu avais tout simplement besoin c'est d'un Script indépendant qui commence par un 'void main' et qui n'a pas à être inséré dans un 'Dialogue'... puisque c'est 'SpeakString' qui joue ici le rôle de déclencheur de 'Dial'... Voilà, voilà... pour l'instant... Cool

...

_________________
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
 
coolstar
Grand Chevalier
Inscrit le: 16 Oct 2002
Messages: 148
Localisation: Les Mondes - Chambre 270997
Répondre en citant
Posté le : 23/12/2002 14:37:35 Sujet du message :

Ha au fait! Very Happy



Dragull Hull a écrit :
Autre chose...
ya moyen de ralentire le nombre de fois que le NPC dit la phrase... comme cest la ill le dit tres souvent
et jaurais besoin de savoir aussi coment faire que un iteme lance un sort

exemple, on use, le PC touche la fontaine ( lutilise) et la fontaine lui fait un sort de guerison ou outre .... doigt de la mort Confused ..ect
1) Pour faire simle, mets tout simplement ceci dans le OnSpawn (à la place du OnHeartBeat donc... et ça prend moins de CPU!)...
Code :

/* Script du "Crieur" repetant son texte toutes les 30Sec en deambulant...
A mettre dans le 'OnSpawn' : */

void main()
{
    SpeakString("Encore!"); // Phrase prononcée par le 'Propriétaire' du Script
    ActionRandomWalk(); // Déambule au gré du hasard

    // Fonction "Bigoudi" : Relance le même Script toutes les 30Sec ('Mise en boucle').
    DelayCommand(30.0, ExecuteScript("encore", OBJECT_SELF));
}



2) Voir par ici pour une première info... 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
 
Dragull Hull
Grand Chevalier
Inscrit le: 23 Déc 2002
Messages: 115
Localisation: Quebec
Répondre en citant
Posté le : 24/12/2002 04:34:15 Sujet du message :

Merci pour le lien de lautre furum, quoi qil en soit, il parlent de itemes moi je parle de placeble (une table .. un banc .. une fontaine..
dans le fond ce que jai besoin de placer une fontaine de jouvance dans un temple, quand le monde lui touche, (use) ils guerissent.
pouvez me guider dans ce petit probleme, evidament surment tres banale pour vous.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 : 24/12/2002 11:13:27 Sujet du message :


Dragull Hull a écrit :
Autre chose...
ya moyen de ralentire le nombre de fois que le NPC dit la phrase... comme cest la ill le dit tres souvent
et jaurais besoin de savoir aussi coment faire que un iteme lance un sort

exemple, on use, le PC touche la fontaine ( lutilise) et la fontaine lui fait un sort de guerison ou outre .... doigt de la mort Confused ..ect
Heeuuu... en relisant je vois où est la confusion... Tu as bien cité l'exemple de la Fontaine là, mais comme tu avais en fait utilisé le terme de ITEM cela m'avait induit en erreur... Les ITEMS désignent tout ce qui est dans l'Equipement (en opposition aux OBJETS qui désignent tout le reste... Créatures/Plaçables!)... Confused

Pour ce qui est de faire réagir une fontaine donc, tu as tout simplement besoin de ActionStartConversation (de la même façon que pour les Créatures!)... Cool


Et de rien pour le reste! Surprised
_________________
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
 
Dragull Hull
Grand Chevalier
Inscrit le: 23 Déc 2002
Messages: 115
Localisation: Quebec
Répondre en citant
Posté le : 25/12/2002 21:26:33 Sujet du message :

Je met ca ou ActionStartConversaton ?
dans onUse de Objet ?
Je met que ca ?

et si sa fait demarer une conversation, Coment je fait pour que une des phrase,exeple

voulez vous boire leau de la fontaine ?
oui - (je palce quoi ici dans = Action taken )
non
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Numéro ICQ Ignorer l'utilisateur
 
KaG
Légende vivante
Inscrit le: 30 Sep 2002
Messages: 445
Localisation: Rodez (12)
Répondre en citant
Posté le : 25/12/2002 22:53:20 Sujet du message :

Bah en fait une fois qu'il lance la conversation, tu le gères comme une conversation...

"onused" -> le script
"conversation" -> ton dialogue avec éventuellement un script de soin en "action conséquent" d'une option (exemple "boire?" réponse "oui")

Le script en lui même donne éventuellement ça :
Code :
void main()
{
  object oPC=GetLastUsedBy();
  AssignCommand(OBJECT_SELF,ActionStartConversation(oPC));
}


Pour le script de soins, en voici un qui soigne le personnage, ses coéquipiers et donne des potions à ces derniers (on peut supposer qu'il remplissent des bouteilles) :
Code :
void FakeRestore(object oTarget);

void main()
{
    object oPC = GetPCSpeaker();
    object oHenchman = GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oPC);
    object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oPC);
    object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR,oPC);
    object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED,oPC);
    object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED,oPC);
    ActionPauseConversation();
    ActionCastFakeSpellAtObject(SPELL_GREATER_RESTORATION, OBJECT_SELF);
    ActionDoCommand(FakeRestore(oPC));
    if(GetIsObjectValid(oHenchman))
    {
        ActionDoCommand(FakeRestore(oHenchman));
        // checks to see if they have any cure crital wound potions; if not, creates it on them.
        if (!GetIsObjectValid(GetItemPossessedBy(oHenchman,"NW_IT_MPOTION003")))
        {
            CreateItemOnObject("NW_IT_MPOTION003",oHenchman,3);
        }
    }
    if(GetIsObjectValid(oAnimal))
    {
        ActionDoCommand(FakeRestore(oAnimal));
    }
    if(GetIsObjectValid(oFamiliar))
    {
        ActionDoCommand(FakeRestore(oFamiliar));
    }
    if(GetIsObjectValid(oDominated))
    {
        ActionDoCommand(FakeRestore(oDominated));
    }
    if(GetIsObjectValid(oSummoned))
    {
        ActionDoCommand(FakeRestore(oSummoned));
    }
    ActionResumeConversation();
}

void FakeRestore(object oTarget)
{
    effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION_GREATER);

    effect eBad = GetFirstEffect(oTarget);
    //Search for negative effects
    while(GetIsEffectValid(eBad))
    {
        if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE ||
            GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE ||
            GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE ||
            GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE ||
            GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE ||
            GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE ||
            GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE ||
            GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE ||
            GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS ||
            GetEffectType(eBad) == EFFECT_TYPE_DEAF ||
            GetEffectType(eBad) == EFFECT_TYPE_CURSE ||
            GetEffectType(eBad) == EFFECT_TYPE_DISEASE ||
            GetEffectType(eBad) == EFFECT_TYPE_POISON ||
            GetEffectType(eBad) == EFFECT_TYPE_PARALYZE ||
            GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL)
        {
            //Remove effect if it is negative.
            RemoveEffect(oTarget, eBad);
        }
        eBad = GetNextEffect(oTarget);
    }
    if(GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
    {
        //Apply the VFX impact and effects
        int nHeal = GetMaxHitPoints(oTarget) - GetCurrentHitPoints(oTarget);
        effect eHeal = EffectHeal(nHeal);
        if (nHeal > 0)
            ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget);
    }
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oTarget);
}

_________________
Mon antre (et son module NWN) :ici!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Dragull Hull
Grand Chevalier
Inscrit le: 23 Déc 2002
Messages: 115
Localisation: Quebec
Répondre en citant
Posté le : 26/12/2002 02:14:52 Sujet du message :

jai copier et coler tout le grand script (fakerestore) dans Ation Taken de la conversation que la fontaine ouvre (sa marche Smile )

la conversation donne ca

Vous ete devant la fontaine astrale de Kelemvor, que voulez vous faire?

Boire Leau de la fontaine. = ici, dans "Ation Taken"(jai le jeux en anglais, ca doit etre "action conséquent" en francais) jai mit le script "FakeRestore" ===Ca ne fait rien. pourtant le script se compile bien.


Uriner dans la fontaine. = ici je voudrais que le joeur recoivent un sort de Curse (malediction), Je doit encore metre quelque chose dans "Action Taken" mais koi ? quelle script.


En passant merci a tous pour vos reponse geniale, mon module Sen Vient TRES ......mieu Cool
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Numéro ICQ 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 28.179ms