Refactored NPC display state functions.
This commit is contained in:
parent
aa2a04b466
commit
c39ac887e3
@ -105,7 +105,7 @@ public class HillsOfGold extends AbstractNpcAI
|
||||
}
|
||||
else
|
||||
{
|
||||
npc.setState(1);
|
||||
npc.setDisplayEffect(1);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
@ -125,16 +125,16 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
case "fire":
|
||||
{
|
||||
startQuestTimer("fire", 30000 + getRandom(5000), npc, null);
|
||||
npc.setState(FIRE_EFFECT_NONE);
|
||||
npc.setDisplayEffect(FIRE_EFFECT_NONE);
|
||||
|
||||
if (getRandom(GameTimeController.getInstance().isNight() ? 2 : 4) < 1)
|
||||
{
|
||||
npc.setState(FIRE_EFFECT_BURN); // fire burns
|
||||
npc.setDisplayEffect(FIRE_EFFECT_BURN); // fire burns
|
||||
npc.broadcastEvent("SCE_CAMPFIRE_START", 600, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
npc.setState(FIRE_EFFECT_NONE); // fire goes out
|
||||
npc.setDisplayEffect(FIRE_EFFECT_NONE); // fire goes out
|
||||
npc.broadcastEvent("SCE_CAMPFIRE_END", 600, null);
|
||||
}
|
||||
break;
|
||||
@ -148,12 +148,12 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
if (npc.isNoRndWalk())
|
||||
{
|
||||
npc.doCast(SkillData.getInstance().getSkill(6331, 1));
|
||||
npc.setState(MAHUM_EFFECT_SLEEP);
|
||||
npc.setDisplayEffect(MAHUM_EFFECT_SLEEP);
|
||||
}
|
||||
if (npc.getVariables().getInt("BUSY_STATE") == 1) // Eating
|
||||
{
|
||||
npc.doCast(SkillData.getInstance().getSkill(6332, 1));
|
||||
npc.setState(MAHUM_EFFECT_EAT);
|
||||
npc.setDisplayEffect(MAHUM_EFFECT_EAT);
|
||||
}
|
||||
|
||||
startQuestTimer("remove_effects", 300000, npc, null);
|
||||
@ -168,7 +168,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
{
|
||||
// myself.i_quest0 = 0;
|
||||
npc.setIsRunning(true);
|
||||
npc.setState(MAHUM_EFFECT_NONE);
|
||||
npc.setDisplayEffect(MAHUM_EFFECT_NONE);
|
||||
break;
|
||||
}
|
||||
case "reset_full_bottle_prize":
|
||||
@ -226,7 +226,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
{
|
||||
if (receiver.getId() == FIRE)
|
||||
{
|
||||
receiver.setState(FIRE_EFFECT_BURN);
|
||||
receiver.setDisplayEffect(FIRE_EFFECT_BURN);
|
||||
final L2Npc stove = addSpawn(STOVE, receiver.getX(), receiver.getY(), receiver.getZ() + 100, 0, false, 0);
|
||||
stove.setSummoner(receiver);
|
||||
startQuestTimer("notify_dinner", 2000, receiver, null); // @SCE_DINNER_EAT
|
||||
@ -353,7 +353,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
}
|
||||
else if (Util.contains(SQUAD_LEADERS, npc.getId()))
|
||||
{
|
||||
npc.setState(3);
|
||||
npc.setDisplayEffect(3);
|
||||
npc.setIsNoRndWalk(false);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
@ -390,7 +390,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
cancelQuestTimer("remove_effects", attacked, null);
|
||||
attacked.getVariables().remove("BUSY_STATE");
|
||||
attacked.setIsNoRndWalk(false);
|
||||
attacked.setState(MAHUM_EFFECT_NONE);
|
||||
attacked.setDisplayEffect(MAHUM_EFFECT_NONE);
|
||||
if (attacked.getRightHandItem() == OHS_Weapon)
|
||||
{
|
||||
attacked.setRHandId(THS_Weapon);
|
||||
|
@ -60,7 +60,7 @@ public final class Anais extends AbstractNpcAI
|
||||
private void burnerOnAttack(int pot, L2Npc anais)
|
||||
{
|
||||
L2Npc npc = _divineBurners.get(pot);
|
||||
npc.setState(1);
|
||||
npc.setDisplayEffect(1);
|
||||
npc.setIsRunning(false);
|
||||
if (pot < 4)
|
||||
{
|
||||
@ -99,7 +99,7 @@ public final class Anais extends AbstractNpcAI
|
||||
}
|
||||
final L2Npc b = _divineBurners.get(_pot);
|
||||
_pot = _pot + 1;
|
||||
b.setState(1);
|
||||
b.setDisplayEffect(1);
|
||||
b.setIsRunning(false);
|
||||
L2Npc ward = addSpawn(GRAIL_WARD, new Location(b.getX(), b.getY(), b.getZ()), true, 0);
|
||||
((L2Attackable) ward).addDamageHate(_nextTarget, 0, 999);
|
||||
@ -134,7 +134,7 @@ public final class Anais extends AbstractNpcAI
|
||||
cancelQuestTimer("GUARD_ATTACK", npc, _nextTarget);
|
||||
if (_current != null)
|
||||
{
|
||||
_current.setState(2);
|
||||
_current.setDisplayEffect(2);
|
||||
_current.setIsRunning(false);
|
||||
_current = null;
|
||||
}
|
||||
@ -186,7 +186,7 @@ public final class Anais extends AbstractNpcAI
|
||||
cancelQuestTimer("CHECK", npc, null);
|
||||
if (_current != null)
|
||||
{
|
||||
_current.setState(2);
|
||||
_current.setDisplayEffect(2);
|
||||
_current.setIsRunning(false);
|
||||
_current = null;
|
||||
}
|
||||
|
@ -112,14 +112,14 @@ public final class Minigame extends AbstractNpcAI
|
||||
{
|
||||
if (npc.getId() == BURNER)
|
||||
{
|
||||
npc.setState(2);
|
||||
npc.setDisplayEffect(2);
|
||||
npc.setIsRunning(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (L2Npc burner : room.getBurners())
|
||||
{
|
||||
burner.setState(2);
|
||||
burner.setDisplayEffect(2);
|
||||
burner.setIsRunning(false);
|
||||
}
|
||||
}
|
||||
@ -147,7 +147,7 @@ public final class Minigame extends AbstractNpcAI
|
||||
if (room.getCurrentPot() < 9)
|
||||
{
|
||||
L2Npc b = room.getBurners()[room.getOrder()[room.getCurrentPot()]];
|
||||
b.setState(1);
|
||||
b.setDisplayEffect(1);
|
||||
b.setIsRunning(false);
|
||||
startQuestTimer("off", 2000, b, null); // Stopping burning each pot 2s after
|
||||
startQuestTimer("timer", TIMER_INTERVAL * 1000, npc, null);
|
||||
@ -279,7 +279,7 @@ public final class Minigame extends AbstractNpcAI
|
||||
{
|
||||
if (room.getCurrentPot() < 8)
|
||||
{
|
||||
npc.setState(1);
|
||||
npc.setDisplayEffect(1);
|
||||
npc.setIsRunning(false);
|
||||
startQuestTimer("off", 2000, npc, null);
|
||||
room.setCurrentPot(room.getCurrentPot() + 1);
|
||||
@ -427,7 +427,7 @@ public final class Minigame extends AbstractNpcAI
|
||||
{
|
||||
for (L2Npc burner : _burners)
|
||||
{
|
||||
burner.setState(1);
|
||||
burner.setDisplayEffect(1);
|
||||
burner.setIsRunning(false);
|
||||
}
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ public final class Maguen extends AbstractNpcAI
|
||||
{
|
||||
npc.getAI().stopFollow();
|
||||
final int randomEffect = getRandom(1, 3);
|
||||
npc.setState(randomEffect);
|
||||
npc.setDisplayEffect(randomEffect);
|
||||
npc.getVariables().set("NPC_EFFECT", randomEffect);
|
||||
startQuestTimer("SECOND_TIMER", 5000 + getRandom(300), npc, player);
|
||||
npc.broadcastSocialAction(getRandom(1, 3));
|
||||
@ -130,7 +130,7 @@ public final class Maguen extends AbstractNpcAI
|
||||
case "SECOND_TIMER":
|
||||
{
|
||||
final int randomEffect = getRandom(1, 3);
|
||||
npc.setState(randomEffect);
|
||||
npc.setDisplayEffect(randomEffect);
|
||||
npc.getVariables().set("NPC_EFFECT", randomEffect);
|
||||
startQuestTimer("THIRD_TIMER", 4600 + getRandom(600), npc, player);
|
||||
npc.broadcastSocialAction(getRandom(1, 3));
|
||||
@ -139,7 +139,7 @@ public final class Maguen extends AbstractNpcAI
|
||||
case "THIRD_TIMER":
|
||||
{
|
||||
final int randomEffect = getRandom(1, 3);
|
||||
npc.setState(randomEffect);
|
||||
npc.setDisplayEffect(randomEffect);
|
||||
npc.getVariables().set("NPC_EFFECT", randomEffect);
|
||||
startQuestTimer("FORTH_TIMER", 4200 + getRandom(900), npc, player);
|
||||
npc.broadcastSocialAction(getRandom(1, 3));
|
||||
@ -148,7 +148,7 @@ public final class Maguen extends AbstractNpcAI
|
||||
case "FORTH_TIMER":
|
||||
{
|
||||
npc.getVariables().set("NPC_EFFECT", 0);
|
||||
npc.setState(4);
|
||||
npc.setDisplayEffect(4);
|
||||
startQuestTimer("END_TIMER", 500, npc, player);
|
||||
npc.broadcastSocialAction(getRandom(1, 3));
|
||||
break;
|
||||
@ -249,7 +249,7 @@ public final class Maguen extends AbstractNpcAI
|
||||
{
|
||||
startQuestTimer("END_TIMER", 1000, npc, player);
|
||||
}
|
||||
npc.setState(4);
|
||||
npc.setDisplayEffect(4);
|
||||
return super.onSpellFinished(npc, player, skill);
|
||||
}
|
||||
|
||||
|
@ -268,7 +268,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI
|
||||
for (int j = 0; j < _regionsData[i].af_spawns.length; j++)
|
||||
{
|
||||
_regionsData[i].af_npcs[j] = addSpawn(ANNIHILATION_FURNACE, _regionsData[i].af_spawns[j][0], _regionsData[i].af_spawns[j][1], _regionsData[i].af_spawns[j][2], _regionsData[i].af_spawns[j][3], false, 0);
|
||||
_regionsData[i].af_npcs[j].setState(_regionsData[i].activeBuff);
|
||||
_regionsData[i].af_npcs[j].setDisplayEffect(_regionsData[i].activeBuff);
|
||||
}
|
||||
ZoneManager.getInstance().getZoneById(_regionsData[i].buff_zone, L2EffectZone.class).addSkill(ZONE_BUFFS[_regionsData[i].activeBuff], 1);
|
||||
}
|
||||
@ -311,7 +311,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI
|
||||
|
||||
for (L2Npc af : _regionsData[i].af_npcs)
|
||||
{
|
||||
af.setState(_regionsData[i].activeBuff);
|
||||
af.setDisplayEffect(_regionsData[i].activeBuff);
|
||||
}
|
||||
|
||||
L2EffectZone zone = ZoneManager.getInstance().getZoneById(_regionsData[i].buff_zone, L2EffectZone.class);
|
||||
|
@ -639,7 +639,7 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
{
|
||||
String type = st.nextToken();
|
||||
int diplayeffect = Integer.parseInt(type);
|
||||
npc.setState(diplayeffect);
|
||||
npc.setDisplayEffect(diplayeffect);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -302,9 +302,9 @@ public final class CavernOfThePirateCaptain extends AbstractInstance
|
||||
{
|
||||
case "BURN_BLUE":
|
||||
{
|
||||
if (npc.isState(0))
|
||||
if (npc.getDisplayEffect() == 0)
|
||||
{
|
||||
npc.setState(1); // Burning
|
||||
npc.setDisplayEffect(1); // Burning
|
||||
startQuestTimer("BURN_BLUE2", 3000, npc, player);
|
||||
if (world._blueFounded == 4)
|
||||
{
|
||||
@ -315,27 +315,27 @@ public final class CavernOfThePirateCaptain extends AbstractInstance
|
||||
}
|
||||
case "BURN_BLUE2":
|
||||
{
|
||||
if (npc.isState(1)) // Burning
|
||||
if (npc.getDisplayEffect() == 1) // Burning
|
||||
{
|
||||
npc.setState(3); // Blue glow
|
||||
npc.setDisplayEffect(3); // Blue glow
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "BURN_RED":
|
||||
{
|
||||
if (npc.isState(0))
|
||||
if (npc.getDisplayEffect() == 0)
|
||||
{
|
||||
npc.setState(1); // Burning
|
||||
npc.setDisplayEffect(1); // Burning
|
||||
startQuestTimer("BURN_RED2", 3000, npc, player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "BURN_RED2":
|
||||
{
|
||||
if (npc.isState(1)) // Burning
|
||||
if (npc.getDisplayEffect() == 1) // Burning
|
||||
{
|
||||
final int room = getRoomByCandle(npc);
|
||||
npc.setState(2); // Red glow
|
||||
npc.setDisplayEffect(2); // Red glow
|
||||
manageScreenMsg(world, NpcStringId.THE_CANDLES_CAN_LEAD_YOU_TO_ZAKEN_DESTROY_HIM);
|
||||
spawnNpc(world._is83 ? DOLL_BLADER_83 : DOLL_BLADER_60, room, player, world);
|
||||
spawnNpc(world._is83 ? VALE_MASTER_83 : VALE_MASTER_60, room, player, world);
|
||||
|
@ -504,7 +504,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
|
||||
{
|
||||
final L2Attackable knight = (L2Attackable) addSpawn((world.isHardCore ? KNIGHT_HARD : KNIGHT_EASY), loc, false, 0, false, world.getInstanceId());
|
||||
knight.disableCoreAI(true);
|
||||
knight.setState(1);
|
||||
knight.setDisplayEffect(1);
|
||||
knight.getSpawn().setLocation(loc);
|
||||
world.spawnedMobs.add(knight);
|
||||
startQuestTimer("ICE_RUPTURE", getRandom(2, 5) * 1000, knight, null);
|
||||
@ -525,7 +525,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
|
||||
knight.getVariables().set("SPAWNED_NPC", npc);
|
||||
knight.disableCoreAI(true);
|
||||
knight.setIsImmobilized(true);
|
||||
knight.setState(1);
|
||||
knight.setDisplayEffect(1);
|
||||
knight.getSpawn().setLocation(loc);
|
||||
world.spawnedMobs.add(knight);
|
||||
|
||||
@ -540,7 +540,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
|
||||
{
|
||||
final Location loc = new Location(MIDDLE_POINT.getX() + getRandom(-1000, 1000), MIDDLE_POINT.getY() + getRandom(-1000, 1000), MIDDLE_POINT.getZ());
|
||||
final L2Attackable glacier = (L2Attackable) addSpawn(GLACIER, loc, false, 0, false, world.getInstanceId());
|
||||
glacier.setState(1);
|
||||
glacier.setDisplayEffect(1);
|
||||
glacier.disableCoreAI(true);
|
||||
glacier.setIsImmobilized(true);
|
||||
world.spawnedMobs.add(glacier);
|
||||
@ -554,7 +554,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
|
||||
{
|
||||
npc.disableCoreAI(false);
|
||||
npc.setIsImmobilized(false);
|
||||
npc.setState(2);
|
||||
npc.setDisplayEffect(2);
|
||||
manageRandomAttack(world, (L2Attackable) npc);
|
||||
}
|
||||
break;
|
||||
@ -566,7 +566,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
|
||||
}
|
||||
case "CHANGE_STATE":
|
||||
{
|
||||
npc.setState(2);
|
||||
npc.setDisplayEffect(2);
|
||||
startQuestTimer("CAST_SKILL", 20000, npc, null);
|
||||
break;
|
||||
}
|
||||
@ -582,7 +582,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
|
||||
}
|
||||
case "SUICIDE":
|
||||
{
|
||||
npc.setState(3);
|
||||
npc.setDisplayEffect(3);
|
||||
npc.setIsMortal(true);
|
||||
npc.doDie(null);
|
||||
break;
|
||||
@ -989,7 +989,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
|
||||
manageRandomAttack(world, (L2Attackable) npc);
|
||||
npc.disableCoreAI(false);
|
||||
npc.setIsImmobilized(false);
|
||||
npc.setState(2);
|
||||
npc.setDisplayEffect(2);
|
||||
cancelQuestTimer("ICE_RUPTURE", npc, null);
|
||||
}
|
||||
break;
|
||||
|
@ -254,7 +254,7 @@ public final class LabyrinthOfBelis extends AbstractInstance
|
||||
case "room_3":
|
||||
{
|
||||
world.setStatus(7);
|
||||
world.generator.setState(1);
|
||||
world.generator.setDisplayEffect(1);
|
||||
final L2ZoneType dmgZone = ZoneManager.getInstance().getZoneById(DAMAGE_ZONE_ID);
|
||||
if (dmgZone != null)
|
||||
{
|
||||
|
@ -210,7 +210,7 @@ public final class Q10294_SevenSignsToTheMonasteryOfSilence extends Quest
|
||||
case "RIGHT_BOOK1":
|
||||
{
|
||||
qs.set("good1", "1");
|
||||
npc.setState(1);
|
||||
npc.setDisplayEffect(1);
|
||||
startQuestTimer("SPAWN_MOBS", 22000, npc, player);
|
||||
htmltext = "32821-02.html";
|
||||
if (hasCheckedAllRightBooks(qs))
|
||||
@ -222,7 +222,7 @@ public final class Q10294_SevenSignsToTheMonasteryOfSilence extends Quest
|
||||
case "RIGHT_BOOK2":
|
||||
{
|
||||
qs.set("good2", "1");
|
||||
npc.setState(1);
|
||||
npc.setDisplayEffect(1);
|
||||
npc.setTarget(player);
|
||||
npc.doCast(VAMPIRIC_RAGE.getSkill());
|
||||
htmltext = "32821-02.html";
|
||||
@ -235,7 +235,7 @@ public final class Q10294_SevenSignsToTheMonasteryOfSilence extends Quest
|
||||
case "RIGHT_BOOK3":
|
||||
{
|
||||
qs.set("good3", "1");
|
||||
npc.setState(1);
|
||||
npc.setDisplayEffect(1);
|
||||
final L2Npc jude = addSpawn(JUDE_VAN_ETINA, 85783, -253471, -8320, 65, false, 0, false, player.getInstanceId());
|
||||
jude.setTarget(player);
|
||||
jude.doCast(RESIST_HOLY.getSkill());
|
||||
@ -249,7 +249,7 @@ public final class Q10294_SevenSignsToTheMonasteryOfSilence extends Quest
|
||||
case "RIGHT_BOOK4":
|
||||
{
|
||||
qs.set("good4", "1");
|
||||
npc.setState(1);
|
||||
npc.setDisplayEffect(1);
|
||||
final L2Npc solina = addSpawn(SOLINAS_EVIL_THOUGHTS, 85793, -247581, -8320, 0, false, 0, false, player.getInstanceId());
|
||||
solina.setTarget(player);
|
||||
solina.doCast(RESIST_HOLY.getSkill());
|
||||
|
@ -141,7 +141,7 @@ public class L2Npc extends L2Character
|
||||
|
||||
private int _soulshotamount = 0;
|
||||
private int _spiritshotamount = 0;
|
||||
private int _state = 0;
|
||||
private int _displayEffect = 0;
|
||||
|
||||
private int _shotsMask = 0;
|
||||
private int _killingBlowWeaponId;
|
||||
@ -1423,23 +1423,18 @@ public class L2Npc extends L2Character
|
||||
return getTemplate().getAIType();
|
||||
}
|
||||
|
||||
public void setState(int state)
|
||||
public void setDisplayEffect(int val)
|
||||
{
|
||||
if (state != _state)
|
||||
if (val != _displayEffect)
|
||||
{
|
||||
_state = state;
|
||||
broadcastPacket(new ExChangeNpcState(getObjectId(), state));
|
||||
_displayEffect = val;
|
||||
broadcastPacket(new ExChangeNpcState(getObjectId(), val));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isState(int state)
|
||||
public int getDisplayEffect()
|
||||
{
|
||||
return _state == state;
|
||||
}
|
||||
|
||||
public int getState()
|
||||
{
|
||||
return _state;
|
||||
return _displayEffect;
|
||||
}
|
||||
|
||||
public int getColorEffect()
|
||||
|
@ -89,7 +89,7 @@ public class NpcInfo extends AbstractMaskPacket<NpcInfoType>
|
||||
addComponentType(NpcInfoType.TEAM);
|
||||
}
|
||||
|
||||
if (npc.getState() > 0)
|
||||
if (npc.getDisplayEffect() > 0)
|
||||
{
|
||||
addComponentType(NpcInfoType.DISPLAY_EFFECT);
|
||||
}
|
||||
@ -327,7 +327,7 @@ public class NpcInfo extends AbstractMaskPacket<NpcInfoType>
|
||||
}
|
||||
if (containsMask(NpcInfoType.DISPLAY_EFFECT))
|
||||
{
|
||||
writeD(_npc.getState());
|
||||
writeD(_npc.getDisplayEffect());
|
||||
}
|
||||
if (containsMask(NpcInfoType.TRANSFORMATION))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user