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:12:31


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 16/10/2004 09:39:37 Sujet du message : PJ dans une zone(declencheur) pour faire action

Salut a tous,

Voila j'ai un system forge le PJ achete un marteau de forgeron utilise sont pouvoir unique un dialogue apparait. Et il peut crée son arme il y a une animation il attaque l'enclume. Mais le probleme c'est qu'il peut forger n'importe ou donc je voudrais fixer u condition suplemmentaire le PJ doit etre pres de l'enclume pour pouvoir forger j'ai penser a mettre un Declencheur autour de l'enclume mais apres je ne sait pas quel script je doit faire Sad .

Merci d'avance,
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
CryinG.FreeM4n
Acolyte
Inscrit le: 28 Aoû 2004
Messages: 20
Répondre en citant
Posté le : 16/10/2004 10:32:02 Sujet du message :

Si tu mets un déclencheur autour, tu peux par exemple créer une variable qui passe de 0 à 1 quand le PJ entre (OnEnter) et de 1 à 0 quand il sort (OnExit) du déclencheur, et tu rajoutes le test de la variable en question (est-elle à 1) au moment ou le PJ doit pouvoir se servir de l'objet...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 16/10/2004 11:18:58 Sujet du message :

Bonne idée mais je fait comment pour les scripts Very Happy
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 16/10/2004 12:13:57 Sujet du message :

Il faut modifier ton script initial de forge, tu en as un ? ou bien il faut le créer de toute pièce ? Si tu en a un il suffit d'ajouter en tout début la condition sur la variable.

Pour ton déclencheur un truc du genre :

Dans le OnEnter

NWScript :
// Objet entrant
object oPC = GetEnteringObject();
// Si c'est un joueur
if (GetIsPC(oPC))
  {
 
  SetLocalInt(GetModule(), "VariableForge", 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.


Dans le OnExit

NWScript :
// Objet sortant
object oPC = GetExitingObject();
// Si c'est un joueur
if (GetIsPC(oPC))
  {
 
  SetLocalInt(GetModule(), "VariableForge", 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.

_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 16/10/2004 12:15:22 Sujet du message :

Super merci mais pour la conditoon du dialogue de mon marteau je met koi ?
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 16/10/2004 12:31:12 Sujet du message :

Petit problme pour le ligne il ne la compile pas Sad

if (GetIsPC(oPC))
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 17/10/2004 02:22:47 Sujet du message :

salut

Franchement, j'i deja fais des script, et dans tous j'ai vire la condition qui verifie si c'est un player, donc, mon coneil, fait un script qui ressemble a ca :

Dans le onenter
NWScript :
Void main
{

SetLocalInt(GetModule(), "VariableForge", 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.


Dans le onexit
NWScript :
Void main
{

SetLocalInt(GetModule(), "VariableForge", 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.


Car, a moins d'etre idiot, tu fais pas un declancheur de 4 km², et tu t'efforce que aucun pnj ne passe dans le declancheur, et le tour est joue.

PS : le setlocalint a juste un petit probleme si tu jous en multi, c'est que c'est une variable module, ca veut dire que si un joueur est dans le declencheur, un autre, a l'autre bout du monde pourat fabriquer son arme sans probleme, car pour tout le module, la variable "variableforge" sera a 1.

omega
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 17/10/2004 09:23:46 Sujet du message :

Merci a tous,

Ok bonne idée toute facon il y auras que des PJ a rentrer dans la zone Wink. Et pour la condition du marteau de forgeron je met quoi variable doit etre 1 mais en script sa donne quoi Very Happy.

Merci d'avance,
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 18/10/2004 02:48:47 Sujet du message :

dans la condition du dialogue, tu met ca !

NWScript :
int StartingConditional()
{

    // Inspecter variables locales
    if(!(GetLocalInt(GetPCSpeaker(), "VariableForge") == 1))
        return FALSE;

    return TRUE;
}
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é Ignorer l'utilisateur
 
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 18/10/2004 15:34:58 Sujet du message :

Merci mais sa ne fonctionne pas quand je met ce script au dialogue il ne sactive pas du tout.
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 18/10/2004 18:21:50 Sujet du message :

Normal car dans le script qui t'a été donnée pour la condition d'exécution du dialogue, la variable "VariableForge" est stockée sur l'objet "joueur parlant" = GetPCSpeaker alors que dans les script qu'on t'a donnés pour le déclencheur, celle-ci est stockée sur le module = GetModule, ce n'est donc plus la même variable !!

Pour que ça marche il faut vérifier la variable "VariableForge" affectée au module :

NWScript :
int StartingConditional()
{

// Inspecter variables locales
if(!(GetLocalInt(GetModule(), "VariableForge") == 1))
return FALSE;

return TRUE;
}
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.

_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 19/10/2004 14:47:34 Sujet du message :

Super merci
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 19/10/2004 14:52:24 Sujet du message :

Salut et encore merci,

J'aimerais aussi faire que le PJ attaque l'enclume ( ca je sait le faire ;)et qu'il ne puisse pas faire autre chose donc qu'il ne puisse pas donner d'autre action a son Perso sa je ne sait pas faire Sad.
Mais apres 5 sec il doit arreter d'attaquer l'enclume et sa je ne sait pas faire non plus Sad.

Merci d'avance je vais assayer de trouver la solution moi même mais si vous trouver avant moi dit le Very Happy.
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 19/10/2004 17:43:22 Sujet du message :

je dirais un truc du genre :

NWScript :
void main()
{
object oPJ = GetLastUsedBy();
//le joueur
object oEnc = GetNearestObjectByTag("Tag de l'enclume");
//l'enclume
float fTim = 5.0;
//le temps durant lequel le joueur va taper sur l'enclume

SetCommandable(FALSE, oPJ);
//le joueur ne peut plus rien faire
AssignCommand(oPJ, ActionAttack(oEnc));
//il frappe l'enclume
DelayCommand(fTim, AssignCommand(oPJ, ClearAllActions()));
//au bout de 5 secondes il arrete
DelayCommand(fTim, SetCommandable(TRUE, oPJ));
//au bout de 5 secondes le joueur reprend le controle du perso
}
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.


Cool
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
alokhan
Grand Chevalier
Inscrit le: 16 Mai 2004
Messages: 102
Localisation: Belgique, Nivelles
Répondre en citant
Posté le : 20/10/2004 15:02:06 Sujet du message :

Merci !!!!
_________________
Alokhan
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 43.162ms