Lineage Justice
Spells & Skills
Lookup and validate skills and spells.
|
SummonGreaterElement
|
MP:
|
20
|
HP:
|
0
|
Item:
|
40319
|
Amount:
|
4
|
Duration:
|
0
|
Skill Type:
|
Other
|
Delay:
|
0
|
Cast Invis:
|
No
|
Ignores CM:
|
No
|
Element:
|
None
|
Range:
|
N/A
|
Area:
|
N/A
|
Dmg Value:
|
0.0
|
Dmg Dice:
|
0
|
Dice Count:
|
0
|
Prob Value:
|
0
|
Prob Dice:
|
0
|
Prob Max:
|
N/A
|
L1SkillUse Execution:
if (_skillId == LESSER_ELEMENTAL
|| _skillId == GREATER_ELEMENTAL) {
L1PcInstance pc = (L1PcInstance) cha;
int attr = pc.getElfAttr();
if (attr != 0) {
if (pc.getMap().isRecallPets() || pc.isGm()) {
int petcost = 0;
Object[] petlist = pc.getPetList().values()
.toArray();
for (Object pet : petlist) {
petcost += ((L1NpcInstance) pet)
.getPetcost();
}
if (petcost == 0) {
int summonid = 0;
int summons[];
if (_skillId == LESSER_ELEMENTAL) {
summons = new int[] { 45306, 45303,
45304, 45305 };
} else {
summons = new int[] { 81053, 81050,
81051, 81052 };
}
int npcattr = 1;
for (int i = 0; i < summons.length; i++) {
if (npcattr == attr) {
summonid = summons[i];
i = summons.length;
}
npcattr *= 2;
}
if (summonid == 0) {
RandomGenerator random = RandomGeneratorFactory
.getSharedRandom();
int k3 = random.nextInt(4);
summonid = summons[k3];
}
L1Npc npcTemp = NpcTable.getInstance()
.getTemplate(summonid);
L1SummonInstance summon = new L1SummonInstance(
npcTemp, pc);
summon.setPetcost(pc.getCha() + 7);
}
} else {
pc.sendPackets(new S_ServerMessage(79)); // Nothing happened.
}
}
}