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 20:53:26


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
José
Novice
Inscrit le: 30 Juin 2006
Messages: 18
Répondre en citant
Posté le : 12/07/2006 18:20:47 Sujet du message : S'afronter soi meme

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.Very Happy
 
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 : 12/07/2006 19:11:36 Sujet du message :

 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
José
Novice
Inscrit le: 30 Juin 2006
Messages: 18
Répondre en citant
Posté le : 13/07/2006 09:05:01 Sujet du message :

Super cool. Ca marche d'enfer.Cool
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
José
Novice
Inscrit le: 30 Juin 2006
Messages: 18
Répondre en citant
Posté le : 20/09/2006 17:34:03 Sujet du message :

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 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 : 22/09/2006 09:18:59 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 22/09/2006 10:35:33 Sujet du message :

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...
}
}
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, ç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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 30/09/2006 01:13:59 Sujet du message :

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


Même si invoqué plus fréquement, DetermineCombatRound ne devrait pas générer de bizarreries.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 64.061ms