Page 1 of 2
					
				CasterBrain
				PostPosted: Sun Dec 21, 2008 12:57 pm
				by dec
				Bonjour,
Voila j'essaye de faire des mobs qui castent
Donc je tape bien sur le mob "mob brain DOL.AI.Brain.CasterBrain"
Donc apres le mob info sur la ligne brain c'est bon
Mais il caste pas et n'aggro pas (meme au cac)
le brain Standard cac marche tres bien par contre
Normal ?
manque pas un fichier .cs casterbrain ?
merci
			 
			
					
				Re: CasterBrain
				PostPosted: Sun Dec 21, 2008 5:55 pm
				by Graveen
				ben non sinon tu n'aurais pas pu l'affecter. Et puis c'est compilé donc on ne parle plus de .cs
Regarde dans le code ce que fait le caster brain, tiens.
			 
			
					
				Re: CasterBrain
				PostPosted: Sun Dec 21, 2008 6:18 pm
				by dec
				Bon j'ai trouver
en faite au lieu de creer simplement le mob (/mob create)
faillai juste que je fasse (/mob create DOL.GS.Keeps.GuardCaster)
et mettre CasterBrain sur le mob 
merci de m'avoir aider.
			 
			
					
				Re: CasterBrain
				PostPosted: Sun Dec 21, 2008 8:16 pm
				by Graveen
				tiens je me souvenais pas de ca mais en gros, si tu utilises le caster brain, il faut le mettre sur une classe qui sache le gérer (et les DOL.GS.Keep.xxx le font on dirait)
Je ne sais pas quelle classe peuvent. Les gardes sont qd meme un peu spécifiques
			 
			
					
				Re: CasterBrain
				PostPosted: Sun Dec 21, 2008 9:53 pm
				by dec
				tiens je me souvenais pas de ca mais en gros, si tu utilises le caster brain, il faut le mettre sur une classe qui sache le gérer (et les DOL.GS.Keep.xxx le font on dirait)
Je ne sais pas quelle classe peuvent. Les gardes sont qd meme un peu spécifiques
c'est Keep.GuardCaster je l'ai marquer plus haut
 
			 
			
					
				Re: CasterBrain
				PostPosted: Sun Dec 21, 2008 9:56 pm
				by Graveen
				je veux dire par là que les clases héritées GameNPC doivent avoir été crées pour ca.
Je pense que toutes les classes DOL.GS.Keepguard peuvent prendre un brain caster/melee/etc..
			 
			
					
				Re: CasterBrain
				PostPosted: Fri Jan 16, 2009 8:35 am
				by Talath
				Le brain étant un attribut en vogue ces temps ci, il serait éventuellement intéressant de pouvoir utiliser ces brain caster et melee sur les GameNPC, et de ce fait, sur toutes les classes héritées... (à moins que ce soit déjà possible, dans ce cas, vous excuserez mon intervention...).
			 
			
					
				Re: CasterBrain
				PostPosted: Fri Jan 16, 2009 10:19 am
				by Graveen
				Il me semble que c'est le cas, vu que le brain gère toute la prise de décision concernant le comportement du joueur.
A vérifier, mais si ca ne fonctionne pas comme ca, c'est a changer effectivement.
			 
			
					
				Re: CasterBrain
				PostPosted: Sat Jan 17, 2009 9:21 am
				by Patou
				Oui c'est bien ca , maintenant on peu declencher des cast de multiple facon , tous depend de ce que l'on veux.
voila un exemple de mob qui cast un dot si on le touche au cac
- Code: Select all
 /*
INSERT INTO `linexspell` (`LineXSpell_ID`, `LineName`, `SpellID`, `Level`, `PackageID`) VALUES 
('DOTxxx1', 'Mob Spells', 38015, 46, 'MOB');
INSERT INTO `spell` (`Spell_ID`, `SpellID`, `ClientEffect`, `Icon`, `Name`, `Description`, `Target`, `Range`, `Power`, `CastTime`, `Damage`, `DamageType`, `Type`, `Duration`, `Frequency`, `Pulse`, `PulsePower`, `Radius`, `RecastDelay`, `ResurrectHealth`, `ResurrectMana`, `Value`, `Concentration`, `LifeDrainReturn`, `AmnesiaChance`, `Message1`, `Message2`, `Message3`, `Message4`, `InstrumentRequirement`, `SpellGroup`, `EffectGroup`, `SubSpellID`, `MoveCast`, `Uninterruptible`, `IsPrimary`, `IsSecondary`, `AllowBolt`, `SharedTimerGroup`, `PackageID`, `IsFocus`) VALUES 
('MOB_DOTxxxxxxxxxxxxxxx1', 38015, 9671, 9671, 'DOT MOB', 'Inflicts damage to the target repeatly over a given time period.', 'Enemy', 1500, 11, 3, 10, 15, 'DamageOverTime', 24, 20, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 'An acidic cloud surrounds you!', '{0} is surrounded by an acidic cloud!', '', '', 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, 'Reaver', 0);
 * Niko
 *
 * Mob qui si il est touché au cac cast un DOT.
 *
*/
using System;
using System.Collections;
using System.Reflection;
using DOL;
using DOL.Database;
using DOL.GS;
using DOL.GS.Effects;
using DOL.GS.Movement;
using DOL.GS.PacketHandler;
using DOL.GS.SkillHandler;
using DOL.GS.Spells;
using DOL.GS.Styles;
using log4net;
namespace DOL.GS
{
    public class CastDotifCac : GameNPC
    {
        public CastDotifCac()
            : base()
        {
        }
		
		private static void CastDot(GameNPC npc, GameLiving target)
		{
			npc.TargetObject = target;
			if (target != null && target is GamePlayer)
			{
				npc.TargetObject = target;
				LaunchSpell(46, "Mob Spells", npc); 
			}
		}
			
		private eDamageType degat_crush = eDamageType.Crush;
		private eDamageType degat_slash = eDamageType.Slash;
		private eDamageType degat_thrust = eDamageType.Thrust;
		
        public override void TakeDamage(GameObject source, eDamageType damageType, int damageAmount, int criticalAmount)
        {
			
			GameLiving target = this.TargetObject as GameLiving;
			
            if (damageType == degat_crush || damageType == degat_slash || damageType == degat_thrust)
				CastDot(this , target); 
			
            base.TakeDamage(source, damageType, damageAmount, criticalAmount);
        }
		
		public static void LaunchSpell(int spellLevel, string spellLineName, GameNPC npc)
        {
            if (npc.TargetObject == null) return;
            Spell castSpell = null;
            SpellLine castLine = null;
            castLine = SkillBase.GetSpellLine(spellLineName);
            IList spells = SkillBase.GetSpellList(castLine.KeyName);
		
            foreach (Spell spell in spells)
            {
                if (spell.Level == spellLevel)
                {
                    castSpell = spell;
                    break;
                }
            }
            if (npc.AttackState)
                npc.StopAttack();
            npc.TurnTo(npc.TargetObject);
            npc.CastSpell(castSpell, castLine);
        }
    }
}
sinon Dec pour ton soucis , d'aggro , il te suffit de rajouter ca dans ton Brain :
- Code: Select all
 if (!Body.AttackState && AggroLevel > 0)
			{
				CheckPlayerAggro();
				CheckNPCAggro();
			}
			
			if (IsAggroing)
				AttackMostWanted();
 
			 
			
					
				Re: CasterBrain
				PostPosted: Thu Dec 16, 2010 3:18 pm
				by guillaume
				"je up le post"
Du coup j'ai tenter de crée un mob et de lui ajouter le brain( DOL.AI.Brain.CasterBrain) et pareil que "Dec" le mob ne réagi pas avec un compte joeur, le mob ne cast pas et ne tape pas au cac malgré qu'il soit aggro .
Et si je fait un /mob create DOL.GS.Keeps.Guardcaster ben sa me fait un garde du coup .
			 
			
					
				Re: CasterBrain
				PostPosted: Thu Dec 16, 2010 5:30 pm
				by Graveen
				Utilise un npctemplate avec des sorts, c'est plus simple 
edit: je sais que je réponds à côté. Mais c'est une partie du code qu'il faudrait défricher sévèrement, et j'ai peur que pour l'instant, ca ne reste en l'état.
 
			 
			
					
				Re: CasterBrain
				PostPosted: Tue Jan 04, 2011 11:44 am
				by guillaume
				Ok du coup j'ai fait comme sa 
par contre possible de trouvez une liste pour les "ID" de tout les sorts?
Car la je regarde dans "databaseSpell" et je test un par un les sort 

  (ig) 
Sinon pour les style d'arme sa fonctionne pas ou mauvais id .
 
			 
			
					
				Re: CasterBrain
				PostPosted: Tue Jan 04, 2011 12:37 pm
				by Graveen
				Non, il n'y a pas de stricte correspondance ID client <--> ID sort database. Tu peux neanmoins les classer par classe ou groupe selon le spelltype.
			 
			
					
				Re: CasterBrain
				PostPosted: Wed Jan 19, 2011 5:05 pm
				by guillaume
				C'est toujour moi
Voila un deux nouveau problemes, j'ai donner un sort de zone a un mob (dot ae), le sort fonctionne bien vs joueur le truc qui me plait pas, c'est que si un mob se trouve a coter il se prend lui(le mob) aussi le dot de zone.
J'ai un gros bug qui me fait planter le serveur avec un autre type de sort, incantation de pet terre, le mob incante bien plusieurs pet, sauf que les pet ne me touche pas...et empeche un mage de cast (en gros je déco/reco et au retour toujour le bug) obliger de reboot le serveur et virer le spell du mob. 
Voila merci de me dire quoi faire si vous avez une idée du prob.
			 
			
					
				Re: CasterBrain
				PostPosted: Wed Jan 19, 2011 5:42 pm
				by Graveen
				interessant ton bug. Les deux semblent liés au server rules: IsAllowedToAttack() que tu peux customiser à ta convenance.
Et pour le second, woot. Tu as testé avec le SVN only (sans scripts customs etc... ?) Si oui, je suggère que tu me fasses passer le npctemplate que tu as utilisé, je testerais ça.