La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 27/04/2024 13:59:21


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Altrorm
Novice
Inscrit le: 22 Nov 2008
Messages: 6
Répondre en citant
Posté le : 22/11/2008 17:51:07 Sujet du message : Petit problème: boss scripté

Bonjour bonjour!
Voila, je suis en train de créer un donjon pour un futur monde persistant, et j'ai (vous vous en doutez Razz ) un problème.
Le premier boss de ce donjon est un geolier~loup-garou (oui j'ai un esprit tordu), le combat est censé se derouler en trois phases: d'abord le geolier tout seul, ensuite il appel deux chiens et enfin il se transforme en gros truc poilue et plein de griffes Very Happy
Pour metre un peu d'ambiance dans le combat j'ai voulut lui faire dire quelques phrases bidons, bref voila mes scripts:

OnPerception du boss:
NWScript :

void main()
{
    object oPC = GetLastPerceived();
    int nPhase = GetLocalInt(OBJECT_SELF, "phase");
    if(GetIsPC(oPC)&& nPhase == 0)
    {
        ActionSpeakString("Quoi?! Qui etes vous, comment etes vous arrive ici, que font ces foutues gardes?! Raaah, c'est pas vrai, moi qui avait un prisonnier sur le feu... On est vraiment pas assistes dans c'te baraque!",TALKVOLUME_SHOUT);
        SetLocalInt(OBJECT_SELF, "phase", 1);
    }
// Le bout de code nwn de base:
    ExecuteScript("nw_c2_default2", OBJECT_SELF);

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


OnDamaged:
NWScript :

void main()
{


    object oSpawn = GetNearestObjectByTag("WP_spawn");
    location lSpawn = GetLocation(oSpawn);
    int nPV = GetCurrentHitPoints();
    int nPhase = GetLocalInt(OBJECT_SELF, "phase");

    if (nPV <= 50)
    {
        nPhase = 3;
        AssignCommand(OBJECT_SELF, ActionSpeakString("Vous... ne m'aurez pas... si facilement!!!"));
        CreateObject(OBJECT_TYPE_CREATURE, "ti_boss1_phase3", lSpawn);
        DestroyObject(OBJECT_SELF);
        ApplyEffectAtLocation( DURATION_TYPE_INSTANT, EffectVisualEffect( VFX_FNF_FIREBALL), GetLocation(OBJECT_SELF));
    }
    if (nPV <= 200)
    {
        if (nPhase == 1)
        {
            ActionSpeakString("Vous n'etes pas si mauvais... A moi Brutus, Brutalus!!");
            CreateObject(OBJECT_TYPE_CREATURE, "brutus", lSpawn, TRUE);
            CreateObject(OBJECT_TYPE_CREATURE, "brutalus", lSpawn, TRUE);
            SetLocalInt(OBJECT_SELF, "phase", 2);
        }
    }

// le bout de code nwn de base:
    if (GetPlotFlag(OBJECT_SELF))
    {
        return;
    }

  ExecuteScript("nw_c2_default6", OBJECT_SELF);
}
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 l'avait bien dit que mes phrases etaient bidons Embarassed)
Et la plusieurs problèmes se presentent:
- Le boss ne dit pas ses phrases
- Il n'invoque pas ses chients
- La "copie" du boss n'est pas créée, bien que l'effet visuel s'affiche correctement Confused

Voila, j'ai essayé des tas de trucs, bidouillé de partout mais... je trouve pas ^^"
Merci d'avance de votre aide Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Claudius33
Grand Sage du Conseil
Inscrit le: 25 Avr 2008
Messages: 547
Répondre en citant
Posté le : 23/11/2008 11:21:17 Sujet du message :

Bonjour,

De manière générale, utiliser SpeakString lorsque que le script est lié à un évenement d'OBJECT_SELF, ActionSpeakString quand on lie la phrase à une créature par AssignCommand.

Je pense que le pb vient du fait que le boss est en mode combat donc que les actions générées par l'IA de NWN2 sont prioritaires.

Essayes d'encadrer les paroles et les CreateObject par :

NWScript :
ClearAllActions(FALSE); // vide la queue d'actions du Boss tout en gardant le mode combat actif

// actions ici (phrase, chiens, double)

AssignCommand(OBJECT_SELF, ActionAttack(oPC));
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Altrorm
Novice
Inscrit le: 22 Nov 2008
Messages: 6
Répondre en citant
Posté le : 23/11/2008 13:51:43 Sujet du message :

Salut et tout d'abord merci pour ta reponse Smile
En effet le problème des paroles venait simplement du ActionSpeakString, je l'ai changé en SpeakString et maintenant ca marche. J'ai egalement ajouté les ClearAllAction() et ActionAttack(), mais les creatures... n'aparaissent toujours pas -_-'
J'ai testé pas mal de trucs, j'ai verifié les resref, le tag du WP, j'ai essayé de les faire spawn via un trigger (ce qui ne marche pas), de les faire apparaitre via un EffetSummonCreature... mais j'ai rien trouvé.
Je suis sur que c'est un truc tout bete mais la... je seche^^"
Donc si quelqu'un a une idée... Embarassed

P.S Je vient de remarquer que je me suis betement trompé de forum, en effet je scripte sous nwn 1 :s (enfin, ceci dit je pense pas que ca change grand chose, le nwscript etant resté globalement identique)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
orange angel
Ecuyer
Inscrit le: 09 Jan 2005
Messages: 45
Localisation: Belgique
Répondre en citant
Posté le : 23/11/2008 13:56:06 Sujet du message :

Et au passage, ya trois petites fautes d'orthographe que tu peux corriger dans tes dialogues:

- Foutus gardes, ne prend pas de e sauf si tous les gardes sont des femmes
- Moi qui avais, première personne du singulier se conjugue avec S à l'imparfait
- On n'est pas assisté , le participe ne prend pas de s quand on l'accorde avec on.

Voilou voilou !
_________________
Alors que le monde allait à sa perte, l'ange descendit du ciel et, d'un battement d'aile couleur soleil couchant, il rétablit la paix et l'harmonie
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Claudius33
Grand Sage du Conseil
Inscrit le: 25 Avr 2008
Messages: 547
Répondre en citant
Posté le : 23/11/2008 14:56:57 Sujet du message :

Tout a l'air correct (encore que je n'ai pas pratiqué sous NWN1).

Essayes une méthode plus brutale en remplaçant GetNearestObjectByTag par GetObjectByTag pour vérifier que le spawning des créatures se fait bien.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Altrorm
Novice
Inscrit le: 22 Nov 2008
Messages: 6
Répondre en citant
Posté le : 23/11/2008 15:34:51 Sujet du message :

Orange==> Je te remercie, j'ai redigé mes dialogues un peu a l'arrache Embarassed

Sinon j'ai deja essayé avec un GetObjectByTag, et ca marche pas mieu, j'ai surement fait une bete connerie quelque part, mais la... je voit pas :s
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Claudius33
Grand Sage du Conseil
Inscrit le: 25 Avr 2008
Messages: 547
Répondre en citant
Posté le : 23/11/2008 21:51:13 Sujet du message :

As tu essayé de mettre l'animation à FALSE dans le CreateObject? Comme tu es en mode combat ça gêne peut être.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Altrorm
Novice
Inscrit le: 22 Nov 2008
Messages: 6
Répondre en citant
Posté le : 24/11/2008 18:44:29 Sujet du message :

Oui, j'ai essayé ca, helas pas plus de resultats Confused
J'ai egalement tenté d'enlever le mode combat du joueur avec un ClearAllActions(sait on jamais)... toujours rien, je commence a desesperer un peu, je croit que je vais passer a autre chose et y revenir plus tard... ou carrément changer le deroulement de mon combat^^"
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Altrorm
Novice
Inscrit le: 22 Nov 2008
Messages: 6
Répondre en citant
Posté le : 26/11/2008 20:05:50 Sujet du message :

Problème résolu en codant a la barbare; l'editeur ne voulant apperament pas créer de creatures provenant de la palette personalisée je les ai prealablement spawn dans une autre zone et les ai amené dans le combat via un JumpToObject() (quand je disais codage de barbare... :°)
En tout cas merci pour le coup de main, pluche Smile
 
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 28.006ms