script pour un contenant

Répondre
Partager Rechercher
je voudrais un script pour un coffre dont ce qu'il y a la l'intérieur respaw 1 fois par joueur (c'est a dire exemple : un joueur prend le contenu d'un coffre donc pour lui c fini il aura plus les objet avant un prochain reboot mais un autre joueur qui passe apres lui peu avoir les objet ext ... ^^ )

Bon courage hihi

http://membres.lycos.fr/babethgallet/escaflowne/escaflowne/film/card_06bis.jpg
https://forums.jeuxonline.info/showthread.php?t=132214

Le script marche impec', il est pas évident à configurer donc si t'as besoin d'aide, hésite pas

PS: sur le post Sire Pom Pom parle du OnSpawn du contenant, or celui-ci n'existe évidemment pas. Deux solutions : émuler un OnSpawn grâce au OnHeartBeat du coffre, ou initialiser tous les coffres d'un coup au lancement du module (ce que je trouve beaucoup plus simple et efficace).
3e solution les initialiser la première fois qu'ils sont ouverts, en fait il n'y a rien a faire, il suffit de mettre:
Code PHP:

InitTreasureRespawn();
TreasureRespawn(); 
Dans le main du OnOpen les variables locales font le reste.
Merci pour le correctif Taern, je devais être dans le pâté ce jour là.
En fait ce script est un fichier d'include, donc il doit être inclus dans un autre script comme ceci :

Code PHP:

#include "tresor_inc" 

(où tresor_inc est le nom sous lequel tu auras enregistré ce script.)

Ensuite il ya 2 choses à faire :
- pour chaque contenant qui devra respawner, appeller la fonction InitTreasureRespawn() sur ce dit contenant;
- sur l'évenement OnOpen de chaque contenant, appeller la fonction TreasureRespawn().

Je te donne un exemple de script qui initialise tous les coffres portant le tag "coffre_tresor" au lancement du module :

Code PHP:

#include "tresor_inc"

void main()
{
    
// autre chose qui peut n'avoir rien à voir
    // ...
    
object oCoffre GetObjectByTag("coffre_tresor");
    
int i=0;
    while(
GetIsObjectValid(oCoffre))
    {
        
InitTreasureRespawn(oCoffreGetMaxHitPoints(oCoffre));     //Le coffre attend une heure par point de vie pour respawner son contenu
        
i++;
        
oCoffre GetObjectByTag("coffre_tresor"i);
    }
    
WriteTimestampedLogEntry(IntToString(i)+" coffres initialisés");
    
// ...

Comme ça tu peux régler l'intervalle précédant le respawn en jouant sur le nombre de points de vie des coffres que tu place (ce qui n'influait pas dans le jeu puisque tous mes coffres étaient invincibles).

Puis pour chaque coffre à trésor, tu place sur le OnOpen :

Code PHP:

#include "tresor_inc"

void main()
{
    
TreasureRespawn(OBJECT_SELF);
    
DelayCommand(60.0DoPlaceableObjectAction(OBJECT_SELFANIMATION_PLACEABLE_CLOSE));

Comme ça quand le joueur ouvre le coffre, le contenu sera respawné ou pas selon le temps de respawn que tu auras reglé.
D'autre part, la 2e ligne aura pour cause de refermer le coffre automatiquement au bout de 60 secondes (ce qui est logique pour un script de monde persistant )

Vala je crois avoir fait le tour
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés