Voir le sujet précédent ¤
Voir le sujet suivant
|
Auteur |
Message |
Nicetios
Seigneur
Inscrit le: 20 Juin 2004
Messages: 217
|
Posté le : 20/09/2005 16:24:54 Sujet du message : [Réso] Vidage de zones
Bonjour ,
Voilà, je voudrai mettre en place sur le onexit des différentes zones de mon module ceci :
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.
Donc jusque là tout va bien .je voudrais que la fonction se répète 20 secondes plus tard, donc un petit ActionWait (20) dont j'ignore si l'utilisation est judicieuse . ( les 20 secondes pour détruire les loots des monstres , le temps qu'ils se décomposent )
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.
Là tout va bien ( du mois je pense que ca marche, cher grand spécialiste vous pouvez signaler toute erreur.
Ensuite, c'est là que ca se corse. Je voudrais en effet que soient épargnés mes créatures " boss " si jamais elles ont spawn, car leur temps de respawn est très long .
Donc je voudrai en fait faire commencer leur tag de la façon suivante :
BOSS_tagdumonstre
et epargner tous les monstres qui n'ont pas le tag BOSS_xxxxxxxx
j'avais pensé à qq du genre : ( emprunté sur un autre script )
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.
Mais voilà mes essai d'insertion se révèle ... infructueux. Si vous pouviez me donner une piste ....
Merci.
Amicalement,
Nicetios,
( petit débutant : rang petit scarabé en nwnscript ) _________________ Luttons contre le language SMS !
Nicetios : Le monde d'Yhgdrazil serveur nwn 1 up, serveur nwn 2 en developpement. Venez nous voir ! Venez decouvrir un autre monde !
[http]
Dernière édition par Nicetios le 20/09/2005 18:09:57; édité 1 fois
|
|
Revenir en haut |
|
|
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers |
Posté le : 20/09/2005 17:33:53 Sujet du message :
Tu fait le test avec ça
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 |
|
|
Nicetios
Seigneur
Inscrit le: 20 Juin 2004
Messages: 217
|
Posté le : 20/09/2005 17:38:26 Sujet du message :
hum je ne vois pas où tu veux que je l'insère , désolè , c'est la fin de la journée je fatigue un peu .
[ EDIT ] non c'est bon désolè je crois savoir , quel boulet en fin de journée ... _________________ Luttons contre le language SMS !
Nicetios : Le monde d'Yhgdrazil serveur nwn 1 up, serveur nwn 2 en developpement. Venez nous voir ! Venez decouvrir un autre monde !
[http]
|
|
Revenir en haut |
|
|
Nicetios
Seigneur
Inscrit le: 20 Juin 2004
Messages: 217
|
Posté le : 20/09/2005 17:51:43 Sujet du message :
En fait , ton idée marche . Il faut affiner maintenant. En fait, le problème de ta solution, c'est que tous les placeables sont détruits, si ils sont utiliseables, et je n'ai pas la patience de mettre des tags en BOSS_ à tous les placeables...
En revanche, il épargne bien les BOSS_ donc le système marche.
Une idée ?
un 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.
ne serait il pas le bienvenu ? _________________ Luttons contre le language SMS !
Nicetios : Le monde d'Yhgdrazil serveur nwn 1 up, serveur nwn 2 en developpement. Venez nous voir ! Venez decouvrir un autre monde !
[http]
|
|
Revenir en haut |
|
|
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers |
Posté le : 20/09/2005 17:58:00 Sujet du message :
Oui bien sûr tu cantonne le test avec les créatures
A ta place je ferais meme une petite fonction qui check tout le points a remplir pour détruire ou non l'objet, si c'est bon -> TRUE sinon FALSE. _________________ Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
|
|
Revenir en haut |
|
|
Nicetios
Seigneur
Inscrit le: 20 Juin 2004
Messages: 217
|
Posté le : 20/09/2005 18:05:17 Sujet du message :
Ca y est , version finale et qui marche ( pour ceux qui serait interessés )
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.
En fait, comme ca ca peut paraître barbare comme solution mais ca marche ^.^ , de ce fait je ne vais pas allourdir le script avec des test TRUE/FALSE car je me cantone aux créatures ( mod de 240 zones, je n'ai pas besoin de détruire mes placeables ^^ )
Ce va me permettre de souffler après le passage des joueurs !
Merci Ivellios. _________________ Luttons contre le language SMS !
Nicetios : Le monde d'Yhgdrazil serveur nwn 1 up, serveur nwn 2 en developpement. Venez nous voir ! Venez decouvrir un autre monde !
[http]
|
|
Revenir en haut |
|
|
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
|
Posté le : 21/09/2005 00:22:01 Sujet du message :
Je suppose que tu as aussi un script sur le OnEnter pour compter les PJs qui rentrent dans la zone ?
sinon jette un oeil à la fonction ci-dessous et au lien en bas : il y a des fonctions de comptages de PJs dans une zone qui sont faciles d'emploi et d'origine bioware. D'autres fonctions également pour les bodybags, les monstres et les items.
Avec cette fonction tu n'auras pas à maintenir le décompte des PJs dans une variable.
ex : int NoPlayerInArea(object oArea) (Note : elle est simplifiable, elève le message de debug au milieu)
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.
GarbageCollector
|
|
Revenir en haut |
|
|
Nicetios
Seigneur
Inscrit le: 20 Juin 2004
Messages: 217
|
Posté le : 21/09/2005 08:19:03 Sujet du message :
J'utilise une fonction simplisime :
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.
Qui est légèrement plus simple a apréhender pour celui qui voudrais utiliser ce système.
Merci quand même ! _________________ Luttons contre le language SMS !
Nicetios : Le monde d'Yhgdrazil serveur nwn 1 up, serveur nwn 2 en developpement. Venez nous voir ! Venez decouvrir un autre monde !
[http]
|
|
Revenir en haut |
|
|
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
|
Posté le : 21/09/2005 12:57:38 Sujet du message :
Tu es sûr que ton test sur OBJECT_TYPE_ITEM détruit les plaçables "loot" ?
|
|
Revenir en haut |
|
|
Nicetios
Seigneur
Inscrit le: 20 Juin 2004
Messages: 217
|
Posté le : 21/09/2005 13:09:23 Sujet du message :
Certain, c'est testé . En fait, les loots mettent un petit temps pour apparaître, donc je les " dell " derrière. ce sont des " item " donc cette fonction leur est consacrée. Si je met autre chose, je détruit les placeables useable, ce qui est ennuyeux dans mes zones
[edit] les paceables ne sont pas des loots et vice versa ! loots = objets d'inventaires lachés par un monstre en mourant. _________________ Luttons contre le language SMS !
Nicetios : Le monde d'Yhgdrazil serveur nwn 1 up, serveur nwn 2 en developpement. Venez nous voir ! Venez decouvrir un autre monde !
[http]
|
|
Revenir en haut |
|
|
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
|
Posté le : 21/09/2005 16:34:19 Sujet du message : vérification en cours
|
|
Revenir en haut |
|
|
Nicetios
Seigneur
Inscrit le: 20 Juin 2004
Messages: 217
|
Posté le : 21/09/2005 18:47:55 Sujet du message :
Ok, merci en tout cas de ton aide. Si jamais ca devait mal se passer ... Je ferai un ajout , une ligne de plus. _________________ Luttons contre le language SMS !
Nicetios : Le monde d'Yhgdrazil serveur nwn 1 up, serveur nwn 2 en developpement. Venez nous voir ! Venez decouvrir un autre monde !
[http]
|
|
Revenir en haut |
|
|
Nicetios
Seigneur
Inscrit le: 20 Juin 2004
Messages: 217
|
Posté le : 21/09/2005 19:48:27 Sujet du message :
En effet, les loots ne disparaissent pas ... erreur de ma part. Une idée ?
Comment sont considérés les loots ? si ce sont des placeables, je suis dans le c*** _________________ Luttons contre le language SMS !
Nicetios : Le monde d'Yhgdrazil serveur nwn 1 up, serveur nwn 2 en developpement. Venez nous voir ! Venez decouvrir un autre monde !
[http]
|
|
Revenir en haut |
|
|
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
|
Posté le : 21/09/2005 23:03:15 Sujet du message :
humm j'ai testé sur le nwn-ff module en mettant les deux scripts modifiés ci-dessous sur la "Hostile area"
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :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.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :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.
Image de Test
Module_Test
Bon ça marche pas en effet, je te donne une piste : tu as oublié de réinitialiser
oObjetaDetruire = GetFirstObjectInArea(oAreaLeaved);
avant la deuxieme boucle.
|
|
Revenir en haut |
|
|
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
|
Posté le : 21/09/2005 23:16:40 Sujet du message : POC : proof of content
mais si il n'y avait que celà ...
(...)
re-modif à ma sauce : ensuite je fais des aller-retour dans la zone "hostile area" apres avoir créé 3 scarabés de feu et les avoir détruit, au dernier passage, je prends l'abdomen dans un des BodyBag.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :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.
Image de Test_n°2
1°) Les loots bags sont bien des objets plaçables (OBJECT_TYPE_PLACEABLE)
2°) Leur nom en version française est "Restes" et leur Tag est "BodyBag"
3°) Il ne sont pas détruit avec DestroyObject tant qu'il reste quelque chose à l'intérieur*
4°) Ils disparaissent tout seul quand leur inventaire est vide (sauf de temps à autre quand le module est à l'agonie...)**
* même nombre de BodyBag présents dans la zone après un nettoyage
** le Bodybag contenait un abdomen de scarabé de feu que j'ai mis dans mon inventaire, vidant ainsi ce dernier.
Mon conseil : repars sur les 4 fondamentaux ci-dessus.
|
|
Revenir en haut |
|
|
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
|
Posté le : 23/09/2005 00:04:52 Sujet du message :
Hum... les "BodyBag" sont des plaçables, certe mais placé en intrigue et seule la vidange de leurs inventaire suffit à les faire disparaite, la solution est donc de viré ce status d'intrigue.
Pour ce qui est des créatures de spawns elles on une sorte d'étiquette colée aux fesses , donc tu n'a plus qu'a choisir de detruire les monstres issus de spawns, tes pnj resteront eux.
Voici une proposition de script, il y en a trois en fait, un pour le On-Enter, un pour le On_Exit et une biblio de fonction.
les script on enter/exit commence a appeler les fonctions, tu place ce que tu veux ensuite.
On_Enter :
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.
On_Exit :
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.
enfin la biblio : eboueur_zones
NWScript :const float DELAI_NETTOYAGE_ZONE = 30.0; void eboueur_de_zone( object oZone) { if (! GetLocalInt( oZone, "bDemandeEboueur")) return; DeleteLocalInt( oZone, "bDemandeEboueur"); object oObjet = GetFirstObjectInArea( oZone); while( GetIsObjectValid( oObjet)) { int nType = GetObjectType( oObjet); switch( nType) { case OBJECT_TYPE_ITEM: DestroyObject( oObjet); break; case OBJECT_TYPE_PLACEABLE: if ( GetTag( oObjet)== "BodyBag") { SetPlotFlag( oObjet, FALSE); DestroyObject( oObjet); } break; case OBJECT_TYPE_CREATURE: if( GetIsEncounterCreature( oObjet)) DestroyObject( oObjet); break; } oObjet = GetNextObjectInArea( oZone); } } void exit_eboueur_zone( object oZone) { object oJoueur = GetExitingObject(); if (! GetIsPC( oJoueur)) return; int nNbJoueurs = GetLocalInt( oZone, "nNbJoueursZoneEboueur"); nNbJoueurs--; SetLocalInt( oZone, "nNbJoueursZoneEboueur", nNbJoueurs); if ( nNbJoueurs== 0) { SetLocalInt( oZone, "bDemandeEboueur", TRUE); DelayCommand( DELAI_NETTOYAGE_ZONE, eboueur_de_zone( oZone)); } } void enter_eboueur_zone( object oZone) { object oJoueur = GetEnteringObject(); if (! GetIsPC( oJoueur)) return; int nNbJoueurs = GetLocalInt( oZone, "nNbJoueursZoneEboueur"); nNbJoueurs++; SetLocalInt( oZone, "nNbJoueursZoneEboueur", nNbJoueurs); if ( GetLocalInt( oZone, "bDemandeEboueur")) DeleteLocalInt( oZone, "bDemandeEboueur"); } 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.
avec ce set de script tu devrais plus avoir de souci, a moins que j'ai lu les message précedent en diagonale...
EDIT : apres relecture du post, il me semble que tu veux pas detruire les créature estampillées "BOSS", il te suffit d'ajouter un test avant de detruire les créature issue de spawn en vérifiant qu'elle n'ai pas la chaine sting "BOSS" dans son tag. je te l'aurait bien fait mais là il est un peu tard !
|
|
Revenir en haut |
|
|
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
|
Posté le : 23/09/2005 00:53:36 Sujet du message :
Non non, ce ne sont pas des "plot items"
remodif pour enlever le "Plot Flag" avant la destruction et aller-retours après avoir détruit 3 scarabés : les "Restes" demeurent en place invariablement.
Image de test 3
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :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.
Test avec les scripts de Seth de Sombrelune sur la "Hostile Zone" : toujours 3 scarabés et va et vient entre les zones :
Image de test 4
Apparemment, après quelques aller-retour, histoire de dépasser les 30secondes, les "Restes" sont indéracinables.
5°) Les "Restes" ne sont pas des objets plaçables de quête (PLOT FLAG activé).
|
|
Revenir en haut |
|
|
|