La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 02/05/2024 05:51:03


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Junshin
Voyageur
Inscrit le: 21 Avr 2007
Messages: 3
Répondre en citant
Posté le : 21/04/2007 16:18:57 Sujet du message : [Craft] Utiliser plusieurs éléments semblables

Salut !

Je passe parfois mon temps libre à faire un petit module NWN1 pour le plaisir, en total débutant. J'aborde la question du craft customisé, pas les compétences in game. Et là je rencontre un petit problème que, en novice du script, je ne vois pas comment résoudre. Comme le script et moi, ça fait vraiment deux, vous devez connaître, on a tous été novice un jour Wink j'utilise le Script Generator de Lilac, excellent programme dont les scripts heu... marchent 4 fois sur 5, le reste étant dû aux défauts du programme ou à mon incompétence, cela reste obscur ^^

Le problème, c'est que ce générateur me permet de créer un script de craft où, en échange d'un exemplaire de chaque composant, le jeu crée un objet. Mais dès que je veux mettre plusieurs exemplaires d'un même composant... Ca utilise un seul de ces composants pour créer l'objet, et ça laisse le reste tel quel Confused

Voici le script que je fais pour m'entraîner. Il utilise un plaçable "Enclume humaine" qui est un Utilisable Inventaire. Les composants doivent être placés dedans, dans mon exemple c'est un TAG Mineraidefer x1. Ensuite, le joueur lance le sort Mains brûlantes sur l'enclume (c'est juste pour donner du style et n'a aucune influence sur le script). Cela crée une épée avec le ResRef item056 et détruit le minerai. Le problème, c'est que je voudrais bien utiliser 4 minerais, et que ça les détruise tous. Or, ça nen détruit qu'un seul à la fois, et c'est là que je me rends compte de mon ignorance totale du monde de scripting Confused

Pourriez-vous m'aider svp ?
NWScript :

/*BLACKSMITH SCRIPT
Created by
Lilac Soul's NWN Script Generator, v. 2.3
for download info please visit
http://nwvault.ign.com/View. php?view=Other.Detail& id=4683&id=625
*/


int lsn=1;
//lsstype=0

void SetItemLocals()
{
SetLocalString(OBJECT_SELF, "lsn1", "item056");
SetLocalInt(OBJECT_SELF, "lsc_item056", 1);
SetLocalString(OBJECT_SELF, "lsi1_item056", "Mineraidefer");
SetLocalInt(OBJECT_SELF, "lss_item056", SPELL_BURNING_HANDS);
SetLocalInt(OBJECT_SELF, "lsv_item056", -10);

}

void CreateGold(object oTarget, int nAmount)
{
CreateItemOnObject("nw_it_gold001", oTarget, nAmount);
}

void main()
{
object oOwner=OBJECT_SELF;

if (!GetLocalInt(OBJECT_SELF, "lsvar_set"))
{
SetItemLocals();
SetLocalInt(OBJECT_SELF, "lsvar_set", TRUE);
}

if (lsn==0) return;

object oItem;
int bOkay, nGold, nCount, nNum, nLoop, nLoops, nHasGold, nVis;
string sCur, sReq;

for (nLoop=1; nLoop<=lsn; nLoop++)
  {
  sCur=GetLocalString(OBJECT_SELF, "lsn"+IntToString(nLoop));

  nNum=GetLocalInt(OBJECT_SELF, "lsc_"+sCur);

  for (nLoops=1; nLoops<=nNum; nLoops++)
      {

      sReq=GetLocalString(OBJECT_SELF, "lsi"+IntToString(nLoops)+"_"+sCur);
      if (GetStringLeft(sReq, 8)==" gold ")
        {
        nGold=StringToInt(GetStringRight(sReq, GetStringLength(sReq)-8));
        if (GetGold(oOwner)>=nGold) nCount++;

        }
      else if (GetItemPossessedBy(oOwner, sReq)!=OBJECT_INVALID)
        {
        SetLocalObject(OBJECT_SELF, "ls__"+IntToString(nLoops), GetItemPossessedBy(oOwner, sReq));

        nCount++;
        }
      }

  if (GetLocalInt(OBJECT_SELF, "lss_"+sCur)==-10) bOkay=TRUE;
  else if (GetLastSpell()==GetLocalInt(OBJECT_SELF, "lss_"+sCur)) bOkay=TRUE;
  else bOkay=FALSE;

  if (bOkay && (nCount==nNum)) bOkay=TRUE;
  else bOkay=FALSE;
  if (bOkay==TRUE)
      {

      if (nGold>0)
      {
      nHasGold=GetGold(oOwner);
      DestroyObject(GetItemPossessedBy(oOwner, "NW_IT_GOLD001"));
      DelayCommand(0.2, CreateGold(oOwner, nHasGold-nGold));
      }
      for (nLoops=1; nLoops<=nNum; nLoops++)
        {
        oItem=GetLocalObject(OBJECT_SELF, "ls__"+IntToString(nLoops));
        DestroyObject(oItem);
        }
      CreateItemOnObject(sCur, oOwner);
      int nVis=GetLocalInt(OBJECT_SELF, "lsv_"+sCur);
      if (nVis!=-10) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nVis), oOwner);
      }

  oItem=OBJECT_INVALID;
  bOkay=FALSE;
  nGold=0;
  nCount=0;
  sCur="";
  sReq="";
  nNum=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é Ignorer l'utilisateur
 
Junshin
Voyageur
Inscrit le: 21 Avr 2007
Messages: 3
Répondre en citant
Posté le : 25/04/2007 15:38:15 Sujet du message :

Personne ne pourrait me dépanner ? Confused
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 25/04/2007 16:30:23 Sujet du message :

[Une petite bibliothèque] bien pratique quand on veux faire un système simple comme le tien, tout est expliqué, une fois compris tu fais des recettes très vite.
_________________
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
 
Junshin
Voyageur
Inscrit le: 21 Avr 2007
Messages: 3
Répondre en citant
Posté le : 26/04/2007 15:32:33 Sujet du message :

Merci, je vais voir ça.
 
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 32.338ms