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 06:37:33


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
parrain
Chevalier
Inscrit le: 20 Jan 2005
Messages: 97
Localisation: Creteil
Répondre en citant
Posté le : 07/03/2005 21:40:18 Sujet du message : Une carte

Lut all!...
Jourd'hui j'ai besoin d'un peut d'aide j'ai fait ce script ci dessu:

void main()
{

object oPC = GetLastUsedBy();

if (!GetIsPC(oPC)) return;

ExploreAreaForPlayer(GetArea(oPC), oPC);

}

...il sert à réveler la carte à partir d'un placeable dans le onUsed.
Mais se que je vousdrais aussi c'est que ce script soit utilisable à partir d'un objet exemple une carte, j'ai essayer de le faire mais je sais pas comment attribuer un script a un objet pour que celui ci soit activer a l'utilisation de l'objet pour donc donner le mem effet qu'avec les placeable sil vous plait aider moi merci d'avence...
parrain VS scripts:
Combat jedi
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 07/03/2005 22:42:09 Sujet du message :

Le mieu c'est de le mettre dans le OnEnter de l'area avec un test de tag voir si la carte correspond a la map (dans ce cas la oPC = GetEnteringObject()).
Et pour activer soit OnActivatedItem soit TagBase de Hotu...
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
parrain
Chevalier
Inscrit le: 20 Jan 2005
Messages: 97
Localisation: Creteil
Répondre en citant
Posté le : 07/03/2005 22:47:01 Sujet du message : .....?

Bah ce qui m'aiderai le plus c'est d'avoir le script directemnet pliz...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger 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 : 07/03/2005 22:51:48 Sujet du message :

Hum, hum...

Si j'ai bien compris, tu veux utiliser un objet (type épée, torche, carte) pour révéler la zone....

1. Tu crées un objet magique avec l'assistant.
2. Tu choisis catégorie parchemin.
3. Tag "CarteTest"
4. Dans ses propriétés, tu fais le ménage et tu places pouvoir unique sur soi
5. Penses à l'identifier en cochant la case... C'est tout pour la carte, passons au script

6. Propriétés du module
7. Évènements --> OnActiveItem, tu places le script suivant:

NWScript :
//:Confused///////////////////////// /////////////////////
//:: Example XP2 OnActivate Script Script
//:: x2_mod_def_act
//:: (c) 2003 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
    Put into: OnItemActivate Event

*/

//:Confused///////////////////////// ////////////////////
//:: Created By: Georg Zoeller
//:: Created On: 2003-07-16
//:Confused///////////////////////// ////////////////////

#include "x2_inc_switches"
void main()
{
    object oItem = GetItemActivated();
    object oPC = GetItemActivator();
    // * Generic Item Script Execution Code
    // * If MODULE_SWITCH_EXECUTE_TAGBASED _SCRIPTS is set to TRUE on the module,
    // * it will execute a script that has the same name as the item's tag
    // * inside this script you can manage scripts for all events by checking against
    // * GetUserDefinedItemEventNumber( ). See x2_it_example.nss
    if (GetModuleSwitchValue(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE)
    {
        SetUserDefinedItemEventNumber(X2_ITEM_EVENT_ACTIVATE);
        int nRet = ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF);
        if (nRet == X2_EXECUTE_SCRIPT_END)
        {
          return;
        }

    }

else if (GetTag(oItem) == "CarteTest")
    {
    ClearAllActions();
    AssignCommand (oPC,PlayAnimation(ANIMATION_FIREFORGET_READ));
    ExploreAreaForPlayer(GetArea(oPC), 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.


Voila bon courage
_________________
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
 
parrain
Chevalier
Inscrit le: 20 Jan 2005
Messages: 97
Localisation: Creteil
Répondre en citant
Posté le : 07/03/2005 23:08:58 Sujet du message : merci!

Merci beaucoup...Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
parrain
Chevalier
Inscrit le: 20 Jan 2005
Messages: 97
Localisation: Creteil
Répondre en citant
Posté le : 07/03/2005 23:12:36 Sujet du message : .....?

:oops:EU oué dsl j'ai oublé de préciser je voudrais que chaque objet eèvle une zone en particulier...Laughing
Ansi le rp peut se dévelloper lègerement mais c'est toujour un coup de pouce aide moi encore pliz...
Parrain VS script:
Combat jedi
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 07/03/2005 23:44:44 Sujet du message :

Tu donne a tes cartes le tag des zones a dévooiler et tu replace cette ligne (du sctip plus haut)
NWScript :
else if (GetTag(oItem) == "CarteTest")
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.

Par
NWScript :
else if (GetTag(oItem) == GetTag(GetArea(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.

Voila...
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger 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 : 08/03/2005 00:04:09 Sujet du message :

Hum, hum...
Tu changes les termes du contrat... Bon, l'idée d'Ivellios me parait tout à fait pertinente.

1. Tu crées un objet (magique ou non, on s'en fiche) dont le TAG est rigoureusement le même que le Tag de la zone qui correspond ==> Exemple: Tag d'une Zone: "Plaine", Tag de la carte correspondante: "Plaine"
2. Tu places le script suivant dans le OnEnter de la Zone à tester
NWScript :
void main()
{
    object oPC = GetEnteringObject();

    if (GetIsPC(oPC) == TRUE)
    {
    // test sur les objets de l'inventaire
    object oTest = GetFirstItemInInventory(oPC);

    while(GetIsObjectValid(oTest)==TRUE)
    {
   
    if(GetTag(GetArea(oPC)) == GetTag(oTest))
    {
   
    ExploreAreaForPlayer(OBJECT_SELF, oPC);
    //  SendMessageToPC(oPC, "debbugg");
    }
    oTest = GetNextItemInInventory(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.


3. Tu refais la même manip pour les autres zones (tag de la zone = tag de la carte) en réimplantant à chaque fois le script dans le OnEnter de la zone.
Rq: si le fait de donner le même tag à la zone et à la carte te pose problème... On peux complexifier la chose avec des GetSubString

Voila bon courage.
_________________
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
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 08/03/2005 01:22:37 Sujet du message :

Ne vaudrait-il pas un GetItemPossessedBy plutot qu'une boucle (plus couteuse dans ce cas) et ainsi permettre de voir direct si il a ou non la carte... ?
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger 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 : 08/03/2005 09:29:30 Sujet du message :

Hum, hum...

C'est une possibilité, mais je te laisse faire le script...
_________________
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
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 08/03/2005 13:17:41 Sujet du message :


Longbow a écrit :
Hum, hum...

C'est une possibilité, mais je te laisse faire le script...
Bah oki ^^
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.

_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
parrain
Chevalier
Inscrit le: 20 Jan 2005
Messages: 97
Localisation: Creteil
Répondre en citant
Posté le : 10/03/2005 12:06:45 Sujet du message : .......?

Bon merci pour vos script mais je voudrais savoir comment procéder pour rajouter un script dans le OnActvItem de mon module car quand je fais un copier coller du script cela m'affiche ceci:
DUPLICATE FUNCTION IMPLEMENTATION (main) j'y comprend rien si vous pouvuez m'aider sa serais cool mici d'avence...Very HappyVery Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger 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 : 10/03/2005 17:15:01 Sujet du message :

Hum, hum... voir plus bas
Dernière édition par Longbow le 10/03/2005 17:24:02; édité 3 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 : 10/03/2005 17:20:14 Sujet du message :

Hum, hum... reprenons les bases

NWScript :
void main()
{


// Une seule fois GetItemActivator et une seule fois GetItemActivated


object oPC = GetItemActivator();
// Puis quel objet...
object oItem = GetItemActivated();





if(GetTag(oItem) == "TeleportSystem")
    {
ClearAllActions();
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_UNSUMMON), oPC));
DelayCommand(1.5, AssignCommand (oPC, ActionJumpToObject(GetWaypointByTag("WP_Passerelle"))));
    }
// fin des commandes si le Tag de l'objet est TeleportSystem



if (GetTag(oItem) == "TrackingKit")
    {
        ExecuteScript("ranger_tracking", oPC);
        return;
    }

// Ainsi de suite avec autant de test que tu veux

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


Voila, bon courage
_________________
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
 
parrain
Chevalier
Inscrit le: 20 Jan 2005
Messages: 97
Localisation: Creteil
Répondre en citant
Posté le : 10/03/2005 20:17:25 Sujet du message : .....?

Eu merci à toi mais je vois pas a quoi cela pourrais me servir...EmbarassedEmbarassedEmbarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 10/03/2005 20:26:16 Sujet du message :

DUPLICATE FUNCTION IMPLEMENTATION (main) veut dire que tu as 2 fonctions main dans ton script. Remplace le script que tu as par celui de Longbow et ca devrait compiler.
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
parrain
Chevalier
Inscrit le: 20 Jan 2005
Messages: 97
Localisation: Creteil
Répondre en citant
Posté le : 10/03/2005 20:49:55 Sujet du message : .....?

Oui mais, scusez moi encore mais je vois pas trop ce que je voudrais faire c'est compilé le script de sac à cadavre qui va dans le OnActivItem mais quand j'essiae de mettre le sript que vous m'avez donner cela m'affiche ceci: DUPLICATE FUNCTION IMPLEMENTATION (main) en faite la je voudrais que vous me donnier la technique pour rajouter à l'infini des script les un dans les autres car des script de OnActivItem j'en ai plein donc je voudrais les rassembler...
Merci d'avence et dsl pour l'acharnement...EmbarassedLaughing:oops:
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Yeziliclick
Seigneur
Inscrit le: 13 Fév 2005
Messages: 235
Répondre en citant
Posté le : 10/03/2005 21:07:29 Sujet du message :

tu mets le corps du programme qu'il y a dans le main du scripot spécifique dans le main du script que tru veux modifier. Mais il faut faire attention a ce que tu n'ai pas des nom de variables similaires et qui ne se rapporte pas à la même chose.
Mais je te conseille vivement de faire deux tutoriaux : celui que tu trouves sur le site de bioware et celui qu'a fait Baldurien il y a un sacré moment.
tutorial de Baldurien et celui de bioware traduit en francais tutorial traduit.
Ca ne t'explique pas tout et pas vraiment les script, mais le peu qu'il y a aide pas mal. Et sinon tu fais une recherche avec un motuer de recherche tutorial nwn ou didactitiel nwn. Ca marche très bien aussi.
 
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 : 10/03/2005 23:35:15 Sujet du message :

Hum, hum...


Citation :
je voudrais que vous me donnier la technique pour rajouter à l'infini des script les un dans les autres
C'est exactement ce que j'ai fait dans le script mis plus haut... Tu repères les tests qui commencent par if (ou else if)... suivis d'un { , des commandes et un }... Tu copies/colles le tout dans ton script de base...
_________________
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
 
parrain
Chevalier
Inscrit le: 20 Jan 2005
Messages: 97
Localisation: Creteil
Répondre en citant
Posté le : 12/03/2005 11:03:21 Sujet du message : .....?

Bien mersi de vous être creuser la tête pour moi...
Laughing
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger 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 65.278ms