La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 18/05/2024 08:45:53


  Page 2 sur 2 ¤ Aller à la page Précédente  1, 2

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 23/03/2006 09:36:40 Sujet du message :

ok je vais faire un autre sujet pour reformuler la question concernant le chant (qui intervient bien suite à un dialogue)

pour ce qui est du cafarnaüm (je sais pas l'écrire non plus), pour ma demande "principale", si tu veux je peux faire un récap global de la scène souhaitée, avec les "dialogues" les actions que tu as déja réussi à scripter et celles qui resteraient à ajouter ? qu'en penses tu ?

sinon mon accès adsl est revenu, free avait juste choisi hier soir comme moment pour faire mon dégroupage (qui avait été demandé en 2002 Wink mais du coup ce matin ça remarche)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 23/03/2006 14:24:15 Sujet du message :

Voilà j'ai fini le script il était dur parce que je suis pas assez méthodique Smile. Au final j'ai appris plein de trucs et je ferai pas deux fois les mêmes erreurs.

Bon bah tu laisses les propriétés du henchman comme je te l'avais dit.
Tu laisse les scripts OnDeath et OnPerceveid du boss comme avant et tu édite juste le script ci dessous (OnCombatRoundEnd).

Récapitulatif:
-Monstre à - de 10% de sa vie:
Monstre lance un sort au joueur.
Joueur renversé, perd son arme.
Henchman ramasse l'arme, la plante dans le monstre (il perd l'arme).
Le monstre meurt.
L'arme est contenue dans les "restes" du boss.

OnCombatRoundEnd:
NWScript :
//:Confused///////////////////////// ////////////////////
//:: Name Fin de round du boss
//:: Filename st_aboss_combat
//:: Created By: -MeteZ-
//
// Si vous desirez modifier/arranger, faire part  //
// de vos appreciations/remarques, n'hesitez pas, //
// a me le faire savoir.*/                      //
////////////////////////////// ////////////////////
/*
    BOSS A TUER :
    Script a mettre dans le OnCombatRoundEnd du boss !
    N'oubliez pas de mettre le script "st_aboss_percept"
    Dans le OnPerceveid du boss sinon ca ne sert a rien !
*/


#include "nw_i0_plot"
#include "NW_I0_GENERIC"

void main()
{
object oJoueur = GetLocalObject(OBJECT_SELF, "ENNEMI_DU_BOSS");
object oHenchman = GetLocalObject(oJoueur, "ASSOCIE");
// D'apres l'ancien script, on a deja verifier si oJoueur est bien PJ
object oBoss = OBJECT_SELF;

if(GetIsDead(oJoueur) == TRUE)
{
// Si le joueur est mort, le boss reprend sa vie
SetLocalInt(OBJECT_SELF, "PERCEPTION", 0); // la perception de st_aboss_percept revien a zero au cas ou ...
RemoveEffects(oBoss);
ActionCastSpellAtObject(SPELL_RESTORATION, oBoss,METAMAGIC_ANY, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
}

if(GetIsDead(oHenchman) == TRUE)
{
SetLocalInt(OBJECT_SELF, "PERCEPTION", 0); // la perception de st_aboss_percept revien a zero au cas ou ...
}

    if(GetPercentageHPLoss(oBoss) < 20) // si le boss n'a plus que 10% de sa vie
    {
        if(GetLocalInt(OBJECT_SELF, "COMBAT_TERMINE") != 1)
        {
    SetLocalInt(OBJECT_SELF, "COMBAT_TERMINE", 1); // le combat est termine
    ActionDoCommand(ActionWait(1.0));
    SurrenderToEnemies();
    ActionDoCommand(ActionWait(1.0));
    ActionSpeakString("Tu est a ma merci, meurt !");
    // Comme on ne peut pas revenir sur les reputations des 3, on doit taper fictivement
    location lBoss = GetLocation(oBoss);
    CreateObject(OBJECT_TYPE_PLACEABLE, "invisobj", lBoss, FALSE, "InvisibleObject"); // on cree un objet invisible a la location du boss
    object oPlaceBoss = GetNearestObjectByTag("InvisibleObject");

    ActionDoCommand(ActionWait(0.5));
    ActionCastFakeSpellAtObject(SPELL_FIRE_STORM, oJoueur, PROJECTILE_PATH_TYPE_DEFAULT); // Lance le sort
    DelayCommand(3.2, AssignCommand(oJoueur, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_BACK, 0.0, 10.0))); // Le joueur se retrouve a terre

        object oArme = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oJoueur); //larme du PJ
        if(oArme != OBJECT_INVALID)
        {
        AssignCommand(oHenchman, ActionTakeItem(oArme, oJoueur)); // on retire l'arme du PJ "elle glisse"
        DelayCommand(2.9, FloatingTextStringOnCreature("Votre arme vous glisse des mains lors du renversement", oJoueur, FALSE));
        DelayCommand(3.8, AssignCommand(oHenchman, ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.0, 2.0))); // le henchman se baisse pour ramasser lepee
        DelayCommand(3.5, FloatingTextStringOnCreature(GetName(oHenchman) + " ramasse votre arme et s'en equipe.", oJoueur, FALSE));
        DelayCommand(4.7, AssignCommand(oHenchman, ActionEquipItem(oArme, INVENTORY_SLOT_RIGHTHAND)));
        }

        // c'est a ce moment que le henchman revient pour sauver le PJ
        if(GetLocalInt(oJoueur, "HENCHMAN_PRESENT") != 1) // Si le henchman n'est pas encore revenu
        {
        DelayCommand(4.0, AddHenchman(oJoueur, oHenchman));
        DelayCommand(4.1, SetLocalInt(oJoueur, "HENCHMAN_PRESENT", 1));
        } // Break : if(GetLocalInt(oJoueur, "HENCHMAN_PRESENT") != 1)

    DelayCommand(5.0, AssignCommand(oHenchman, ActionAttack(oPlaceBoss))); // Le henchman attaque oPlaceBoss
    DelayCommand(6.0, FloatingTextStringOnCreature(GetName(oHenchman) + " plante l'arme dans la poitrine du monstre.", oJoueur, FALSE));
    DelayCommand(4.3, AssignCommand(oHenchman, ActionSpeakString("Non !")));
    effect eDamage = EffectDamage(5000, DAMAGE_TYPE_NEGATIVE, DAMAGE_POWER_NORMAL); // 5000 de degats au boss = mort du boss
    DelayCommand(7.2, ActionTakeItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oHenchman), oHenchman));
    DelayCommand(7.9, ActionSpeakString("Aaaaaah !"));
    DelayCommand(7.9, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oBoss, 0.5)); // On inflige eDamage

        } // Break : if(GetLocalInt(OBJECT_SELF, "COMBAT_TERMINE") != 1)
    // Arret du combat : debut de la fin !
    } // Break : if(GetHitDice(oJoueur) &lt; GetMaxHitPoints(oJoueur)/2)
} // Break : void main()
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.

_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 23/03/2006 17:05:06 Sujet du message :

Fantastique !! j'essaye ça dès que je rentre à la maison, merci vraiment pour tes efforts...

Je ne voudrais pas abuser, mais est ce que tu as pu ajouter l'effet visuel (par ex: souffle de dragon/feu) quand le boss jette son sort ? Pourrais tu faire aller le hench sur le waypoint "healnash" pendant que le joueur et le boss se tapent dessus ?

je te tiens au courant dès que j'ai testé ton script C'est top !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 23/03/2006 20:09:27 Sujet du message :

Ouay mais je verrai si je peux faire ca mais là comme je suis sur la réalisation d'un module avec un ami ca devient plus dur pour faire les scripts des autres.
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 23/03/2006 22:26:13 Sujet du message :

Confused heu... c'est presque ça mais y'a un soucis :

Le hench ne reste pas du tout en retrait au contraire il se rue au combat avant le joueur même

du coup il se fait latter en 3 secondes et meurt. Après tout est presque parfait :

le combat dure juste comme il faut, le monstre fini par attendre ses derniers HP

(là il manque l'effet visuel mais je suppose que c'est un détail pour toi, si tu peux le souffle de dragon de feu serait parfait)

puis le joueur est envoyé à terre par le sort du boss, la phrase indiquant que le hench ramasse l'épée apparait mais comme il est mort je ne vois rien (cependant son portrait réapparait sur côté)

A ce stade j'aimerai pouvoir insérer une phrase criée par le hench, disons "Je ne te laisserai pas faire ça" (je la modifierai plus tard)

Puis le boss s'éloigne de quelques pas et se fait achever.

Tout sera donc parfait si tu peux empêcher le hench de joindre le combat.

[EDIT : Là j'avais exposé une suggestion assez complexe pour contourner ça, mais je crois que j'ai trouvé mieux, du coup j'ai fait un autre message et je retire cette partie]

Enfin ce qui serait génial c'est que quelques secondes après la fin de ce combat on puisse lancer automatiquement la transition vers la zone suivante (disons que je vais l'appeler "final")

un nouvelle fois je te remercie pour tes efforts
Dernière édition par Nemo700 le 23/03/2006 23:14:30; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 23/03/2006 22:38:50 Sujet du message :

J'ai trouvé plus simple.. on oublie l'idée du mec blessé, j'ai juste demandé au hench de tenir la position un peu avant d'entrer dans la zone de detection du boss et du coup tout s'est passé à la perfection.

Du coup ce qui serait necessaire serait un petit script que je pourrais placer sur un trigger et qui justement forcerai le hench à tenir la position. Tu pourrais réussir ça ?

Si oui il restera plus que l'effet visuel et la "sortie" de la zone

On y est presque !!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 24/03/2006 09:31:34 Sujet du message :

Je regarderai ca quand j'aurai le temps Smile. Je suis assez bouclé en ce moment Razz
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 24/03/2006 10:54:58 Sujet du message :

oki, fait comme tu pourras, ton aide est déja très précieuse comme ça.

Je vais faire un demande dans un autre sujet pour créer un déclencheur qui forcera le hench à "tenir la position" comme si je lui avais donné l'ordre

Avec un peu de chance quelqu'un l'aura dèja fait et je pourrais ajouter ça tout seul

Pour le changement de zone, je vais regarder dans d'autre mods pour trouver une commande similaire, avec un peu de bol je réussirai à la modifier tout seul
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 25/03/2006 19:32:21 Sujet du message :

Le soucis du hench qui doit rester en retrait est résolu !! (merci à ceux qui m'ont aidé Very Happy)

Par contre je me suis aperçu d'un petit problème de timing : en fait la phrase disant que le hench ramasse l'épée apparait quand il est encore en train de se rapprocher des 2 combattants, mais surtout la phrase indiquant que celui ci plante l'épée dans le boss et la chute de ce dernier arrivent alors que le hench est encore en train de ramasser l'épée.

Je vais essayer de jouer dur les valeurs "Delay" dans ton script pour retarder les opérations, le temps que les animations se finissent.

Si j'ai bien compris l'effet visuel c'est dans la commande :
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.


et donc l'effet visuel c'est "SPELL_FIRE_STORM" je vais aussi essayer de trouver une liste d'autres effets visuels dans les tuto et voir si je peux le changer

Si je réussi à faire ça il ne resterai qu'à insérer la commande qui rend sa liberté de mouvement au hench
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.


et à trouver comment lancer la transition "forcée" vers la zone suivante

Si tu lis ça je te remercie à nouveau pour ton aide très précieuse, tes suggestions sont toujours bienvenues Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 25/03/2006 19:37:28 Sujet du message :

Pour ajuster les DelayCommand ce n'est pas à moi de faire toi. Parce que comme ont a pas les mêmes distances etc etc, mon résultat pour moi ne sera pas le même pour toi.

Tien je te donne comment téléporter le PJ (le henchman se téléporte avec.)

NWScript :
DelayCommand(5.0, AssignCommand(oJoueur, ActionJumpToObject(GetObjectByTag("TAG_DE_LOBJET_AUQUEL_ON_SE_TP"))));
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.

La aussi, j'ai mit 5.0 secondes mais c'est à toi d'ajuster. Je te conseille de mettre au moins 10 secondes après que la scène se soit passer histoire que le joueur est le temps d'analyser la scène etc etc.
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 25/03/2006 19:54:13 Sujet du message :

super je m'y atèle de suite, juste deux questions :

pour les délais, les écarts en secondes c'est depuis le départ du script je crois (et non pas un timing depuis la dernière action)

pour insérer les commandes de libération du hench et de téléportation à la fin, je dois les mettre en tout dernier juste avant le "}" ou il y a une subtilité à prendre en compte ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 26/03/2006 09:04:53 Sujet du message :

Non fais comme tu as dit.
Oui pour les delayCommand
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 26/03/2006 11:20:21 Sujet du message :

J'ai réglé les delay et c'est ok (en deux temps car j'ai un peu allongé les textes affichés et donc il fallait avoir le temps de les lire Razz )

Par contre les commandes pour remettre le hench à l'état "me suivre" et pour lancer la téléportation vers la zone finale ne font aucun effet (le script se compile sans soucis, mais il ne se passe rien du tout)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 27/03/2006 18:02:03 Sujet du message :

-MeteZ- je voulais juste te demander un petit truc par rapport à ton script, maintenant que j'ai pu jouer sur les delay et changer les phrases apparaissant à l'écran il est parfait pour moi,

mais il y a un point que je ne n'arrive pas à comprendre : est ce que tu avais prévu que "visuellement" le hench attaque le boss ?

Parcequ'on le voit bien ramasser l'épée puis "l'équiper" mais ensuite il reste debout et c'est le texte qui précise qu'il frappe le boss.

Est ce que tu avais mis une commande pour qu'on le voit "physiquement" porter un coup au boss ? (style ActionAttack ?)

C'est déja très bien comme ça, mais si on pouvait le voir frapper le boss ce serait encore mieux qu'une cinématique Wink

En tous cas cette scene est le grand final du mod et c'est à toi que la doit : milles fois merci

EDIT : et bien oui j'ai regardé de plus pret et j'ai trouvé ta commande ActionAttack, mais elle ne fait pas d'effet. J'ai même essayé pour voir de mettre directement à attaquer oBoss (au cas ou le oPlaceBoss aurait été trop loin) mais le hench reste immobile. Est ce que tu saurais pourquoi ?

EDIT 2 : je pense que je sais ce qu'il se passe : en utilisant ton script seul, le hench entrait dans le combat et donc ça ne marchait pas.

Alors j'ai placé un trigger qui à permis de donner l'ordre au hench de tenir la position (stand ground) et comme ça il restait en arrière le temps d'entrer dans la zone de perception du boss et du coup ton script s'activait et le hench quittait le groupe puis revenait comme ton script le prévoit.

Seulement l'état stand ground semble être gardé même si le hench à quitté l'équipe et du coup, même s'il exécute les animations il n'attaque pas le boss. Il faudrait lever cet état de "stand ground" mais juste l'annuler, si on repasse sur l'état "suivez moi" le hench rapplique et ton script tombe à plat

Ou alors au lieu de lui faire faire "stand ground" il faudrait le freezer juste assez de temps pour que je rentre dans la zone de detection du boss
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 28/03/2006 17:20:23 Sujet du message :

Nan je suis plus dans le sujet Razz c'est à toi de finaliser le script. Tu as juste quelque lignes à rajouter Smile.
(Désolé je suis en projet en ce moment.)
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 28/03/2006 20:48:16 Sujet du message :

ben déja merci pour ce que tu as fait (c'est à dire 90% du travail sur ce script) et tant pis si tu ne veux plus intervenir et que tu es trop occupé.

cependant après vérif je confirme qu'après avoir modifié ton script pout "immobiliser" puis libérer le hench ça ne change rien au fait que l'animation d'attaque du boss par hench ne se produit pas

si tu peux juste essayer de me dire pourquoi tu m'aiderais bien à avancer...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 31/03/2006 12:43:45 Sujet du message :

Au fait, je ne sais plus ou sur le forum tu as dit que le henchman attaquait bien le PNJ invisible que tu as crée. Mais que celui était loin du boss alors c'était pas crédible, et bien tu pourrai faire en sorte que le PNJ suivent le boss.
Mais ce script dans le OnSpawn du PNJ invisible.

NWScript :
object oBoss = GetNearestObjectByTag("TAG_DU_BOSS");
        ActionForceFollowObject(oBoss, 0.1);
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.

_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Nemo700
Chevalier
Inscrit le: 18 Mar 2006
Messages: 90
Répondre en citant
Posté le : 31/03/2006 13:32:20 Sujet du message :

merci pour l'astuce, je ne sais pas si ça va pouvoir marcher (en tous cas sur le OnSpawn) vu qu'au début le personnage invisible est très loin dans un coin de la zone et que je le téléporte près du boss juste au moment ou il doit se faire attaquer.

En tous cas je vais tester. Merci

Je sais pas si tu as vu mais kiky.le.magnifique à tenté une modification de ton script dans l'autre sujet et la sienne fonctionne bien pour que le hench attaque le boss mais par contre j'ai du mal à réintégrer la partie ou le hench ramasse l'épée que lui n'avais pas pris en compte.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 2 sur 2 ¤ Aller à la page Précédente  1, 2


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 43.233ms