La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 18/05/2024 08:37:10


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Justice
Ecuyer
Inscrit le: 29 Jan 2006
Messages: 60
Répondre en citant
Posté le : 04/08/2006 17:45:26 Sujet du message : Génération de trésor limité ???

Bonjour à vous chers dévellopeurs...

Je suis à la recherche d'un système qui me permettrait de limiter les objet spawnant dans les coffres de mon module. Je voudrais en effet pouvoir limité les trésor à disons +3. La raison de cela est simple, les objets sont limités à +3 partout dans le module sauf à mon grand désarois dans mon système de script de génération de trésor... Pour l'instant, j'ai mis mon set de script à generate low treasure ce qui me permet de ne pas me retrouver avec des dizaines d'objets +5 et +4... Mais cela reste une solution temporaire puisque ce n'Est pas interressant pour mes joueurs de ne trouver dans les coffres que 14 po Smile ... Je vous mets si -dessous le script présentement utilisé, si vous savez comment le modifier tant mieux, mais je serais aussi pour l'utilisation d'un autre système si vous avez des idées Smile Merci d'avance à vous chers confrères Smile

NWScript :
//---------------------------- ------------------------------ -------//
// Container Respawn
// by Ahaneon
//
// Respawn container if it has been at least "respawntime" seconds
// after the last time the container spawned.
//
// Script error: containter respawns at midnight too even if it last
// respawned a second before midnight, might fix this later
//---------------------------- ------------------------------ -------//
#include "NW_O2_CONINCLUDE"

void main()

{
    object oItem = OBJECT_INVALID;
    int respawntime = 21600;

    // Check object for the time it was last opened and see if it is time to respawn
    int lastopened = GetLocalInt(OBJECT_SELF,"CS_Opened");
    // CS_Openend = 0 on not found, GetLocalInt error return
    int currenttime = GetTimeSecond()+60*GetTimeMinute()+3600*GetTimeHour();
    if (currenttime > lastopened + respawntime)
    {
        // respawntime seconds passed?
        DeleteLocalInt(OBJECT_SELF,"NW_DO_ONCE");
    }
    if (lastopened > currenttime)
    {
        // maybe a whole day passed? or it's midnight?
        DeleteLocalInt(OBJECT_SELF,"NW_DO_ONCE");
    }

    // Respawn chest
    if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") == 0)
    {
      oItem = GetFirstItemInInventory();
      while ( oItem != OBJECT_INVALID )
      {
        DestroyObject( oItem, 0.0 );
        oItem = GetNextItemInInventory();
      }
      object oLastOpener = GetLastOpener();
      // See NW_O2_CONINCLUDE for more Treasure generating scripts,
      // Thisone generates high treasure depending on the lastopener level
      GenerateMediumTreasure(oLastOpener, OBJECT_SELF);
      SetLocalInt(OBJECT_SELF,"CS_Opened",currenttime);
      SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",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.
 
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 : 04/08/2006 17:58:53 Sujet du message :

Change de système ^^

Je pense qu'il est plus simple soit de trouver un système approprié sur le vault, soit d'utiliser le système Bioware, mais celui de SoU, qui a ses défauts mais est pas si mal que de modifier la génération de trésor de NWN original, qui est une véritable usine à gaz, pas à jour qui plus est (prend pas en compte les classes de prestige, des coffre s'ouvrent avec rien dedans...)

Le système de SoU est assez simple : tu as des coffres de qualité croissante, tu mets ce qu'on peut trouver dedans en fonction de la qualité, après il va tirer au sort dedans.

Regarde les scripts (x0_i0_treasure un truc comme ça) et les descriptions des coffres à trésor de la palette (catégorie tresors) pour mieux comprendre.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Justice
Ecuyer
Inscrit le: 29 Jan 2006
Messages: 60
Répondre en citant
Posté le : 04/08/2006 18:02:09 Sujet du message :

Bha en fait le truc c'est que j'aimerais bien ne pouvoir changer que le script... Car je l'avoue étant un peu paresseux, je n'ai pas trop envie de retoucher les 3000 coffres de mon modules Sad
 
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 : 04/08/2006 21:13:43 Sujet du message :

Ben c'est toi qui voit. Mais quel que soit le système tu peux garder le même script pour tous tes coffres (bon tu te passera alors des possibilités d'ajuster la qualité si tu veux pas les refaire). Là tu peux garder ce script grosso modo en changeant l'include et la fonction de génération de trésor, mettre celle de SoU à la place (les CTGenerateTreasureMachin) juste le truc à savoir c'est que ces fonctions comprennent la fixation de variable et la vérification pour savoir si le coffre a déjà été ouvert, donc faut un peu bricoler mais pas des masses.

Garder ton script et le système de la première campagne, ça veut dire trifouiller dans NW_O2_CONINCLUDE, et c'est pas de la tarte (4500 lignes de script). En plus t'as pas beaucoup de choix : soit tu te retape les listes d'item à la main (bon courage, t'auras plus vite fait de changer les 3000 coffres) soit tu filtre tes objets crées pour vérifier les propriétés, que c'est pas plus que du +3 (et là aussi c'est chaud) et les changer.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Justice
Ecuyer
Inscrit le: 29 Jan 2006
Messages: 60
Répondre en citant
Posté le : 07/08/2006 20:19:22 Sujet du message :

Bha en fait je me dis que je pourrais trouver des scripts tout fait et seulement les renommer avec le nom des scripts que j'utilise présentement... Je pourrais de cette façon ne pas avoir à tout changer mes coffres Smile La seule chose c'est que ma scripteuse est en vac et moi ben j'ai de la difficulté à tout piger Razz Comme le module est en ligne, je galère pas mal Sad

Donc pour faire simple, ma question est : Connaissez-vous un système efficace simple à intégrer qui répondrait à mes attentes ?

Merci d'avance Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 03/09/2006 18:42:48 Sujet du message :

Scripts & Plaçables Trésor

extrait du coninclude :
NWScript :

int nHD = GetFactionAverageLevel(oAdventurer) + nModifier;
        nHD += QSHIFT + GetLocalInt(GetArea(oAdventurer),"BONUS_ZONE");
        int nHDMax = QSHIFT + GetLocalInt(GetArea(oAdventurer),"NIVEAU_ZONE");
        oAdventurer = RandomizeMember(oAdventurer);
        if( nHD > nHDMax ){
          nHD = nHDMax ;
          SendMessageToAllDMs("Blocage du niveau d'objet genere par la zone : " +
          GetTag(GetArea(oAdventurer)) + " au niveau : " + IntToString(nHD)) ;
        }
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.


Le coeur de la limitation : c'est une variable à mettre sur la zone "NIVEAU_ZONE" si tu ne souhaites que du +3, bloque aux alentours de 12-13
 
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 36.15ms