La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 17/05/2024 04:42:09


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Tuyen
Demi-dieu
Inscrit le: 23 Nov 2002
Messages: 460
Localisation: Chez moi
Répondre en citant
Posté le : 23/09/2004 10:43:47 Sujet du message : Comment équiper son PJ!

Suite à la demande de quelqu'un je poste mon script pour faire porter au PJ une "peau" de créature, sur laquelle on pourra attribuer des propriétés qui seront considérées comme permanentes. (le joueur ne voit pas cette peau, donc il peut pas l'enlever, donc les propriétés resteront! Very Happy)

Ce script a été fortement inspiré par d'autres postés sur ce forum!

A mettre sur le OnEnter d'un trigger. Si vous voulez que le PJ porte la peau dès son entrée dans le mod, mettez le point de départ du mod sur le trigger.

Il nettoie l'inventaire du PJ qui entre dans le trigger, et l'équipe d'une 'peau' que vous devrez créer avec le resref que vous lui aurez donné dans ce script. Vous pouvez mettre diverses propriétés sur la peau, etc...

NWScript :
void main()
{
object oPC = GetEnteringObject();


object oItem = GetFirstItemInInventory( oPC );
    while( oItem != OBJECT_INVALID )
    {
        DestroyObject( oItem );

      oItem = GetNextItemInInventory( oPC );
    }

  DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARMS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BELT, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CHEST, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_HEAD, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_NECK, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC));


// equipe les nouveaux objets
    // vetement
    object oVet = CreateItemOnObject ("resresf du vetement", oPC, 1);
    AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST));

    // peau
    object oPeau = CreateItemOnObject ("resref de la peau", oPC, 1);
    AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));



    DestroyObject(OBJECT_SELF, 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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Fantome
Ecuyer
Inscrit le: 06 Nov 2002
Messages: 63
Répondre en citant
Posté le : 23/09/2004 13:11:02 Sujet du message :

Hello,

à la place du trigger, si vous devez chargez cette peau des l'entrée sur le module, je vous conseil de le faire dans le OnEnter des propriétés du module.

Est il normal que tu vires tous le matos porté par le pj ?
_________________
Arcantia
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Tuyen
Demi-dieu
Inscrit le: 23 Nov 2002
Messages: 460
Localisation: Chez moi
Répondre en citant
Posté le : 23/09/2004 14:31:36 Sujet du message :

Ba disons que j'aimes pas trop qu'il commence le jeu avec une armure, des potions, etc...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Heldar
Seigneur
Inscrit le: 09 Sep 2004
Messages: 169
Localisation: France
Répondre en citant
Posté le : 25/09/2004 08:33:54 Sujet du message :

Tu serai pas comment faire la même chose quand on parle à un PNJ?Embarassed
_________________
Heldar qui tue tous les monstres du soir.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 25/09/2004 10:27:02 Sujet du message :

Je pense (suis pas sûr) qu'il faut just remplacer le:

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.

Par:

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 bien sûr mettre le script dans le Action Taken du dialogue.


EDIT du Fou: et enlever le:

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.

_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yan the salor
Seigneur
Inscrit le: 03 Oct 2004
Messages: 151
Répondre en citant
Posté le : 21/10/2004 10:43:18 Sujet du message :

Quelle partie du script faut-il conserver pour que le pj équipe la peau en question uniquement? Et ou faut-il placer tout cela?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Brendan the Fleshless
Novice
Inscrit le: 25 Aoû 2004
Messages: 16
Répondre en citant
Posté le : 21/10/2004 12:32:11 Sujet du message :

Tu crées un déclencheur générique, auquel tu places ce script dans son OnEnter :

NWScript :
void main()
{
object oPC = GetEnteringObject();
object oPeau = CreateItemOnObject ("resref de la peau", oPC, 1);


    AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));



    DestroyObject(OBJECT_SELF, 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.


Si c'est en parlant avec une personne, place ce script dans "actions conséquentes" à un endroit du dialogue :
NWScript :
void main()
{
object oPC = GetPCSpeaker();
object oPeau = CreateItemOnObject ("resref de la peau", oPC, 1);

if ((GetIsPC(oPC)==TRUE) && GetLocalInt(OBJECT_SELF,"peau")==0)

    {
    AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));

    SetLocalInt(OBJECT_SELF,"peau",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.


Essayons avant toute chose, d'interprêter les scripts aussi bien détaillés que le premier de ce post. Cool
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Aladar
Chevalier
Inscrit le: 15 Déc 2004
Messages: 96
Localisation: Tours
Répondre en citant
Posté le : 17/12/2004 12:26:09 Sujet du message : prob avec tutu_transe. . .

Premierement, bonjour a tous et merci à tous ceux qui aident les pauv' gars perdus dans aurora... comme moi.
Me suis lancé dans un projet de module multijoueur avec un ami, ca avance, lentement, mais ca avance.
Pour le moment je m'en sort pas trop mal avec mes script que j'utilise mais par contre, avec tutu_transe, j'ai du mal:cry:
J'ai modifié le nw_c2_default3 et ai bien configuré les resref et tag de la "peau",
au lancement pas d'prob ca me donne l'armure, mais ca ne l'equipe pas:/
J'ai un petit script qui donne de l'or et de l'xp au joueur s'il se conect pour la premiere fois et c'est dans ce script que j'ai ajouté
la commande qui equipe la fameuse peau... en theorie !
Voila mon code :

Code :
void main()
{
object oPC = GetEnteringObject();

if (GetIsPC(oPC) && !GetIsDM(oPC))// si c'est un DM il n'a pas besoin de recevoir d'argent
{
  GiveGoldToCreature(oPC,3000);  //met s'que tu veux d'po
  GiveXPToCreature(oPC,5001); //tu met s'que tu veux d'xp
{
object oPeau = CreateItemOnObject ("Peaudetranse", oPC, 1);


    AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));


// destruction du trigger pour pas que le script se relance à chaque fois
    //DestroyObject(OBJECT_SELF, 1.0);
}
}
}
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Fantome
Ecuyer
Inscrit le: 06 Nov 2002
Messages: 63
Répondre en citant
Posté le : 17/12/2004 13:16:07 Sujet du message :

Hello,

j'ai pas trop bien compris ce que tu disais par rapport au script que tu as posté :
- tu dis :
Citation :
J'ai un petit script qui donne de l'or et de l'xp au joueur s'il se conect pour la premiere fois
. A la lecture de ton script j'ai l'impression que c'est à chaque fois que la personne arrive sur cette zone que tu lui donnes les xp et l'or.
- ton script tu l'as placé dans les propriétés du module, dans le OnEnter ?
- tu es certains du resref ? (je suis pas sur de moi mais il me semblait que les resref étaient en minuscule)
- es tu certain que ton pj ne porte pas déjà quelque chose sur ce slot car dans ce cas ta 'peau' se retrouve dans l'inventaire et non équipée ?
_________________
Arcantia
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Aladar
Chevalier
Inscrit le: 15 Déc 2004
Messages: 96
Localisation: Tours
Répondre en citant
Posté le : 17/12/2004 13:17:46 Sujet du message : euh... re

hé hé... j'ai du faire une couennerie, ca a posté sans que je le veuille Laughing , bref je fini donc ici, ce script compile mais ne fais ce que j'aurais voulu... il met seulement la peau dans l'inventaire et je ne peu donc pas la mettre dans mon SLOT_CARMOUR puisque c'est innacessible au joueur (je crois).
Alors comme je suis un tit malin Cool j'ai mis a la place d'une peau, une bete armure que je crée sur le SLOT_SHEST, j'ai egalement changer dans le nw_c2_default3 le fait qu'il recherche une armure (j'ai pas trouvé d'item "peau", je pense ne mettre pas trompé en traduissant "peau" par armure que l'ont place sur l'emplacement d'armure naturel du pj, si ? Embarassed ) dans le _CARMOUR du pj pour qu'il cherche une armure dans son emplacement normal, accesible au joueur, comme ca on peu changer d'armu... bref, meme comme ca, ca marche pas:(
Et c'est la que je compte sur vous, pour m'aider un pocito pour ca... moi qui suis fan de ff, je reve depuis un moment de voir des limite dans nwn.
Si quelqu'un pouvais me dire ou se trouve l'erreur (eventuelement la reparer:D) et m'expliquer vite fais la faute, ca serais achement glop Very Happy

Hum... vais ptete vous poster les script... oui, les voila :
NWScript :
//:Confused///////////////////////// /////////////////////
//:: Name    tutu_transe
//:: FileName
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*mettez ce script sous le nom de "tutu_transe" dans votre liste de scripts du module
Modifier le script NW_C2_DEFAULT3 ( c'est le script de fin de round ). Ensuite creez
une arme quelconque et donnez lui le tag de trance_01, trance_02 ou trance_99. Lorsque
vous utiliserez une de ces armes dans votre module, au bout d'un certain nombre de combats,
votre perso va entrer en transe et devenir beaucoup plus fort. Cette periode dure un court
instant et apres il perd beaucoup plus de puissance qu'avant la transe. Cette periode
des effets secondaires dure 90sec (modifiable).
Je me suis inspire d'un script deja poste sur NW Vault :
http://nwvault.ign.com/Files /scripts/data/1040734959970.sh tml

A noter que lorsque le PJ quitte un combat pendant la transe, lorsqu'il rencontrera
de nouveau un ennemi il reviendra a l'etat de transe, tandis que les effets de la
contretranse sont predefinis.
*/

//:Confused///////////////////////// ////////////////////
//:: Created By:  Marvin Kosh
//:: Modified By:  Tuyen
//:Confused///////////////////////// ////////////////////
void main()
{
    // ***********************DEFINIT ION DES VARIABLES********************* ******
    object oTranse = OBJECT_SELF;
    int iTemps = GetLocalInt(oTranse, "temps");

    // Definir le nombre de Hit Point max et actuel du perso
    int iMaxHP = GetMaxHitPoints(oTranse);
    int iCurHP = GetCurrentHitPoints(oTranse);
    string sWeapon = GetTag(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oTranse));

    // Definir le type de transe
    int iTranceProcess = StringToInt(GetSubString(sWeapon, 7, 2));

    // Definir les dialogues d'entree et de sortie de transe
    string sTranceStart = "*Transe!*";
    string sTranceEnd = "Vous sentez les effets de la transe vous quitter.";

    // Definir la duree du temps de transe et de contretranse
    float fEffectDur = 10.0;//Ne pas changer cette valeur
    float fSideEffectDur = 90.0; /*Changez cette valeur si vous voulez que
    les effets negatifs durent plus longtemps*/


    // Definir les effets de transe et de contretranse
    effect TranceEffect1;
    effect TranceEffect2;
    effect TranceEffect3;
    effect TranceEffect4;
    effect TranceSideEffect1;
    effect TranceSideEffect2;
    effect TranceSideEffect3;

    /* Definir les effets pour chaque type de transe : Chaque cas correspond a
    un type de transe different. Vous pouvez creer des transes qui ameliorent
    les capacites de combat ou plutot ceux de magie, et aussi modifier leurs
    puissances. Pour cela utiliser les fonctions de type 'Effect***' et ajouter
    cases entre case 1 et case 99 ne pas oublier de les declater en haut si vous
    voulez ajoutez plus de 4 effets pour un type de transe. */


    switch(iTranceProcess)
        {
        case 1:
        TranceEffect1 = EffectAbilityIncrease(ABILITY_STRENGTH, 10);
        TranceEffect2 = EffectHaste();
        TranceEffect3 = EffectVisualEffect(VFX_FNF_LOS_HOLY_30, FALSE);
        TranceEffect4 = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR, FALSE);
        break;
        case 2:
        TranceEffect1 = EffectSpellResistanceIncrease(25);
        TranceEffect2 = EffectDamageReduction(10, DAMAGE_POWER_PLUS_TWO, 100);
        TranceEffect3 = EffectVisualEffect(VFX_IMP_HARM, FALSE);
        TranceEffect4 = EffectVisualEffect(VFX_DUR_SANCTUARY, FALSE);
        break;
        case 99:
        TranceEffect1 = EffectDamageIncrease(DAMAGE_BONUS_2d6, DAMAGE_TYPE_NEGATIVE);
        TranceEffect2 = EffectAttackIncrease(10, ATTACK_BONUS_MISC);
        TranceEffect3 = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR, FALSE);
        TranceEffect4 = EffectVisualEffect(VFX_DUR_PROTECTION_ELEMENTS, FALSE);
        break;
        }

    // Definir les effets de contretranse pour chaque type de transe
    switch (iTranceProcess)
        {
        case 1:
        TranceSideEffect1 = EffectAbilityDecrease(ABILITY_STRENGTH, 14);
        TranceSideEffect2 = EffectSlow();
        TranceSideEffect3 = EffectVisualEffect(VFX_IMP_DISPEL, FALSE);
        break;
        case 2:
        TranceSideEffect1 = EffectSpellResistanceDecrease(25);
        TranceSideEffect2 = EffectDispelMagicAll(20);
        TranceSideEffect3 = EffectVisualEffect(VFX_IMP_DISPEL, FALSE);
        break;
        case 99:
        TranceSideEffect1 = EffectVisualEffect(VFX_IMP_DEATH, FALSE);
        TranceSideEffect2 = EffectSkillDecrease (SKILL_ALL_SKILLS, 20);
        TranceSideEffect3 = EffectVisualEffect(VFX_FNF_PWKILL, FALSE);
        break;
        }


    //************** C'EST LA QUE LES CHOSES SERIEUSES COMMENCENT **************
    //Incrementation de la variable temps d'un point
    iTemps = iTemps + 1;
    SetLocalInt(oTranse, "temps", iTemps);
    //Enlevez les commentaires de la ligne ci-dessous pour avoir le decompte des rounds
    FloatingTextStringOnCreature(IntToString(iTemps), oTranse, FALSE);


    //Pendant 40 rounds, il ne se passe rien

    //A partir du 40ieme round et jusqu'au 47ieme round, le perso entre en transe
    if ((iTemps == 40) && (GetIsInCombat(oTranse)==TRUE))
      {
        FloatingTextStringOnCreature(sTranceStart, oTranse, FALSE);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, TranceEffect3, oTranse, fEffectDur);
      }
    //Application de divers effets
    if ((iTemps >= 40) && (iTemps < 47) && (GetIsInCombat(oTranse)==TRUE))
      {
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, TranceEffect1, oTranse, fEffectDur);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, TranceEffect2, oTranse, fEffectDur);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, TranceEffect4, oTranse, fEffectDur);
      }
    //Au 47ieme round, c'est la fin de la transe, le perso se trouve sous des effets de
    //contretranse, qui le rabaissent. Ces effets durent
    if (iTemps == 47)
      {
        SendMessageToPC(oTranse, sTranceEnd);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, TranceSideEffect1, oTranse, fSideEffectDur);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, TranceSideEffect2, oTranse, fSideEffectDur);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, TranceSideEffect3, oTranse, fSideEffectDur);
      }
    //Lorsque le compteur atteint 55, le remettre a 0
    if (iTemps == 55)
      {
        iTemps = 0;
      }
    SetLocalInt(oTranse, "temps", iTemps);

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

Alors lui je suis pas sur de l'endroit ou il faut le mettre, je pense qu'il est appellé par le nw_c2_default3 modifié et que il n'y a pas besoin de le placer ou que se soit sinon dans la liste de script.

Ensuite viens :
NWScript :
void main()
{
object oPC = GetEnteringObject();

if (GetIsPC(oPC) && !GetIsDM(oPC))// si c'est un DM il n'a pas besoin de recevoir d'argent
{
  GiveGoldToCreature(oPC,3000); //met s'que tu veux d'po
  GiveXPToCreature(oPC,5001); //met s'que tu veux d'xp
{
object oPeau = CreateItemOnObject ("Peaudetranse", oPC, 1);


    AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));
}
}
}
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.


Lui il est dans le OnClientEnter, il marche bien sauf qu'il ne m'equipe pas de la peau...

et enfin le nw_c2_default3 modif :
NWScript :
//:Confused///////////////////////// /////////////////////
//:: Default: End of Combat Round
//:: NW_C2_DEFAULT3
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
    Calls the end of combat script every round
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: Preston Watamaniuk
//:: Modified By : Marvin Kosh
//:: Implemente dans ce module par : Votre serviteur Tuyen (o_o)
//:: Created On: Oct 16, 2001
//:Confused///////////////////////// ////////////////////

#include "NW_I0_GENERIC"
void main()
{
    // Modifications pour la transe
        // Definir le dernier ennemi( soit le PC, soit un autre NPC )
        object oTarget = GetLastAttacker();
        // definir la "peau" sur le PC
        object oPeauPC =(GetItemInSlot(INVENTORY_SLOT_CARMOUR , oTarget));
        // definir le tag de la peau en tant que string
        string sTag = GetTag(oPeauPC);
        // verifie si le tag commence par "transe_"
        // si c'est le cas lancer le script "tutu_transe" sur le dernier ennemi
        if (GetSubString(sTag, 0, 7) == "transe_")
        ExecuteScript("tutu_transe", oTarget);
    ////////////////////////////// //////////////////////
    //////////////Fin des modifications/////////////////
    ////////////////////////////// //////////////////////
    if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
    {
        DetermineSpecialBehavior();
    }
    else if(!GetSpawnInCondition(NW_FLAG_SET_WARNINGS))
    {
      DetermineCombatRound();
    }
    if(GetSpawnInCondition(NW_FLAG_END_COMBAT_ROUND_EVENT))
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(1003));
    }
}
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.


Lui, je sais pas non plus s'il faut le mettre quelque pars en particulier...
Je pense que le probleme viens de CE script, j'ai du modif un truc qui faut pas ou je sais pas trop... moi en script je sais faire assoir un pnj mais au dela de ca, je sais juste les copier coller et adapter les tags
Voila, c'etais mon premier post ('fin le deuxieme mais le premier aurais du etre au debut de celui la et... hein ? on s'en fout ? ah oui pardon) pour mon premier probleme (du moin le premier que je vous expose) Very Happy
Voila, je suis sur que vous pouvez m'aider ,surtout que ca doit etre tout con mais bon... je doit l'etre aussi... Boulet !
J'espere que j'aurais une reponse ,m'offrant un solution a ce petit probleme...
Merci Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Aladar
Chevalier
Inscrit le: 15 Déc 2004
Messages: 96
Localisation: Tours
Répondre en citant
Posté le : 17/12/2004 13:25:12 Sujet du message :

Wouaw ! ok, rapide, moi qui me disais dans 1 mois j'aurais ptete une reponse...
enfaite mon tit script marche tris bien, il verifie s'il le joueur a 1 xp, si oui, on continue tranquilement, sinon ca donne de l'xp et des po.

J'ai une version du meme script mais qui suprime tous les item de l'inventaire du pj et de ce qu'il porte et remplace par tel et tel item par tag.
et meme avec ca ca marche pas, (ca suprime ce qu'il porte en peau mais comme il n'a rien ca change rien) ca me donne systematiquement l'armure dans mon joli inventaire (qui soit dis en passant, a aussi un probleme mais ca doit pas etre de l'ordre des script alors je le posterais plus tard:oops:)

J'ai verifié les resref plusieur fois, a l'endroit a l'envers, il est NIKEL !
le tag aussi... ca fais 2 jour non-stop que je suis dessus et rien, j'ai tenter plein de possibilité et non ca marche pas Confused
en tous cas merci pour ta reponse qui est arrivée avant la suite de mon petit probleme Smile

selon moi, le probleme viens du fait que quand un combat s'engage, ca ne lance pas le script tutu_transe(j'ai enlever les commentaire pour afficher le nombre de round et rien n'aparais)

[edit] tu avais raison comme quoi mon script se declenche a chaque conection, enfaite j'avais suprimer des lignes pour gagner un peu de place, dans mon mod il detecte la premiere conection et ne donne l'xp que si c'est effectivement la premiere fois que le joueur se conecte.
Dernière édition par Aladar le 17/12/2004 13:43:11; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Fantome
Ecuyer
Inscrit le: 06 Nov 2002
Messages: 63
Répondre en citant
Posté le : 17/12/2004 13:41:04 Sujet du message :

bon,

je viens de lire vite fait ton post sur la facon de créer l'objet 'peau'. On est bien d'accord qu'il s'agit pas d'une armure mais bien d'un objet que tu crées dans la palette à partir de 'Objet de Créature'. C'est bien ca ?
Car si c'est pas le cas, le pb vient de là à mon avis: on ne peut pas placé sur les slot inaccessibles autre chose que des objets de créatures. Et donc du coup, comme il peut pas y etre mis, il se retrouve placé dans l'inventaire du joueur.

autre chose, il y aurait pas une paire d'accolade en trop la dans ton script ? :
NWScript :
void main()
{
object oPC = GetEnteringObject();

if (GetIsPC(oPC) && !GetIsDM(oPC))// si c'est un DM il n'a pas besoin de recevoir d'argent
{
GiveGoldToCreature(oPC,3000); //met s'que tu veux d'po
GiveXPToCreature(oPC,5001); //met s'que tu veux d'xp
{
object oPeau = CreateItemOnObject ("Peaudetranse", oPC, 1);


AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));
}
}
}
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.

Pourquoi as tu encadré par une accolade les 2 lignes de code sur ta peau ?

Je dois avoir la berlue ...
NWScript :
enfaite mon tit script marche tris bien, il verifie s'il le joueur a 1 xp, si oui, on continue tranquilement, sinon ca donne de l'xp et des po.
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 pas vu le test sur ton pj avec ses 1 xp ? *inquiet*
_________________
Arcantia
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Aladar
Chevalier
Inscrit le: 15 Déc 2004
Messages: 96
Localisation: Tours
Répondre en citant
Posté le : 17/12/2004 13:49:12 Sujet du message :

Voila mon script qui fonctionne :
NWScript :
void main()
{
  object oPC = GetEnteringObject();
if (GetIsPC(oPC) && !GetIsDM(oPC))// si c'est un DM il n'a pas besoin de recevoir d'argent
{
  if (GetXP(oPC) < 1) //le joueur n'as pas de xp c'est quil est nouveau donc on lui donne 10000 Po
  {
  GiveGoldToCreature(oPC,3000); //met s'que tu veux d'po
  GiveXPToCreature(oPC,5001); //tu met s'que tu veux d'xp
  }
  object oPeau = CreateItemOnObject ("Peaudetranse", oPC, 1);


  AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR));

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


pas bete le coup de l'objet qui peu pas etre mis dans les emplacement de creature... ca viens ptete de la, je test tout de suite
(et je met le resref en minuscule Rolling Eyes )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Aladar
Chevalier
Inscrit le: 15 Déc 2004
Messages: 96
Localisation: Tours
Répondre en citant
Posté le : 17/12/2004 14:11:37 Sujet du message :

Alors, en effet avec un objet de creature de type peau ca marche beaucoup mieux Ca, c'est Youpi !
la peau va (je suppose) au bon endroit, plus dans l'inventaire en tous ca.
Mais... ca ne lance toujours pas le script Laughing (il n'y a pas le decompte des rounds) mais ca je pense etre capable de trouver la solution, je comprenais vraiment pas pourquoi ca ne voulais pas aller sur l'emplacement de creature... normal enfaite, merci a toi Very Happy
maintenant je vais chercher pourquoi le script tutu_transe ne se lance pas au debut d'un combat (si t'as une idée n'hesite surtout pas!)

[EDIT pour eviter de flooder et d'me faire enguirlander(c'est la saison ok mais bon)]
Je me demande si en recherchant tous simplement n'importe quel objet de tag commencant par transe_ ca serais pas mieux, pas besoin que ce soit exactement dans pile l'emplacement de peau, ca pourais etre un objet divers petit dans l'inventaire avec pour tag transe_001 ou 002 etc... j'vais tenter ca Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Aladar
Chevalier
Inscrit le: 15 Déc 2004
Messages: 96
Localisation: Tours
Répondre en citant
Posté le : 17/12/2004 14:51:59 Sujet du message : OUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII !

Ca marche !! Cool
j'ai mis une armure qui aparais a la premiere conection (ca c'est juste pour le test, je vais le travailler encore un peu) et quand on se bagarre contre une bebete et bien ca compte les rounds et au 40eme ca nous met en transe... mais tu sais tous ca.
encore merci pour ton aide, sans toi je serais encore à pas comprendre le pourquoi du comment qu'ca s'fait que cette ###### de peau aparait pas dans les places de creatures... et pi une armure c'est pas mal, on peu en changer et faire plein de transe Smile
Je vais maintenant essayer de faire en sorte que ca ne declenche la transe QUE si le pj est "serieusement bléssé" ou en dessous de 15% de ses pv...
tu a pu constater mon niveau herculéen en matiere de script Embarassed ,donc en theorie je posterais ma requette d'ici pas longtemp, mais je vais me debrouiller tout seul si possible (au moin pendant une heure Laughing )
Merci encore ! (Si quelqu'un d'autre avais des problemes avec ce systeme, demandez je le posterais mais la j'ai la flemme Fumeur )


Har har har je sent venir l'Omnislash Combat jedi
 
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 69.161ms