Page 1 of 1

Auto dialog monsters

Posted: Thu Apr 29, 2010 7:25 pm
by babyjason
If you want to receive support we need this info to help you properly.
» Find Revision
L2J Revision Number:
L2JDP Revision Number:

I was thinking of adding some text dialog to mobs, as in when you fight a mob, they speak to you, some simple automated dialog.

so i tought about the way seven signs orators dialog is implemented, i found auto_chat and autochat_txt, i added them for some mobs , but they still dont speak (i put time to 30, tried with -1 too).

any ideea how to make something like this, or a script is needed, these 2 sql s beeing used only for NPC types, not l2monsters or others?

ty

Re: Auto dialog monsters

Posted: Thu Apr 29, 2010 7:30 pm
by jurchiks
AI

Re: Auto dialog monsters

Posted: Thu Apr 29, 2010 7:46 pm
by babyjason
jurchiks wrote:AI
npcaidata.sql ? cant be... :?:

Re: Auto dialog monsters

Posted: Thu Apr 29, 2010 7:51 pm
by jurchiks
not that easy
i mean the AI scripts
check the attachment
P.S. this one goes into ai/group_templates cus there's more than one breka orc

Re: Auto dialog monsters

Posted: Thu Apr 29, 2010 8:01 pm
by babyjason
jurchiks wrote:not that easy
i mean the AI scripts
check the attachment
P.S. this one goes into ai/group_templates cus there's more than one breka orc

oh ty so much, got it now

Re: Auto dialog monsters

Posted: Fri Apr 30, 2010 4:55 am
by babyjason
hm i just tried it but no effect, the mobs dont speak ...not even with breka script wich you kind enough put here, and i converted to epilogue server like this:

i ofc included in scripts.cfg the script slike this

ai/group_template/BrekaOrcOverlord.java
ai/group_template/Sonneratia.java

cant figure out what the hell could be wrong, i get no error, nothing... i d appreciate ur help, ty

Code: Select all

/* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. *  * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. *  * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */package ai.group_template; import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance;import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;import com.l2jserver.gameserver.network.serverpackets.NpcSay;import com.l2jserver.util.Rnd; public class BrekaOrcOverlord extends L2AttackableAIScript{	private static final int BREKA = 20270; 	private static boolean _FirstAttacked; 	public BrekaOrcOverlord(int questId, String name, String descr)	{		super(questId, name, descr);		int[] mobs = {BREKA};		registerMobs(mobs);		_FirstAttacked = false;	} 	public String onAttack (L2NpcInstance npc, L2PcInstance attacker, int damage, boolean isPet)	{          if (npc.getNpcId() == BREKA)           {             if (_FirstAttacked)           {		     if (Rnd.get(100) == 50) npc.broadcastPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId(),"Extreme strength! ! ! !"));		   }            {              if (Rnd.get(100) == 50)npc.broadcastPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId(),"Humph, wanted to win me to be also in tender!"));            }           {           if (Rnd.get(100) == 50) npc.broadcastPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId(),"Haven't thought to use this unique skill for this small thing!"));           }          {            _FirstAttacked = true;		  }        }        return super.onAttack(npc, attacker, damage, isPet);    } 	public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet)	{        int npcId = npc.getNpcId();        if (npcId == BREKA)        {            _FirstAttacked = false;        }        return super.onKill(npc,killer,isPet);    } 	public static void main(String[] args)	{		new BrekaOrcOverlord(-1, "BrekaOrcOverlord", "ai");	}}
and this is for sonneratia i made

Code: Select all

/* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. *  * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. *  * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */package ai.group_template; import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance;import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;import com.l2jserver.gameserver.network.serverpackets.NpcSay;import com.l2jserver.util.Rnd; public class Sonneratia extends L2AttackableAIScript{	private static final int SONNERATIA = 22263; 	private static boolean _FirstAttacked; 	public Sonneratia(int questId, String name, String descr)	{		super(questId, name, descr);		int[] mobs = {SONNERATIA};		registerMobs(mobs);		_FirstAttacked = false;	} 	public String onAttack (L2NpcInstance npc, L2PcInstance attacker, int damage, boolean isPet)	{          if (npc.getNpcId() == SONNERATIA)           {             if (_FirstAttacked)           {		     if (Rnd.get(100) == 50) npc.broadcastPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId(),"Wait here, Noob.I`ll Be Back!"));		   }            {              if (Rnd.get(100) == 50)npc.broadcastPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId(),"Wahahha, Noob, i was AFK!"));            }           {           if (Rnd.get(100) == 50) npc.broadcastPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId()," I didn`t had buffs, wait here, i come back!"));           }          {            _FirstAttacked = true;		  }        }        return super.onAttack(npc, attacker, damage, isPet);    } 	public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet)	{        int npcId = npc.getNpcId();        if (npcId == SONNERATIA)        {            _FirstAttacked = false;        }        return super.onKill(npc,killer,isPet);    } 	public static void main(String[] args)	{		new Sonneratia(-1, "Sonneratia", "ai");	}}

Re: Auto dialog monsters

Posted: Fri Apr 30, 2010 8:24 am
by jurchiks
inside onAttack, change L2NpcInstance to L2Npc

Re: Auto dialog monsters

Posted: Sun May 02, 2010 3:48 am
by babyjason
gives error on console at line 36, L2Npc on attacker line...

i changed just like you said, seams there s a problem with L2Npc method or smt like that :( :x

Code: Select all

	public String onAttack (L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
also, any ideeas how to add some dialog to pets? like sin eater?

Re: Auto dialog monsters

Posted: Sun May 02, 2010 10:00 am
by jurchiks
what's the error?
talking pets would either require heavy core modding or impossible

Re: Auto dialog monsters

Posted: Sun May 02, 2010 1:56 pm
by babyjason

Code: Select all

Error on: E:\L2jServerEpilogueFinalNEWA\gameserver\data\scripts\ai\group_template\BrekaOrcOverlord.java.error.logLine: -1 - Column: -1 compilation failed
this is all i get, in console i got L2Npc not a valid method, i ll print screen it when i ll get the chance :(

Re: Auto dialog monsters

Posted: Sun May 02, 2010 2:49 pm
by jurchiks
ah crap, that AI i posted uses another custom class.
try this one, much simpler.

Re: Auto dialog monsters

Posted: Mon May 03, 2010 8:03 am
by babyjason
ty very much again, i ll try it , much appreciated