Login: Pass:
Slayne



Inscrit le: 02 Oct 2006
Messages: 33
Message Posté le: 25/11/2006 2:24 Sujet du message: [Reso] Respawn pour un monstre ou Pnj. Sans déclancheur
Bonjour à tous !

Voila, je voudrais pouvoir utiliser un ancien script pour faire respawn mon monstre à l'endroit ou il a été posé.
Voici le script qui ce met dans le OnDeath :

Code:
#include "NW_I0_GENERIC"

void VoidCreateObject(string sTemplate, location lLoc)
{
CreateObject(OBJECT_TYPE_CREATURE, sTemplate,lLoc);
}
void main()
{
if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1007));
}

object oSelf = OBJECT_SELF;
location lLoca = GetLocalLocation( oSelf, "lSpawn");
float fSeconds = 600; //temps en secondes pour le respawn
string sTemplate = GetResRef( oSelf );

AssignCommand( GetArea( oSelf ) , DelayCommand( fSeconds, VoidCreateObject( sTemplate, lLoca ) ) );

}


Mais la fonction float n'existe plus et le script ne se compile pas "biensur" ^^.
Par quoi pourrait-on je la remplacer pour déterminer le temps qui doit s'écouler pour le respawn ? J'en ai essayé plusieurs, mais rien n'y fait Crying or Very sad

Merci d'avance pour votre aide Wink


Dernière édition par Slayne le 25/11/2006 15:11; édité 1 fois
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Mars



Inscrit le: 22 Mai 2005
Messages: 218
Localisation: Sur une galaxie lointaine, très lointaine
Message Posté le: 25/11/2006 5:10 Sujet du message:
Citation
Mais la fonction float n'existe plus

Tu es sur de toi ?
Quelle est l'erreur quand tu compiles ?

Vu que ta valeur est un entier tu peux essayer avec int iSeconds mais bon je pense pas que ton problème vienne de là.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Slayne



Inscrit le: 02 Oct 2006
Messages: 33
Message Posté le: 25/11/2006 11:07 Sujet du message:
Je vais dire que j'en suis sur, ou alors j'ai les yeux bouchés ^^
Lorsque j'essaye de compiler j'ai droit à :

****.NSS(16) ERREUR MISMATCHED TYPES
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
MrXXS
Administrateur


Inscrit le: 11 Juin 2005
Messages: 488
Message Posté le: 25/11/2006 11:52 Sujet du message:

Sûrement parceque 600 n'est pas un float. Essaie de mettre "600.", "600.0", "600f", "600.f" ou encore "600.0f" Wink.

Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
-MeteZ-



Inscrit le: 19 Nov 2005
Messages: 85
Localisation: Région Parisienne
Message Posté le: 25/11/2006 12:54 Sujet du message:
600.0 suffira Smile
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Slayne



Inscrit le: 02 Oct 2006
Messages: 33
Message Posté le: 25/11/2006 13:06 Sujet du message:
Magnifique !! C'était bien ça, il fallait mettre 600.0 !

Alors pour qui cela pourrait interesser voici les scripts pour mettre un monstre à un endroit donner.

Celui-ci à mettre dans "script déclanché par la mort" :

Code:
#include "NW_I0_GENERIC"

void VoidCreateObject(string sTemplate, location lLoc)
{
CreateObject(OBJECT_TYPE_CREATURE, sTemplate,lLoc);
}
void main()
{
if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1007));
}

object oSelf = OBJECT_SELF;
location lLoca = GetLocalLocation( oSelf, "lSpawn");
float fSeconds = 600.0; //temps en secondes pour le respawn
string sTemplate = GetResRef( oSelf );

AssignCommand( GetArea( oSelf ) , DelayCommand( fSeconds, VoidCreateObject( sTemplate, lLoca ) ) );

}


Et celui la à mettre dans "script déclanché par un spawn" pour qu'il réapparaîsse ou vous l'avez posé :

Code:
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"

void main()
{
SetListeningPatterns();
WalkWayPoints();
GenerateNPCTreasure();

object oSelf = OBJECT_SELF;
SetLocalLocation( oSelf, "lSpawn", GetLocation( oSelf ) );
}


Merci encore pour votre aide et à bientôt pour d'autres questions ^^
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Mars



Inscrit le: 22 Mai 2005
Messages: 218
Localisation: Sur une galaxie lointaine, très lointaine
Message Posté le: 25/11/2006 14:03 Sujet du message:
Question :
Quel est l'interet d'utiliser un float alors que la valeur est un entier ? Utiliser un integer reviens au même nan ?

sinon tu peux mettre le balise [reso] devant le titre de ton post si ton problème est résolu Wink
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Slayne



Inscrit le: 02 Oct 2006
Messages: 33
Message Posté le: 25/11/2006 17:35 Sujet du message:
Ben je sais pas de trop pourquoi Rolling Eyes tu penses qu'un int serait mieux ?
Pour dire la vérité je ne sais pas toujours comment je fais pour que ca fonctionne ^^
J'y connais pas grand chose..
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Mars



Inscrit le: 22 Mai 2005
Messages: 218
Localisation: Sur une galaxie lointaine, très lointaine
Message Posté le: 26/11/2006 2:53 Sujet du message:
Je sais pas si un int est plus approprié q'un float c'est justement le sens de ma question Wink

Par contre avant il ne compilait pas parceque tu utilisais un float pour définier un int maintenant qu'il y a la virgule ton float fonctionne correctement.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Amo



Inscrit le: 06 Juil 2006
Messages: 37
Localisation: Paris (pas loin)
Message Posté le: 26/11/2006 6:20 Sujet du message:
Je trouve ce script vraiment interessant pour certaines zones où les monstres demandent a être placé d'une certaine facon sur la map pour qu'a l'arrivé d'un joueur la sensation de "réalisme" soit ressentie.

Maitenant, un truc me trotte dans la tête : n'est-ce pas un systeme un peu trop gourmand en ressource pour ce que c'est?
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
Daelmiryn
Rustineman


Inscrit le: 08 Nov 2006
Messages: 309
Message Posté le: 26/11/2006 12:17 Sujet du message:
Je connais quelqu'un qui va réaliser un système de spawn / despawn des PNJ. Ce système fonctionne de sorte que tu place un WP dans la zone avec le tag du PNJ et les scripts se mettent dans le OnEnter et le OnExit de la zone.

En gros voilà ce que ça fait :

Un PJ entre dans la zone : les PNJ popent aussitôt. Ce système permet aussi de faire en sorte que l'on puisse choisir que les PNJ ne popent que le jour ou la nuit.

Un PNJ sort de la zone. Si aucun PJ n'entre au bout de 5 minutes, les PNJ dépopent et la zone est nettoyée en bonus.

De plus il permet de laisser les portes ouvertes le jour et vérouillées la nuit, pour les magasins par exemple.

Quand j'ai discuté avec le concepteur il m'a dit qu'il allait rajouter encore d'autres fonctions et qu'il livrerait le tout sur le vault. A suivre donc !
_________________
Daelmiryn, Bouffon et Animateur de la section Rôle Play
Le "Rustineman" est un être polyvalent semi-intelligent qui a surtout tendance à dire beaucoup de conneries, mais on l'aime quand même !
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Slayne



Inscrit le: 02 Oct 2006
Messages: 33
Message Posté le: 27/11/2006 1:06 Sujet du message:
Pour répondre, celui là fonctionne corréctement. Pour dire s'il est gourmand en ressource, je sais pas du tout.

Celui qui est en preparation a vraiment l'air trés interessant. déja pour éviter les surcharges des zones.

*Impatient de voir le résultat*
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   

Page 1 sur 1
Sauter vers:  

 

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

Traduction par : phpBB-fr.com
Powered by phpBB © 2001, 2007 phpBB Group