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 16:19:00


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
UnSkilleD
Novice
Inscrit le: 29 Juin 2006
Messages: 6
Répondre en citant
Posté le : 29/06/2006 10:53:13 Sujet du message : Mettre quelqu'un en prison.

Bonjour voilà j'aimerais faire une clef qui en étant utiliser pourrait téléporter un joueur ciblé en prison.
Pour sa j'en ai fait une avec un Pouvoir unique , qui quand on l'utilise lance un dialogue avec plusieurs choix de cellules.Là ou je bloque est lors du script de fin de dialogue qui téléporterais le joueur ciblé.Car j'ai reussi a mettre un script mais qui téléporte le pj qui utilise l'objet Confused
Voilà si quelqu'un sait comment faire je le remerci d'avance

UnS.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 29/06/2006 11:37:33 Sujet du message :

je pense que tu vas devoir faire un scan de la zone ou le joueur utilise la clé, récupérer les noms des joueurs présents et permettre dans le dialogue le choix du joueur que tu veux envoyer en prison....

ce topic pourra certainement t'aider je pense...

[http]

après y'a peut d'autre solutions... genre ton item qui lance l'utilisation en ciblant (mais j'ai jamais réussit à le faire perso donc ...)

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
UnSkilleD
Novice
Inscrit le: 29 Juin 2006
Messages: 6
Répondre en citant
Posté le : 29/06/2006 11:57:35 Sujet du message :

Ben en faite sur le systeme de prison de Tyrion qui est très complexe il avait fait un clef dans le même genre qui permet de téléporter un joueur en cliquant dessus.Mais j'arrive pas a recupéré le morceau qui fait que sa téléporte la cible car c'est vraiment très compliqué ...
Je lis le post que tu m'as indiqué et je vais essayer de le faire marcher
Merci Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 29/06/2006 12:15:49 Sujet du message :

en faite le pb est juste de cibler le joueur que tu veux téléporter... si ce joueur parlait à ton garde ça irait car la c'est pas dure de l'identifier... donc essaie aussi de tester le lancement du sort: utiliser objet, et de voir si si dans les propriétés tu peux mettre celle ou tu peux cibler, mais comme je t'ai dit moi j'ai jamais réussit à la faire fonctionner.. peut être que d'autres savent???....^^

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
UnSkilleD
Novice
Inscrit le: 29 Juin 2006
Messages: 6
Répondre en citant
Posté le : 29/06/2006 12:48:41 Sujet du message :

Ben j'utilise déjà Lancer un sort : Pouvoir unique.Mais c'est pas possible ton idée car a la base c'est pour mettre quelqu'un en prison dont je vois mal le fautif allez parler de son plein gré au Gardien pour se faire tp en prison :s

J'ai essayé le script sur le lien il est pas mal mais j'arrive pas a faire en sorte que lorsqu'on choisit le joueur on puisse le téléporter lui et pas celui qui parler a l'objet Sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
UnSkilleD
Novice
Inscrit le: 29 Juin 2006
Messages: 6
Répondre en citant
Posté le : 29/06/2006 12:53:52 Sujet du message :


Citation :
//Put this on action taken in the conversation editor
void main()
{

object oPC = GetPCSpeaker();

object oTarget;
location lTarget;
oTarget = GetWaypointByTag("prison");

lTarget = GetLocation(oTarget);

//only do the jump if the location is valid.
//though not flawless, we just check if it is in a valid area.
//the script will stop if the location isn't valid - meaning that
//nothing put after the teleport will fire either.
//the current location won't be stored, either

if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;

AssignCommand(oPC, ClearAllActions());

AssignCommand(oPC, ActionJumpToLocation(lTarget));

}
Sur ce script il y aurait pas un moyen de désigner le joueur par un <CUSTOM9001> ??
 
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 : 29/06/2006 13:42:50 Sujet du message :

NWScript :
void main()
{
    object oDM = GetItemActivator();
    object oPC = GetItemActivatedTarget();
    if (! GetIsPC(oPC))
    {
        SendMessageToPC(oDM,"La cible n'est pas un joueur !");
        return;
    }

    SetLocalObject(oDM,"CIBLE_PRISON",oPC);
    SetCustomToken(9001,GetName(oPC));
    AssignCommand(oDM,ActionStartConversation(oDM,"dialogue_prison",TRUE,FALSE));
}
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.


Comme ça tu peux vérifier dans le dialogue avec un truc comme :

Citation :
Voulez vous envoyer <CUSTOM9001> en prison ? Dans quelle cellule ?
Pour envoyer le joueur en prison par dialogue :
NWScript :
void main()
{
    object oWP = GetObjectByTag("prison"); //wp de la cellule
    object oPC = GetLocalObject(OBJECT_SELF,"CIBLE_PRISON"); //retrouve le joueur

    AssignCommand(oPC,JumpToObject(oWP));
    SendMessageToPC(oPC,"");
    DeleteLocalObject(OBJECT_SELF,"CIBLE_PRISON");
}
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
 
UnSkilleD
Novice
Inscrit le: 29 Juin 2006
Messages: 6
Répondre en citant
Posté le : 29/06/2006 14:24:44 Sujet du message :

Merci beaucoup ! je crois que c'est bon.Je peux même le faire avec mon idée de départ , a savoir envoyer quelqu'un en prison avec un objet que l'on a sur soi !
Je test sa a plusieur et je vous redit sa !


Edit : C'est bon sa marche Very Happy Merci beaucoup !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
UnSkilleD
Novice
Inscrit le: 29 Juin 2006
Messages: 6
Répondre en citant
Posté le : 29/06/2006 15:05:12 Sujet du message :

Je voudrais juste savoir une autre chose , je n'arrive pas a mettre une ligne disant a tout le serveur (donc en crier) que tel personne est aller en prison.J'ai essayé de faire sa mais j'ai une erreur de script (désolé je ne m'y connais pas beaucoup en script :s)

NWScript :
void main()
{
    effect eEffect = EffectVisualEffect(VFX_IMP_EVIL_HELP);
    object oWP = GetObjectByTag("prison"); //wp de la cellule
    object oPC = GetLocalObject(OBJECT_SELF,"CIBLE_PRISON"); GetPCSpeaker(); //retrouve le joueur

    AssignCommand(oPC,JumpToObject(oWP));
    SpeakString("Je suis maintenant en prison",TALKVOLUME_SHOUT)
    SendMessageToPC(oPC,"");
    DeleteLocalObject(OBJECT_SELF,"CIBLE_PRISON");

object oTarget;
oTarget = oPC;

//Visual effects can't be applied to waypoints, so if it is a WP
//the VFX will be applied to the WP's location instead

int nInt;
nInt = GetObjectType(oTarget);

if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), GetLocation(oTarget));

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


L'erreur étant sur cette ligne SpeakString("Je suis maintenant en prison",TALKVOLUME_SHOUT) (celle que j'ai rajouté ^^)
 
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 : 29/06/2006 15:55:08 Sujet du message :

C'est pas le GetPCSpeaker() non commenté qui fait planter ?
Là c'est le DM qui va parler pour que ça soit le joueur il faut mettre AssignCommand(oPC,SpeakString("machin"));
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 01/07/2006 08:43:24 Sujet du message :

Bonjour a toutes et a tous.

je voudrais si possible bien sur, un petit complement au script de 'UnSkilleD'est il possible de donne un item (boulet) au joueur qui vas en prison ? si oui , comme faire?

NWScript :
void main()
{
    effect eEffect = EffectVisualEffect(VFX_IMP_EVIL_HELP);
    object oWP = GetObjectByTag("cellule_2"); //wp de la cellule
    object oPC = GetLocalObject(OBJECT_SELF,"CIBLE_PRISON"); GetPCSpeaker(); //retrouve le joueur
    AssignCommand(oPC,JumpToObject(oWP));
    SendMessageToPC(oPC,"");
    DeleteLocalObject(OBJECT_SELF,"CIBLE_PRISON");
    // Donner un boulet a la personne qui vas en prison
    CreateItemOnObject("bouletdelacel2", GetPCSpeaker(), 1);
object oTarget;
oTarget = oPC;
int nInt;
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), GetLocation(oTarget));
}
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.


j'ai donc rajouter sa

NWScript :
CreateItemOnObject("bouletdelacel2", GetPCSpeaker(), 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.


et la on peut en 'rire' sais la personne qui envoi en prison et non la personne qui vas en prison qui recoi le boulet, si une personne peut m'aider svp, d'avance merci.

Patoche.
 
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 : 01/07/2006 11:14:11 Sujet du message :

Yop

GetPCSpeaker() c'est le joueur qui parle, or là le dialogue est lancé par le DM, donc c'est lui qui va recevoir le boulet.

Il faut juste remplacer GetPCSpeaker() par oPC et c'est bon.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 01/07/2006 11:28:38 Sujet du message :

Merci pour ta réponce, donc si je comprend bien, j'ai juste a faire sa ?

NWScript :
CreateItemOnObject("bouletdelacel2", oPC, 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.


Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 01/07/2006 12:26:38 Sujet du message :

ouaip
_________________
 
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.46ms