Aller au contenu
Docraft

Mob spawn MMORPG like

Messages recommandés

Bonjour, j'aimerais faire spawner mes mobs à la manière d'un mmorpg. C'est à dire que ceux-ci se contentent d'une zone délimitée de déplacement, que le nombre de mobs présents dans chaque zone soit maîtrisé, que chaque mob soit en quantité fixe (3 mobs A et 4 mobs B dans la zone X en permanence).

 

J'ai déjà essayé plusieurs pistes mais j'ai toujours le problème du fait qu'ils despawn, et que cet événement ne soit pas pris en considération par le "on death". Ou encore le fait qu'un chunck non chargé ne semble pas permettre la prise en compte de la mort du mob.

 

Ce que j'ai essayé :

 

1)

Avec l'événement "on spawn"

Le mob spawn, on lui assigne une variable propre, ici {identifiantMob.%creature%}, puis on set une variable spécifiant que le mob a été spawn (pour éviter les doublons grâce à un système de condition).

 

Du côté du "on death"

Le mob est tué, on vérifie son identité grâce à la variable, si la variable {identifiantMob.%creature%} est celle attendu, alors on respawn le mob à une position fixe.

 

Ce système fonctionne à très court terme, si je reste dans la zone et que je combat mon mob, une fois celui-ci mort, il respawn à l'endroit souhaité. Jusqu'ici tout va bien, j'ai réussi à le faire avec 3 mobs respawnant à 3 positions différentes. Seulement si je m'éloigne, ou que je me déconnecte, après quelques temps mes mobs ne sont plus dans la zone, je dois les faire respawn manuellement.

 

2)

Avec un système de région, a chaque fois que le joueur entre dans celle-ci je loop les créatures présente et vérifie les comptes. Cette méthode fonctionne mais ne permet pas de faire spawn les mêmes types de mobs à des positions différentes, ou du moins pas comme je l'attend. De plus ma map sera d'ici peu trop grande pour que je puisse me permettre d'avoir des centaines voir milliers de régions (si quelqu'un a déjà essayé d'avoir + de 500 régions j'aimerais bien vos témoignages, si ca ne ralentit pas le serveur je pourrais envisager cette solution). Avec quelques modifications et ajouts cette méthode peut fonctionner mais est trop demandeuse de ressource au vu des quantités de mobs et de régions.

 

Pour ce qui est du problème de déplacement trop important (un mob qui n'est plus dans la zone souhaitée), je suis preneur si vous avez des idées mais ce n'est pas le problème numéro 1.

 

Concrètement ma question est "Comment garder un nombre fixe de mob dans une région, même sans joueur connecté ou dans la région ?"

 

Le problème est peut-être un peu abstrait si vous avez des questions n'hésitez pas je vous enverrai plus de détail. De même si vous voulez mes skript, je vous les enverrai en mp.

Partager ce message


Lien à poster
Partager sur d’autres sites

Une solution possible est de faire ce système via un excellent plugin : "MyhticMobs". Tous ce que tu décris est facilement faisable grâce au plugin.

 

Sinon, au niveau Skript, tu peux passer par des fonctions qui vont gérer chacun de tes mobs. Je m'explique:

Lors du spawn de ton mob, la fonction se lance, et vérifie (tous les x ticks) si le mobs est encore en vie. Si il l'est, rien ne se passe, sinon, ça lance la procédure de respawn.

>>> En revanche, je ne suis pas sûr que si le chunk n'est pas chargé, ou qu'aucun joueur n'est co/à proximité, le respawn se fasse ! (Bloqué par le jeu)

 

Un autre solution est alors de check pour chaque joueur si les mobs autour de lui sont présents ou non. S'ils ne le sont pas, tu les fais spawn, etc..

 

Si tu as besoin d'autres explication, n'hésite pas !

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour ta réponse, pour MythicMobs, il n'est pas compatible avec mon serveur qui est en 1.7.10, j'ai essayé mais rien à faire le plugin ne fonctionne pas.

 

Pour les fonctions, je n'ai pas encore regardé cette partie de Skript, penses-tu que chaque mob peut alors avoir une fonction lui étant propre ? Je veux dire si j'ai 5 zombies, la fonction ne sera pas commune au type de mob zombie ? Je peux les assigner avec un .%creature% ou un .%entity% à la fin de ma variable selon toi ? J'vais fouiller de ce côté là.

Ta deuxième idée est intéressante, mais le problème du nombre de région trop important reste le problème. Car pour savoir si le nombre de mob est correct, il faut que je connaisse les mobs censés être présents.

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.