Improvements for Kaysen AI.

This commit is contained in:
MobiusDevelopment 2022-01-03 22:10:50 +00:00
parent 01fdcae68d
commit 9d9120571b
11 changed files with 286 additions and 88 deletions

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}

View File

@ -99,9 +99,17 @@ public class Kaysen extends AbstractNpcAI
{
if (player.calculateDistance3D(npc) < Npc.INTERACTION_DISTANCE)
{
if (npc.isScriptValue(1))
{
break;
}
npc.setScriptValue(1);
if (Rnd.get(100) < REWARD_CHANCE)
{
player.addItem("Kaysen Reward", REWARD, player, true);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_THOUGHT_I_D_BE_A_PUSHOVER_DIDN_T_YOU);
giveItems(player, REWARD);
startQuestTimer("KAYSEN_DELETE", 3000, npc, null);
}
else
{
@ -111,6 +119,12 @@ public class Kaysen extends AbstractNpcAI
}
break;
}
case "KAYSEN_DELETE":
{
npc.deleteMe();
startQuestTimer("KAYSEN_RESPAWN", 3600000, npc, null);
break;
}
case "KAYSEN_TRANSFORM":
{
npc.deleteMe();
@ -151,15 +165,19 @@ public class Kaysen extends AbstractNpcAI
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Player player = killer.getActingPlayer();
if (Math.abs(player.getLevel() - npc.getLevel()) > 9)
final int diff = player.getLevel() - npc.getLevel();
if (diff > -9)
{
player.addExpAndSp(EXP_REWARD / 40, 0);
if (diff > 9)
{
player.addExpAndSp(EXP_REWARD / diff, 0);
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
}
else
{
player.addExpAndSp(EXP_REWARD, 0);
}
player.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_OBTAINED_EXTRA_XP, ExShowScreenMessage.TOP_CENTER, 10000));
return super.onKill(npc, killer, isSummon);
}