La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 22:31:54


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 29/06/2004 18:45:39 Sujet du message : quest ce qui va pas dans ce script??

Voila jai fait ce script je lai placé dans longlet actions consequentes dune branche de dialogue pour que l'alchimiste(oAlch) aille vers son enclume et tape dessus avec une arme et que au bout de 5 secondes il arrete il a fait le talisman et va le dire au Pj.

et la apres la branche il refait direct le dialogue(meme pas celui quil faut) avec le pj.
jai remarqué que pendant ce temp l'effet IceSkin sur lenclume se fait bien pendant les 5 secondes mais l'alchimiste lui saute toutes les actions quil a a faire.sauf la derniere.

NWScript :

#include "nw_i0_generic"

void main()
{
    object oAlch=GetObjectByTag("Arto");
    object oEnclume=GetObjectByTag("enclumeglace");
    object oPC=GetLastSpeaker();
    //aller forger le talisman
    AssignCommand(oAlch,ActionEquipMostDamagingMelee());
    AssignCommand(oAlch,ActionMoveToObject(oEnclume,FALSE,1.0));
    AssignCommand(oAlch,ActionAttack(oEnclume,TRUE));
    DelayCommand(5.0,AssignCommand(oAlch,ActionAttack(oEnclume,TRUE)));
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_DUR_ICESKIN),oEnclume,5.0);
    AssignCommand(oAlch,ActionWait(5.0));
    AssignCommand(oAlch,ClearAllActions());
    CreateItemOnObject("talismandeglacebleu",oAlch,1);
    AssignCommand(oAlch,ActionMoveToObject(oPC,FALSE,1.0));
    AssignCommand(oAlch,ActionStartConversation(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.

_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 29/06/2004 22:15:05 Sujet du message :

Hum, hum...

Pourquoi ne pas utiliser ActionPauseConversation(); au début de ton script
Puis ActionResumeConversation();

D'autre part, si tes différentes actions coincent, essaye des DelayCommand ???
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 30/06/2004 09:14:28 Sujet du message :

Jai mis un delaycommand.
mais pour la pause je vais voir oui.
Sinon j'arrive pas a faire un script ou dans une zone les PJ se prennent des degats toutes les 6 secondes en fait mon probleme cest de definir le pj dans la zone.
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Archéops
Ecuyer
Inscrit le: 03 Mai 2004
Messages: 55
Répondre en citant
Posté le : 30/06/2004 10:09:23 Sujet du message :

Salut, pour ton histoire de dégats à un PJ, il faut faire une boucle et utiliser la fonction GetIsPC(), tu mets le tout dans le OnHeartBeat, y a pas de raison que ça marche pas ...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 30/06/2004 10:51:12 Sujet du message :

eh bah si ca marche pas.
parce que il faut definir un joueur dans la zone et GetIsPc prend un joueur dans le module.
sinon jai essayer pour lautre script avec ActionPauseConversation bah ca fait pareille.
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 30/06/2004 10:57:58 Sujet du message :

Pour le script pour faire des dégats, pourquoi t'utilises pas GetEnteringObject, puis ensuite une boucle avec GetIsPC en condition.
Je pense que ça peut marcher
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Archéops
Ecuyer
Inscrit le: 03 Mai 2004
Messages: 55
Répondre en citant
Posté le : 30/06/2004 11:08:12 Sujet du message :

Pas besoin de script dans OnEnteringObject, une boucle suffit.. Regarde :
NWScript :
void main()

{
object oPC=GetFirstObjectInArea();/// prend Premier objet dans la zone

    while (GetIsObjectValid(oPC))/// Si cet objet existe alors ...
    {
        if (GetIsPC(oPC))/// Si c'est un joueur On applique les degats .. sinon rien...
        {
        effect eDamage=EffectDamage(6,DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_NORMAL);
        ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,oPC,0.0);
        }
    oPC=GetNextObjectInArea();// on passe a l'objet suivant...
    }


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

Il suffit de mettre ce script dans le OnHeartBeat de la zone..
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 30/06/2004 11:08:52 Sujet du message :

Pour ce qui est de ton problème avec l'enclume, j'ai fait un script un peu similaire mais pour une serveuse, le voila, j'espere que ca t'aidera.
Je l'ai placé durant la conversation dans action conséquente.

NWScript :
void main()
{
  object oListe = GetObjectByTag( "Feuilledenotes" );
  object oPlayer = GetPCSpeaker();
  object oServeuse = GetItemPossessor( oListe );
  object oAubergiste = GetObjectByTag( "Aubergiste" );

  AssignCommand( oServeuse, ActionPauseConversation() );
  AssignCommand( oServeuse, ActionMoveToObject( oAubergiste, FALSE ) );
  AssignCommand( oServeuse, ActionWait( 2.0 ) );
  AssignCommand( oServeuse, ActionMoveToObject( oPlayer, FALSE ) );
  AssignCommand( oServeuse, ActionResumeConversation() );
}
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 que ce script marche, donc ca peut peut-être t'aider.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Joubinator
Ecuyer
Inscrit le: 07 Jan 2003
Messages: 42
Localisation: Yvelines
Répondre en citant
Posté le : 30/06/2004 12:00:57 Sujet du message :

Si je peux ton probleme est toujours pas résolu Bengorre, je te conseillerai d'utiliser à la place de :

NWScript :
AssignCommand(oAlch,ActionMoveToObject(oEnclume,FALSE,1.0));
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 commande
NWScript :
ActionForceToMoveToObject
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.
.
Cette derniere a un petit truc en plus (je sais plus le nom en anglais:shock:) qui oblige le pnj à atteindre son objet quelque soit les autres evenements...

En esperant participer à ecarter le brouillard du script Very Happy
_________________
M'enfous si les pjs tuent mes monstres,.... j'en ai plein (paroles d'un DM d'expérience Wink )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 30/06/2004 18:05:51 Sujet du message :

Alors la je suis étonné que autant de gens soit venu a mon aide, en peu de temp en plus.
Merci beaucoup a tous.
Pour l'enclume je vais tester et je vous tiens au courant.
quand au script pour faire des degats dans une zone c'est presque exactement le même que javai fait. mais le probleme c'est que si il ne trouve pas de PC le script continu sa boucle et au bout de 50 fois je crois il marque qu'il ya erreurs trop de je sai plus koi.
en fin ce que je veu dire cest quil faudrais limiter le nombre de boucle ou detecer avant le nombre d'objet de la zone avec les joueurs a l'interieur.
mais je sai pas comment on limite d le nombre de tour dans la boucle. avec ca je limiterai l'entrer a un certain nombre de PC.
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 04/07/2004 22:32:47 Sujet du message :

Bah voila grace a vous ya tout qui marche, encore merci.
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
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 63.2ms