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 23/11/2024 20:53:26
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 |
José Novice Messages: 18 |
Bonjour a tous. Encore une petite idée farfelue.
Je fais des quetes pour que le perso se connaisse lui même et pour la derniere épreuve j'aimerais qu'il s'affronte. Est il possible de faire un script pour copier le personnage qui entre dans la grotte et le faire devenir hostile? Copier le personnage au niveau physique et au niveau de ses caractéristiques sachant que c'est pour un module persistant 1.67 avec le cep 1.52 Merci d'avance. |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
|
Revenir en haut | |
José Novice Messages: 18 |
Super cool. Ca marche d'enfer.
|
Revenir en haut | |
José Novice Messages: 18 |
Eu hen fait j'ai un petit soucis.
Le clone etst bien parfait mais il n'est pas tres bon et par contre il laisse l'equipement du perso cloné en reste. Comment faire pour l'enlever? Et comment rendre meilleur l'IA du clone? |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
A ma connaissance, on ne peut pas. il n'a pas d'IA car c'est un clone de PJ, seul le OnHEartBEAt est là pour lui dire d'attaquer.
_________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
NWScript :
#include "NW_I0_GENERIC" // VideInventaire // Vide l'inventaire de l'objet cible oTarget // si bDestroy = FALSE les rend indropables void VideInventaire(object oTarget, int bDestroy = TRUE) { object oItem = GetFirstItemInInventory(oTarget); while (GetIsObjectValid(oItem)) { if (bDestroy) DestroyObject(oItem, 0.0); else SetDroppableFlag(oItem,FALSE); oItem = GetNextItemInInventory(oTarget); } int i; for (i=0; i<= NUM_INVENTORY_SLOTS; i++) { oItem = GetItemInSlot(i, oTarget); SetDroppableFlag(oItem,FALSE); } } void DetRound(object oTarget) { if (oTarget == OBJECT_INVALID || GetIsDead(oTarget)) { int i = 1; oTarget = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, i, CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC); while (oTarget != OBJECT_INVALID && GetIsDead(oTarget) ) { oTarget = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, ++i, CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC); } if (oTarget == OBJECT_INVALID || GetIsDead(oTarget) || GetDistanceBetween(oTarget, OBJECT_SELF)> 45.0) return; } DetermineCombatRound(oTarget); DelayCommand(RoundsToSeconds(1),AssignCommand(OBJECT_SELF,DetRound(oTarget))); } void buff() { TalentAdvancedBuff(40.0); } void main() { { object oPC = GetEnteringObject(); if (!GetIsPC(oPC) || GetIsDM(oPC) || GetLocalInt(oPC,"CloneDesert")) return; //si y a pas besoin d'executer le script autant quitter tout de suite location lclonePerso = GetLocation(GetObjectByTag("spawn_clone_enn")); SetLocalInt(oPC,"CloneDesert",1); object oCopy = CopyObject(oPC,lclonePerso); ChangeToStandardFaction(oCopy,STANDARD_FACTION_HOSTILE); DelayCommand(1.0,VideInventaire(OBJECT_SELF,FALSE)); DelayCommand(0.5,ForceRest(oCopy)); DelayCommand(0.6,AssignCommand(oCopy,buff())); //le coup de vice DelayCommand(0.8,AssignCommand(oCopy,DetRound(oPC))); //histoire que la copie ait une AI pendant plus d'un round... } } Voila, ça doit être un peu mieux. Mais bon, pour vraiment modifier l'IA, faut toucher au determineCombatRound() et là c'est du boulot. Il me semble avoir vu des versions modifiées sur le vault, je suis pas sur. Là au moins le clone enchaine sur un autre perso si le premier est mort. Et l'inventaire est plus droppé (les items équipés). _________________ L'île perdue - Module RP - Hard Core Ruled - En construction |
Revenir en haut | |
lylver Héros Messages: 274 |
Pour éviter le drop des items, mettre sur le script de OnDeath :
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. Je sais, je sais ... c'est moche, pas documenté dans le Lexicon et c'est du détournement de fonction ... mais c'est inspiré de x0_s3_clonefist, faut juste faire attention aux délais. Ca évite une grosse boucle de nettoyage par script et laisse le moteur de jeu gérer. Essaye ça pour l'IA (toujours tiré de la même référence), cela devrait éliminer plusieurs tests. NWScript :
void FakeHB() { object oEnemy = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN); if (GetIsObjectValid(oEnemy) ){ DetermineCombatRound(oEnemy); } DelayCommand(3.0, FakeHB()); } Même si invoqué plus fréquement, DetermineCombatRound ne devrait pas générer de bizarreries. |
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