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 12:52:56


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Hawkai
Chevalier
Inscrit le: 17 Mar 2006
Messages: 91
Localisation: Bourgogne
Répondre en citant
Posté le : 28/03/2006 06:18:38 Sujet du message : IA : Gestion des sorts

Euh ... pardon d'avance si la question a déja été abordé.

Mais quelqu'un s'est-il déja penché sur le problème de la gestion des stratégies de combats de PNJ des monstres des henchmans .... enfin bref de n'importe quel personnage géré par l'IA ??

En particulier la gestion des sorts parcque c'est quand même un peu n'importe quoi.

Serait-il possible par exemple

on commence par simple :
Eviter les abbération du genre lancement d'arrêt du temps dans un arret du temps ?
--> là c'est le jeu qui merde un peu ... normalement dans un arret du temps on ne peut pas en lancer un autre et normalement on ne peut pas attaquer non plus mais seulement lancers des sort, se déplacer ou ramasser des objets non tenus)


Plus compliqué ... éviter les abbération du genre : je m'obstine à lancer 15 fois le même sort alors que de toute évidence il n'a aucun effet.
--> le mage lance une boule de feu sur un dragon rouge : dégâts = 0, normal ... bon une fois que le mage à lancer son sort et qu'il apparait clairement que ca ne servira à rien de lancer le même est-il possible de le pousser à tester autre chose jusqu'à ce qu'il trouve un sort efficace ? Dans le même genre si il semble impossible de passer une RM trop élevé ... changer de stratégie et frapper, fuire ou lancer des sort d'aide au groupe plutôt que des sorts offensifs.


Encore plus compliqué ...

Bah ... un mago c'est quand même sensé pas etre trop con et être une bibliothèque ambulante.

Alors l'idéal serait qu'il lance directement les bon sort sur les bonnes créatures :
par exemple ... il est de notoriété publique que TOUS les dragon sont immuniés à quelque chose en général l'élément qui correspond à leur souffle. alors pas la peine de lancer boule de feu sur un rouge, ni éclair en série sur un bleu !! le mage devrait savoir que ca ne fera rien.

Dans le même ordre d'idée les morts vivants sont immunisés aux effets mentaux, au coups critiques, certains sont immunisés au froid mais TOUS ... sont normalement immunisés aux effets basés sur la constitution (puisque normallement ils n'ont pas de valeur de constit étant morts-vivants). Cela inclu donc le poison, les maladies et surtout la totalité des sorts de mort ou à peu de chose près ... alors inutile de s'escrimer à lancer des sort de morts sur des Undead ... mieux vaut tenter le registre des sort de lumière ou d'energie positive.


Voilà si qq'un a des scripts tout faits pour remplacer la gestion des sorts par l'IA standard je suis prenneur parcque c'est quand même vraiment mal foutu et je n'ai pas encore le niveau pour m'attaquer à ça.

Merci d'avance.
_________________
Enter Fully of your own will and leave some of the happiness you bring.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 28/03/2006 07:29:15 Sujet du message :

bon c est pas vraiment une ia que tu demande le sujet a été abordé y a meme pas une semaine mais ca fais rien ^^

dejas on vat commencé par l ia ce que c est ^^ car je bosse sur une ia ensor mais pas programation d action ^^

une ia c est fair une action en tiré des lecon et proposé une autre solution si l action n etait pas optimale

en gros il balance cone de feu sur un dragon rouge le dragon se marre biensure lui il stoque des donné qui dise en gros dragon rouge cone de feu = pas bon
en (simplifiant biensure )
dans ce cas la prochaine fois il adopetra une autre technique exemple boule electrique

et il mettra dragon de feu boule electrique = bon =nombre de degat

mais la on parle d un jeteur d ensor d attaque
y a aussi le jetteur de sort de protection qui lui observe les autre et en tire des lecon

et celui attaque avec defense

donc si tu l as compris le but de cette manip et que l ensort aprenne tous seul

passons a la programation d action reaction

dans ce qu as tu lui mettra toute les donné que tu veu et si il se retrouve dans un cas que tu lui a proposé il executera l action prealablement defini

le mieu donc c est de mixé les deux et de donné une priorité l une sur l autre
donc l iné et l acquis
donc en se moment je programme la parti 1 l ia (acquis)sachant qu elle devra pouvoir modifier l iné et en plus rajouté des données
mais j essaye de la rendre la moin lourde possible donc un peu de patience ^^ ou d aide au choix ^^
les probleme qui se pose
la recursivité de donné
le trop grand nombre de données au bou d un moment ( donc la gestion rapide de ses données )

voili voila
edit: rectification on en a parlé sur un autre forum ^^
http://www.deepblack.be/forum/viewtopic.php?t=726
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Harmelyo
Chevalier
Inscrit le: 06 Oct 2005
Messages: 84
Répondre en citant
Posté le : 28/03/2006 11:00:19 Sujet du message :

Bon je dois dire que je m'étais déjà posé cette question plusieurs fois, j'avais jeter un oeil dans les scripts de comportement sans trop trouver mon bonheur. Bref si jamais tu montes quelque chose, je serais très heureux de pouvoir y jeter un oeil, au moins pour comprendre les bases de ton raisonnement (et surtout leur application).

*se souvient il y a pas longtemps d'avoir croiser un ensorceleur pnj de lvl 20 qui se jetait cape/manteau majeur en boucle avant de s'arreter ayant épuisé tout ses sorts de lvl 8,9*

et bon courage à toi
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Hawkai
Chevalier
Inscrit le: 17 Mar 2006
Messages: 91
Localisation: Bourgogne
Répondre en citant
Posté le : 28/03/2006 15:05:58 Sujet du message :

... Lol ... voilà c'est axactement à ce genre de comportement que je fait allusion.

Personellement j'ai trouvé un moyen d'y remédié quand j'ai crée les monstres de mon XP mod. En fait il faut créer la liste de sort avec soins et éviter les séries de sort genre bon je lui met 5 arret du temps c'est le sort le plus puissant, ou 5 éclair en série et rien d'autre.

Le fait de diversifier la liste de sort à tendance à rendre son utilisation plus cohérente ... mais c'est encore loin d'être parfait et ca demande un temps fou pour bien faire la liste de sort du personnage ou du monstre.
_________________
Enter Fully of your own will and leave some of the happiness you bring.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
Harmelyo
Chevalier
Inscrit le: 06 Oct 2005
Messages: 84
Répondre en citant
Posté le : 28/03/2006 15:37:33 Sujet du message :

Je m'étais aussi résolu à cette pratique "du pauvre" mais cela fonctionne dans la mesure où les personnages n'atteignent pas des niveaux trop élevé et des personnages sans matériels à immunité (genre un petit malin qui obtient une immu isaac ou même une résistance à la magie du genre 10/-.)

Cette solution ne me satisfaisait plus pour des pnj de haut niveaux... (j'ai eu la joie de faire une expérience tordante en joueur la dessus... armada avec un ami de bon niveau, nous avons été chassé la liche, elles ont spawné par paquet de 10... Le module a été timestop-iser pendant plus d'une minute un soir de grande affluence Razz)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Hawkai
Chevalier
Inscrit le: 17 Mar 2006
Messages: 91
Localisation: Bourgogne
Répondre en citant
Posté le : 28/03/2006 15:47:04 Sujet du message :

Ca c'est clair ... par pitié n'abusez pas du timestop ... surtout si c'est pour ne rien en faire !!

(bon je dit ca mais dans mon arène les dracosire en ont tous un et le début du combat est assez chiant ... mais bon en même temsp c'est normal pour des great wyrm !! et puis la plupart n'en ont qu'un justement pour qu'il serve à autre chose que lancer des arrets du temps)
_________________
Enter Fully of your own will and leave some of the happiness you bring.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
Noon
Héros
Inscrit le: 15 Jan 2005
Messages: 272
Localisation: Entre Vannes et les RO
Répondre en citant
Posté le : 28/03/2006 16:26:08 Sujet du message :

C'est pour ça que je ne met presque jamais d'ensorceleurs PNJ mais plutôt des magiciens.
J'avais trouvé un set de script d'IA sur le Vault: "Jasperre AI" mais j'ai jamais eu le courage de l'essayer, mais d'après le readme ça devrait t'intéresser.
_________________
Beshaba me protège, Tymora guide mes tirs.

The Cake is a lie !

Mes modules NwN2:De Vieilles Rencontres! et De Vieilles Rencontres2
Double Avenir sur le Nwvault
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Harmelyo
Chevalier
Inscrit le: 06 Oct 2005
Messages: 84
Répondre en citant
Posté le : 28/03/2006 17:09:03 Sujet du message :

je jetterais un oeil la dessus merci!

*message subliminal* les ensorceleurs c'est nul vive les mages!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 28/03/2006 19:08:03 Sujet du message :

les raisonement sont assez simple en faite ^^ stoker les resultat sur ne base de donné plus exactement une par classe et surtout ne pas avoir d ia generique mais bien une par classe

les probleme:
toujours la recursivité du a la bdd mais encore ca ya moyen ^^

les accés a la bdd (accés au disque souvent pendant un combat )
possibilité de le géré par un timer
explication: toute les ia seront chargé au debut du chargement du module sur un placeable ensuite elle seront chargé a l aide d un timer que je ne citerait plus a divers moment de la journé
alors vous me direz il faudra attendre qu elles soient mise a jour pour qu il ne repete pas la meme erreur??^^
et bien non ^^ car je procede par esprit collectif (si on peut apellé ca comme ca)qui lui est percistant
et esprit individuelle qui lui ne l est pas
l esprit individuelle prone toujours sur le percistant mais tant que la variable de l individuelle est a zero il vat pioché dans le percistant
ce qui devrai reduire encore plus les accés base de donné sur placeable et avoir des comportement différent par jeteur de sort guerrier ou autres.
autres avantages les nouveau pnj profite tous de l experience des autres par le biai de l esprit collectif

ensuite y a les multiclassage la c est plus chaud et franchement ja n y ai pas vraiment encore pensé

voili voilou je pense que ca, peut s appellé AI ^^
car normalement si tous se passe bien elle devrai s adapter au niveau des pj
 
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 : 29/03/2006 12:57:40 Sujet du message :

Avant de vous lancer dans un système complexe, vous avez déjà à disposition un certains nombres d'outils scripts pour orienter l'IA

a) pour les sorts
variables locales à mettre sur le monstre
X2_L_BEH_OFFENSE : agressivité (sorts défensifs/offensifs)
X2_L_BEH_MAGIC : taux d'utilisation de la magie (100 => épuise tous ses sorts avant de faire autre chose
X2_L_BEH_COMPASSION : incante des sorts sur les membres de sa faction pour aider : buff/sorts de dissipation/sorts de soins
il y en a encore un que j'utilise peu pour que les choix de sorts soient plus aléatoires.

b) comportement général
X2_L_SPAWN_USE_AMBIENT_IMMOBILE : animation mais reste proche du point de spawn
X2_L_SPAWN_USE_AMBIENT : animation et bouge
X2_L_SPAWN_USE_SEARCH : active le mode recherche par défaut
X2_L_SPAWN_USE_STEALTH : active le mode furtif par défaut (pénible avec certaines conditions de spawn)

c) Tactiques de combat
Code :

// **** Special Combat Tactics *****//
// * These are special flags that can be set on creatures to
// * make them follow certain specialized combat tactics.
// * NOTE: ONLY ONE OF THESE SHOULD BE SET ON A SINGLE CREATURE.

// * Ranged attacker
// * Will attempt to stay at ranged distance from their
// * target.
// SetCombatCondition(X0_COMBAT_FLAG_RANGED);
// conseil : à éviter en espace clos

// * Defensive attacker
// * Will use defensive combat feats and parry
// SetCombatCondition(X0_COMBAT_FLAG_DEFENSIVE);
// gardes (utilise à bonne escient expertise)

// * Ambusher
// * Will go stealthy/invisible and attack, then
// * run away and try to go stealthy again before
// * attacking anew.
// SetCombatCondition(X0_COMBAT_FLAG_AMBUSHER);
// délirant avec ma série de gobelins "custom"

// * Cowardly
// * Cowardly creatures will attempt to flee
// * attackers.
// SetCombatCondition(X0_COMBAT_FLAG_COWARDLY);
// la population en général.



d) un bout de code pour des "buffs" personnalisés : l'incantation est instantanée au spawn
NWScript :

/* C */
   
  SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY);
  TalentAdvancedBuff(20.0);
  if( GetHasSpell(SPELL_BULLS_STRENGTH) > 0 )
      ActionCastSpellAtObject(SPELL_BULLS_STRENGTH, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
  if( GetHasSpell(SPELL_ENDURANCE) > 0 )
      ActionCastSpellAtObject(SPELL_ENDURANCE, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
  if( GetHasSpell(SPELL_DIVINE_FAVOR) > 0 )
      ActionCastSpellAtObject(SPELL_DIVINE_FAVOR, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
  if( GetHasSpell(SPELL_AID) > 0 )
      ActionCastSpellAtObject(SPELL_AID, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
  if( GetHasSpell(SPELL_DARKFIRE) > 0 )
      ActionCastSpellAtObject(SPELL_DARKFIRE, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
  if( GetHasSpell(SPELL_ENTROPIC_SHIELD) > 0 )
      ActionCastSpellAtObject(SPELL_ENTROPIC_SHIELD, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
  if( GetHasSpell(SPELL_CLARITY) > 0 )
      ActionCastSpellAtObject(SPELL_CLARITY, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
  if( GetHasSpell(SPELL_SHIELD) > 0 )
      ActionCastSpellAtObject(SPELL_SHIELD, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
  if( GetHasSpell(SPELL_HASTE) > 0 )
      ActionCastSpellAtObject(SPELL_HASTE, OBJECT_SELF, METAMAGIC_ANY, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, TRUE) ;
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
 
AZAZEL11
Seigneur
Inscrit le: 08 Fév 2006
Messages: 156
Répondre en citant
Posté le : 29/03/2006 17:25:15 Sujet du message :

Wow, tout cela semble merveilleux. Tu pourrais nous dire où ce script doit aller? Pour ma part je n'ai jamais eu encore à modifier quoi que ce soit pour les scripts de pnjs. Mais à voir ceci je sens que ça va venir lol.
_________________
L'imagination est plus importante que le savoir. (Albert Einstein)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Harmelyo
Chevalier
Inscrit le: 06 Oct 2005
Messages: 84
Répondre en citant
Posté le : 29/03/2006 17:32:53 Sujet du message :

tu peux mettre le gros morceaux dans le onperceveid, ou tout evenement se déclenchant avant le combat.

Toutefois cela n'offre pas le plus petit bout de solution au problème posé au début. Mais au moins, nous savons comment buffer nos jeteurs de sorts à présent Razz. Les comportements se trouvent dans un des scripts que l'on définit sur chaque créature (pas très clair mais j'ai pas aurora sous la main).
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
AZAZEL11
Seigneur
Inscrit le: 08 Fév 2006
Messages: 156
Répondre en citant
Posté le : 29/03/2006 17:58:18 Sujet du message :

Merci, c'est logique dans le OnPerceive...


Il me semble que par défaut le pnj lanceur de sorts commence toujours par faire tout ses sorts les plus forts...en commencant par le niveau le plus élevé pas vrai? J'ai vu souvent il me semble un mage se lancer 4 manteaux supérieurs des sorts consécutifs....

Hawkai, moi aussi je trouvais absolument stupide certains sorts incantés en boucle par le pnj. Une solution que j'avais trouvé (bien que réglant le problème à moitié) est d'y mettre des sorts qu'une seule fois en mémoire du pnj. De plus, j'y ai mis que des sorts globaux (main de bigby, cape, conjuration, etc..) cela à pour effet qu'au moins le pnj mage/enso/prêtre est tout autant redoutable pour tout le monde quelque soit sa classe/race.

Une solution efficace bien que très paresseuse lol! Mais je suis surement pas le seul à faire ceci!
_________________
L'imagination est plus importante que le savoir. (Albert Einstein)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Hawkai
Chevalier
Inscrit le: 17 Mar 2006
Messages: 91
Localisation: Bourgogne
Répondre en citant
Posté le : 30/03/2006 03:22:02 Sujet du message :

Non c'est évident que ca reste une bonne solution ... après tout autant mettre quelques sort de beouf et laisser le reste en évocation ou en sorts offensif.

Bien sur ca ne résous pas le problème des sorts inefficaces mais e,lève déja quelques conneries.
_________________
Enter Fully of your own will and leave some of the happiness you bring.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 30/03/2006 12:35:12 Sujet du message :

Arf, je pensais c'étais évident.
Tous ces réglages sont à mettre dans les scripts de spawns, je vous conseille de vous construire des "briques" à partir de nw_c2_default9 car vous économiserez ainsi de la place :

NWScript :

//:: ////
//:: Brique 0 : onspawn_generic.nss
//:: optimization taille des scripts de spawn par Lylver
#include "NW_I0_GENERIC"
void main()
{
// DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH) ****************************** ****************************** *****************************
    SetListeningPatterns(); // Goes through and sets up which shouts the NPC will listen to.
    WalkWayPoints(); // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
                              // 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk them
                              // 2. If the tag of the Way Point is "POST_" + NPC TAG the creature will return this way point after
                              //    combat.
}
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.


NWScript :

//:: //
//:: Brique 1 : onspawn_generic.nss
//:: optimization taille des scripts de spawn par Lylver
#include "x0_i0_treasure"
void main()
{
    //* Create a small amount of treasure on the creature
    if ((GetLocalInt(GetModule(), "X2_L_NOTREASURE") == FALSE) &&
        (GetLocalInt(OBJECT_SELF, "X2_L_NOTREASURE") == FALSE) )
    {
        CTG_GenerateNPCTreasure(TREASURE_TYPE_MONSTER, OBJECT_SELF);
    }
}
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.


NWScript :

//:: ////
//:: 1er exemple de script "custom"
//:: onspawn_static.nss
//:: optimization taille des scripts de spawn par Lylver
//::
//:Confused///////////////////////// ////////////////////////
//:: NW_C2_DEFAULT9
//:Confused///////////////////////// ////////////////////////
//:: Copyright (c) 2002 Floodgate Entertainment
//:: Created By: Naomi Novik
//:: Created On: 12/11/2002
//:Confused///////////////////////// ////////////////////////
//:: Updated 2003-08-20 Georg Zoeller: Added check for variables to active spawn in conditions without changing the spawnscript


#include "x0_i0_anims"
// #include "x0_i0_walkway" - in x0_i0_anims
#include "x2_inc_switches"

void main()
{
    // ***** Spawn-In Conditions ***** //

    // * This NPC will attack when its allies call for help
    // *
    SetSpawnInCondition(NW_FLAG_SHOUT_ATTACK_MY_TARGET);

    // **** Animation Conditions **** //
    // * These are extra conditions you can put on creatures with ambient
    // * animations.

    // **** Special Combat Tactics *****//
    // * These are special flags that can be set on creatures to
    // * make them follow certain specialized combat tactics.
    // * NOTE: ONLY ONE OF THESE SHOULD BE SET ON A SINGLE CREATURE.

    // **** Escape Commands ***** //
    // * NOTE: ONLY ONE OF THE FOLLOWING SHOULD EVER BE SET AT ONE TIME.
    // * NOTE2: Not clear that these actually work. -- NN

    // ***** CUSTOM USER DEFINED EVENTS ***** /
    //  These user-defined events are in the range 1001-1007.

/* 0 */
    ExecuteScript("onspawn_generic",OBJECT_SELF);
/* 1 */
    ExecuteScript("onspawn_treasure",OBJECT_SELF);
    // ***** ADD ANY SPECIAL ON-SPAWN CODE HERE ***** //

    // * If Incorporeal, apply changes
    if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) == TRUE)
    {
        effect eConceal = EffectConcealment(50, MISS_CHANCE_TYPE_NORMAL);
        eConceal = ExtraordinaryEffect(eConceal);
        effect eGhost = EffectCutsceneGhost();
        eGhost = ExtraordinaryEffect(eGhost);
        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eConceal, OBJECT_SELF);
        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, OBJECT_SELF);

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


Brique 0 et Brique 1 prennent beaucoup de place une fois compilés : ne trainez pas cela comme des boulets pour votre module si vous devez faire plusieurs scripts onspawn : économie d'environ 130ko (d'après mon souvenir) à chaque fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
L'Erudit
Seigneur
Inscrit le: 26 Oct 2005
Messages: 167
Répondre en citant
Posté le : 30/03/2006 16:42:12 Sujet du message :

J'ai rien compris à ton histoire de briques Laughing !

Adrien,
décidément pas maçon pour un sou.
 
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 : 31/03/2006 16:20:20 Sujet du message :

NWScript :

/* 0 */
    ExecuteScript("onspawn_generic",OBJECT_SELF);
/* 1 */
    ExecuteScript("onspawn_treasure",OBJECT_SELF);
    // ***** ADD ANY SPECIAL ON-SPAWN CODE HERE ***** //
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.


Brique(s) logicielle : éléments, programmes, logiciels dont l'assemblage fournit une fonction évoluée.
I'm with stupid
 
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 76.407ms