La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 28/12/2024 10:32:34
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
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 | |
dragum Chevalier Messages: 80 |
bah c'est comme le systeme des pancarte,faut que tu choisit seulement quand ils doivent crier..
|
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
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 | |
coolstar Grand Chevalier Messages: 148 Localisation: Les Mondes - Chambre 270997 |
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!)...
Code : void main() { SpeakString("La fin du monde est proche!"); } _________________ Ca c'est Envoyé! Docteur Cool! Honorable Canard |
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
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 | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
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 ..ect |
Revenir en haut | |
coolstar Grand Chevalier Messages: 148 Localisation: Les Mondes - Chambre 270997 |
Huummm...
Tout d'abord... SVP, mets les Scripts entre 'Balises' [ code ] [ /code ] (sans les 'espaces'!)... 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 !")... 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??? 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... ... _________________ Ca c'est Envoyé! Docteur Cool! Honorable Canard |
Revenir en haut | |
coolstar Grand Chevalier Messages: 148 Localisation: Les Mondes - Chambre 270997 |
Ha au fait!
Dragull Hull a écrit : Autre chose...
1) Pour faire simle, mets tout simplement ceci dans le OnSpawn (à la place du OnHeartBeat donc... et ça prend moins de CPU!)...
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 ..ect 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... ... _________________ Ca c'est Envoyé! Docteur Cool! Honorable Canard |
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
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 | |
coolstar Grand Chevalier Messages: 148 Localisation: Les Mondes - Chambre 270997 |
Dragull Hull a écrit : Autre chose...
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!)...
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 ..ect 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!)... Et de rien pour le reste! _________________ Ca c'est Envoyé! Docteur Cool! Honorable Canard |
Revenir en haut | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
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 | |
KaG Légende vivante Messages: 445 Localisation: Rodez (12) |
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 | |
Dragull Hull Grand Chevalier Messages: 115 Localisation: Quebec |
jai copier et coler tout le grand script (fakerestore) dans Ation Taken de la conversation que la fontaine ouvre (sa marche )
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 |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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