NPC_AI_ Introduction
#1
NPC_AI_Introduction


Ce post fait office de présentation et devrait être suivi de bien d'autres scripts .

Dans mon objectif de changer le gameplay , je me suis lancé dans la réalisation de scripts cores génériques pouvant s'appliquer a tout les mobs . 
Rien de plus monotone de combattre les mobs face contre face , nez contre nez , sans âme ... sans vie.

Ces AI ont pour vocation d'apporter un peut d'intelligence , un peut de mouvement aux mobs classique sans être trop dur puisque souvent en groupe .
  • Ces AI sont constitués de plusieurs spécialités qui seront choisi aléatoirement a l'agro . Un Druide pourra être Equilibre , Felin , Ours ou Tréant 
  • Pour chaque spécialité il peut exister plusieurs combinaisons de sort afin qu'un druide équilibre soit différent d'un autre druide équilibre .
  • Lorsque sa classe le demande il bougera en fonction de ses besoins , un cast restera dans une plage de sa cible et ce déplacera si vous vous approchez ou vous éloignez. Un Felin ou voleur pendant le combat bougera aléatoirement au tour de vous.
Par défaut une Spécialisation est choisi aléatoirement mais il est possible de forcer le choix en éditant le pickpocketloot de creature_template avec le numéro de la Spécialisation :
  • UPDATE `creature_template` SET `pickpocketloot ` = 1 WHERE (entry = 15100001);   forcera la branche 1 a chaque agro c'est a dire Equilibre
  • UPDATE `creature_template` SET `pickpocketloot ` = WHERE (entry = 15100001);   forcera la branche 2 a chaque agro c'est a dire Ours
  • etc . J'ai choisi cette méthode plutôt que de rajouter une table ou un entrée db afin de garder une compatibilité maximale avec tout les cores.
Je vais commencer cette série avec les classes et auront par ce fait des spells déjà assignés. Plus tard lorsque je ferais des AI plus générale comme pour les felin , caster générique ou autres combattants ,  je laisserais le choix d'imposer des sorts par les spell 1 a 8 de creature template  .

ces AI comportent de plusieurs phases :

1) L'agro :
  • le mobs choisi une spécialisation aléatoire
  • le bob ce buff ou adoptera un changeform ou autres réglages propres en fonction de sa spécialisation 
  • suivant sa spécialisation il aura plus ou moins de chance de lancer un sort spécifique d'agro
  • Suivant la classe une spécialisation poura avoir plus de chance de sortir.

2) Le combat : il est composé de 3 phases d'attaques
  • le 1er sort sur la cible chaque 3 ou 4s environ , c'est le sort principal qu'il lancera en boucle
  • le 2eme sort sur la cible ce déclenchera environ chaque 4 a 6s , il est en général plus puissant mais plus long a recharger
  • le 3eme sort sur la cible est destiné a des sorts qui infligent des dégâts dans le temps (DOT) et il est donc lancé chaque 10s environ
Ces temps sont donnés a titre indication et peuvent varier légèrement d'une classe a un autre.

3) Le heal en combat
  • Celui ci sera prioritaire au combat mais pas avec excès 
  • Suivant le role du mob , celui ci ce déclenchera a des % différent suivant s'il est heal principal (spécialité) ou un simple caster qui peut occasionnellement soigner
  • Le mob peux soigner des allié mais sa propre vie aura la priorité
4) Déplacement et distance
  • Un caster cherchera a rester a une certaine distance 20-30m , ni trop pres , ni trop loin . 
  • Si vous venez au contact il s’éloignera aléatoirement de 15m
  • Il ne peut ce dėplacer qu'entre 2 casts
  • Si le mob n'est pas un caster il essayera de vous tourner au tour aléatoirement plus ou moins vite suivant sa classe . Un fufu ou un felin feront plus de mouvements qu'un guerrier qui aura tendance a rester face a face ... mais pas toujours .
Si vous avez des avis ou propositions , lachez vous Smile



Exemple : Le Druide
Répondre
#2

Joueur vs Druide + Chaman
Répondre
#3
Répondre
#4
Exemple de mobs de type Betes, ces vidéos représente les 1ere version des scripts et ont évolué depuis.






Répondre
#5




Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)