[SKILLS]Illusiongate work 100% [CLOSED]
3 posters
Page 1 of 1
[SKILLS]Illusiongate work 100% [CLOSED]
Here is fix for Illusiongate.
Illusiongate.patch
Illusiongate.patch
AionChaos- Junior DP dev
- Messages : 3
Date d'inscription : 2010-08-10
Re: [SKILLS]Illusiongate work 100% [CLOSED]
thanks a lot i test the skill and if it work i move to the svn
ok skill work 100%
ok skill work 100%
Last edited by M@xx on Tue 31 Aug - 16:33; edited 1 time in total
Re: [SKILLS]Illusiongate work 100% [CLOSED]
post here no aion lighting
Bob razowski- Junior DP dev
- Messages : 4
Date d'inscription : 2010-07-30
illusion gates patch for aiongates [REV21]
- Code:
Index: AE-go_GameServer/data/static_data/skills/skill_templates.xml
===================================================================
--- AE-go_GameServer/data/static_data/skills/skill_templates.xml (revision 21)
+++ AE-go_GameServer/data/static_data/skills/skill_templates.xml (working copy)
@@ -23315,9 +23315,9 @@
<targetrange value="POINT" maxcount="1"/>
<targetrelation value="FRIEND"/>
</setproperties>
- <useconditions>
- <playermove allow="false"/>
- </useconditions>
+ <effects>
+ <summongroupgate time="60" npc_id="749017" e="1" />
+ </effects>
<actions>
<mpuse value="383" delta="11"/>
</actions>
@@ -23764,9 +23764,9 @@
<targetrange value="POINT" maxcount="1"/>
<targetrelation value="FRIEND"/>
</setproperties>
- <useconditions>
- <playermove allow="false"/>
- </useconditions>
+ <effects>
+ <summongroupgate time="60" npc_id="749083" e="1" />
+ </effects>
<actions>
<mpuse value="383" delta="11"/>
</actions>
Index: AE-go_GameServer/data/static_data/skills/skills.xsd
===================================================================
--- AE-go_GameServer/data/static_data/skills/skills.xsd (revision 21)
+++ AE-go_GameServer/data/static_data/skills/skills.xsd (working copy)
@@ -197,6 +197,8 @@
minOccurs="0" maxOccurs="1" />
<xs:element name="summontrap" type="SummonTrapEffect"
minOccurs="0" maxOccurs="1" />
+ <xs:element name="summongroupgate" type="SummonGroupGateEffect"
+ minOccurs="0" maxOccurs="1" />
<xs:element name="summonservant" type="SummonServantEffect"
minOccurs="0" maxOccurs="1" />
<xs:element name="skillatkdraininstant" type="SkillAtkDrainInstantEffect"
@@ -953,6 +955,14 @@
</xs:complexContent>
</xs:complexType>
+ <xs:complexType name="SummonGroupGateEffect">
+ <xs:complexContent>
+ <xs:extension base="SummonEffect">
+ <xs:attribute name="time" type="xs:int" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
<xs:complexType name="SummonServantEffect">
<xs:complexContent>
<xs:extension base="SummonEffect">
Index: AE-go_GameServer/src/com/aionemu/gameserver/controllers/GroupGateController.java
===================================================================
--- AE-go_GameServer/src/com/aionemu/gameserver/controllers/GroupGateController.java (revision 0)
+++ AE-go_GameServer/src/com/aionemu/gameserver/controllers/GroupGateController.java (revision 0)
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the requirements for the Illusion Gate Skill.
+ */
+ package com.aionemu.gameserver.controllers;
+
+
+ import com.aionemu.gameserver.model.gameobjects.Creature;
+ import com.aionemu.gameserver.model.gameobjects.GroupGate;
+ import com.aionemu.gameserver.model.gameobjects.player.Player;
+ import com.aionemu.gameserver.model.gameobjects.player.RequestResponseHandler;
+ import com.aionemu.gameserver.services.TeleportService;
+ import com.aionemu.gameserver.network.aion.serverpackets.SM_QUESTION_WINDOW;
+ import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE;
+ import com.aionemu.gameserver.utils.PacketSendUtility;
+
+ /**
+ * @author
+ */
+ public class GroupGateController extends NpcController
+ {
+
+ @Override
+ public void onDialogRequest(Player player)
+ {
+ final GroupGate groupgate = (GroupGate)this.getOwner();
+ boolean isMember = false;
+
+ if(player.getObjectId() == ((Player)groupgate.getCreator()).getObjectId()) isMember = true;
+
+ if (player.isInGroup())
+ {
+ for(Player member : player.getPlayerGroup().getMembers())
+ {
+ if (member.getObjectId() == ((Player)groupgate.getCreator()).getObjectId()) {
+ isMember = true;
+ break;
+ }
+ }
+ }
+
+ if (isMember)
+ {
+ RequestResponseHandler responseHandler = new RequestResponseHandler(groupgate) {
+
+ @Override
+ public void acceptRequest(Creature requester, Player responder)
+ {
+ switch(groupgate.getNpcId())
+ {
+ case 749017:
+ TeleportService.teleportTo(responder, 110010000, 1, 1444.9f, 1577.2f, 572.9f, 0);
+ break;
+ case 749083:
+ TeleportService.teleportTo(responder, 120010000, 1, 1657.5f, 1398.7f, 194.7f, 0);
+ break;
+ }
+ }
+
+ @Override
+ public void denyRequest(Creature requester, Player responder)
+ {
+ // Nothing Happens
+ }
+ };
+
+ boolean requested = player.getResponseRequester().putRequest(SM_QUESTION_WINDOW.STR_ASK_GROUP_GATE_DO_YOU_ACCEPT_MOVE, responseHandler);
+ if (requested)
+ {
+ PacketSendUtility.sendPacket(player, new SM_QUESTION_WINDOW(SM_QUESTION_WINDOW.STR_ASK_GROUP_GATE_DO_YOU_ACCEPT_MOVE, player.getObjectId()));
+ }
+ }
+ else
+ {
+ PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.STR_CANNOT_USE_MAGIC_PASSAGE);
+ }
+ }
+ }
\ No newline at end of file
Index: AE-go_GameServer/src/com/aionemu/gameserver/controllers/PlayerController.java
===================================================================
--- AE-go_GameServer/src/com/aionemu/gameserver/controllers/PlayerController.java (revision 21)
+++ AE-go_GameServer/src/com/aionemu/gameserver/controllers/PlayerController.java (working copy)
@@ -31,6 +31,7 @@
import com.aionemu.gameserver.model.gameobjects.Creature;
import com.aionemu.gameserver.model.gameobjects.Gatherable;
import com.aionemu.gameserver.model.gameobjects.Kisk;
+import com.aionemu.gameserver.model.gameobjects.GroupGate;
import com.aionemu.gameserver.model.gameobjects.Npc;
import com.aionemu.gameserver.model.gameobjects.StaticObject;
import com.aionemu.gameserver.model.gameobjects.Summon;
@@ -119,6 +120,11 @@
if (getOwner().getCommonData().getRace() == kisk.getOwnerRace())
PacketSendUtility.sendPacket(getOwner(), new SM_KISK_UPDATE(kisk));
}
+ else if (object instanceof GroupGate)
+ {
+ GroupGate groupgate = ((GroupGate) object);
+ PacketSendUtility.sendPacket(getOwner(), new SM_NPC_INFO(getOwner(), groupgate));
+ }
else if(object instanceof Npc)
{
boolean update = false;
Index: AE-go_GameServer/src/com/aionemu/gameserver/model/gameobjects/GroupGate.java
===================================================================
--- AE-go_GameServer/src/com/aionemu/gameserver/model/gameobjects/GroupGate.java (revision 0)
+++ AE-go_GameServer/src/com/aionemu/gameserver/model/gameobjects/GroupGate.java (revision 0)
@@ -0,0 +1,90 @@
+ /*
+ * This file is part of the requirements for the Illusion Gate Skill.
+ * Code References from ATracer's Trap.java of Aion-Unique
+ */
+ package com.aionemu.gameserver.model.gameobjects;
+
+ import com.aionemu.gameserver.controllers.NpcController;
+ import com.aionemu.gameserver.model.gameobjects.player.Player;
+ import com.aionemu.gameserver.model.templates.VisibleObjectTemplate;
+ import com.aionemu.gameserver.model.templates.spawn.SpawnTemplate;
+
+ /**
+ * @author LokiReborn
+ *
+ */
+ public class GroupGate extends Npc
+ {
+
+ /**
+ * Creator of this GroupGate.
+ */
+ private Creature creator;
+
+ /**
+ *
+ * @param objId
+ * @param controller
+ * @param spawnTemplate
+ * @param objectTemplate
+ */
+ public GroupGate(int objId, NpcController controller, SpawnTemplate spawnTemplate, VisibleObjectTemplate objectTemplate)
+ {
+ super(objId, controller, spawnTemplate, objectTemplate);
+ }
+
+ /**
+ * @return the creator
+ */
+ public Creature getCreator()
+ {
+ return creator;
+ }
+
+ /**
+ * @param creator the creator to set
+ */
+ public void setCreator(Creature creator)
+ {
+ this.creator = creator;
+ }
+
+ @Override
+ public byte getLevel()
+ {
+ return (1);
+ }
+
+ @Override
+ protected boolean isEnemyNpc(Npc visibleObject)
+ {
+ return this.creator.isEnemyNpc(visibleObject);
+ }
+
+ @Override
+ protected boolean isEnemyPlayer(Player visibleObject)
+ {
+ return this.creator.isEnemyPlayer(visibleObject);
+ }
+
+ /**
+ * @return NpcObjectType.GROUPGATE
+ */
+ @Override
+ public NpcObjectType getNpcObjectType()
+ {
+ return NpcObjectType.GROUPGATE;
+ }
+
+ @Override
+ public Creature getActingCreature()
+ {
+ return this.creator;
+ }
+
+ @Override
+ public Creature getMaster()
+ {
+ return this.creator;
+ }
+ }
\ No newline at end of file
Index: AE-go_GameServer/src/com/aionemu/gameserver/model/gameobjects/NpcObjectType.java
===================================================================
--- AE-go_GameServer/src/com/aionemu/gameserver/model/gameobjects/NpcObjectType.java (revision 21)
+++ AE-go_GameServer/src/com/aionemu/gameserver/model/gameobjects/NpcObjectType.java (working copy)
@@ -25,6 +25,7 @@
NORMAL(1),
SUMMON(2),
TRAP(32),
+ GROUPGATE(256),
SERVANT(1024);
private NpcObjectType(int id)
Index: AE-go_GameServer/src/com/aionemu/gameserver/network/aion/serverpackets/SM_NPC_INFO.java
===================================================================
--- AE-go_GameServer/src/com/aionemu/gameserver/network/aion/serverpackets/SM_NPC_INFO.java (revision 21)
+++ AE-go_GameServer/src/com/aionemu/gameserver/network/aion/serverpackets/SM_NPC_INFO.java (working copy)
@@ -21,6 +21,7 @@
import com.aionemu.gameserver.model.NpcType;
import com.aionemu.gameserver.model.gameobjects.Creature;
+import com.aionemu.gameserver.model.gameobjects.GroupGate;
import com.aionemu.gameserver.model.gameobjects.Kisk;
import com.aionemu.gameserver.model.gameobjects.Npc;
import com.aionemu.gameserver.model.gameobjects.Summon;
@@ -91,7 +92,28 @@
}
/**
- *
+ *
+ * @param player
+ * @param groupgate - the visible npc.
+ */
+ public SM_NPC_INFO(Player player, GroupGate groupgate)
+ {
+ this.npc = groupgate;
+ npcTypeId = (groupgate.isAggroFrom(player) ?
+ NpcType.ATTACKABLE.getId() : NpcType.NON_ATTACKABLE.getId());
+ npcTemplate = groupgate.getObjectTemplate();
+ npcId = groupgate.getNpcId();
+
+ Player owner = (Player)groupgate.getCreator();
+ if(owner != null)
+ {
+ masterObjId = owner.getObjectId();
+ masterName = owner.getName();
+ }
+ }
+
+ /**
+ *
* @param summon
*/
public SM_NPC_INFO(Summon summon)
Index: AE-go_GameServer/src/com/aionemu/gameserver/network/aion/serverpackets/SM_SYSTEM_MESSAGE.java
===================================================================
--- AE-go_GameServer/src/com/aionemu/gameserver/network/aion/serverpackets/SM_SYSTEM_MESSAGE.java (revision 21)
+++ AE-go_GameServer/src/com/aionemu/gameserver/network/aion/serverpackets/SM_SYSTEM_MESSAGE.java (working copy)
@@ -1383,7 +1383,7 @@
public static final SM_SYSTEM_MESSAGE STR_BINDSTONE_ALREADY_REGISTERED = new SM_SYSTEM_MESSAGE(1390161);
public static final SM_SYSTEM_MESSAGE STR_BINDSTONE_IS_ATTACKED = new SM_SYSTEM_MESSAGE(1390166);
public static final SM_SYSTEM_MESSAGE STR_CANNOT_REGISTER_BINDSTONE_FULL = new SM_SYSTEM_MESSAGE(1400247);
-
+ public static final SM_SYSTEM_MESSAGE STR_CANNOT_USE_MAGIC_PASSAGE = new SM_SYSTEM_MESSAGE(1300150);
/***
* fusion/break Weapons
* - Master,wylovech
Index: AE-go_GameServer/src/com/aionemu/gameserver/spawnengine/SpawnEngine.java
===================================================================
--- AE-go_GameServer/src/com/aionemu/gameserver/spawnengine/SpawnEngine.java (revision 21)
+++ AE-go_GameServer/src/com/aionemu/gameserver/spawnengine/SpawnEngine.java (working copy)
@@ -25,6 +25,7 @@
import com.aionemu.gameserver.controllers.FortressGeneralController;
import com.aionemu.gameserver.controllers.GatherableController;
import com.aionemu.gameserver.controllers.KiskController;
+import com.aionemu.gameserver.controllers.GroupGateController;
import com.aionemu.gameserver.controllers.MonsterController;
import com.aionemu.gameserver.controllers.NpcController;
import com.aionemu.gameserver.controllers.PortalController;
@@ -44,6 +45,7 @@
import com.aionemu.gameserver.model.gameobjects.Servant;
import com.aionemu.gameserver.model.gameobjects.Summon;
import com.aionemu.gameserver.model.gameobjects.Trap;
+import com.aionemu.gameserver.model.gameobjects.GroupGate;
import com.aionemu.gameserver.model.gameobjects.VisibleObject;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.model.templates.GatherableTemplate;
@@ -105,7 +107,7 @@
template = DataManager.GATHERABLE_DATA.getGatherableTemplate(objectId);
if(template == null)
return null;
- gatherableCounter++;
+ gatherableCounter;
}
else
// npc
@@ -113,7 +115,7 @@
template = npcData.getNpcTemplate(objectId);
if(template == null)
return null;
- npcCounter++;
+ npcCounter;
}
IDFactory iDFactory = IDFactory.getInstance();
if(template instanceof NpcTemplate)
@@ -207,11 +209,32 @@
/**
+ *
* @param spawn
* @param instanceIndex
* @param creator
* @return
*/
+ public GroupGate spawnGroupGate(SpawnTemplate spawn, int instanceIndex, Creature creator)
+ {
+ int objectId = spawn.getSpawnGroup().getNpcid();
+ NpcTemplate npcTemplate = DataManager.NPC_DATA.getNpcTemplate(objectId);
+ GroupGate groupgate = new GroupGate(IDFactory.getInstance().nextId(), new GroupGateController(), spawn,
+ npcTemplate);
+ groupgate.setKnownlist(new StaticObjectKnownList(groupgate));
+ groupgate.setEffectController(new EffectController(groupgate));
+ groupgate.setCreator(creator);
+ groupgate.getController().onRespawn();
+ bringIntoWorld(groupgate, spawn, instanceIndex);
+ return groupgate;
+ }
+
+ /**
+ * @param spawn
+ * @param instanceIndex
+ * @param creator
+ * @return
+ */
public Kisk spawnKisk(SpawnTemplate spawn, int instanceIndex, Player creator)
{
int npcId = spawn.getSpawnGroup().getNpcid();
@@ -268,7 +291,7 @@
SpawnTemplate spawn = createSpawnTemplate(worldId, npcId, x, y, z, heading, 0, 0);
NpcTemplate npcTemplate = DataManager.NPC_DATA.getNpcTemplate(npcId);
- byte level = (byte) (npcTemplate.getLevel() + skillLvl - 1);
+ byte level = (byte) (npcTemplate.getLevel() skillLvl - 1);
SummonStatsTemplate statsTemplate = DataManager.SUMMON_STATS_DATA.getSummonTemplate(npcId, level);
Summon summon = new Summon(IDFactory.getInstance().nextId(), new SummonController(), spawn,
npcTemplate, statsTemplate, level);
@@ -387,14 +410,14 @@
final int mapId = worldMapTemplate.getMapId();
int numberToSpawn = maxTwin > 0 ? maxTwin : 1;
- for(int i = 1; i <= numberToSpawn; i++)
+ for(int i = 1; i <= numberToSpawn; i)
{
spawnInstance(mapId, i);
}
}
- log.info("Loaded " + npcCounter + " npc spawns");
- log.info("Loaded " + gatherableCounter + " gatherable spawns");
+ log.info("Loaded " npcCounter " npc spawns");
+ log.info("Loaded " gatherableCounter " gatherable spawns");
RiftSpawnManager.startRiftPool();
}
@@ -419,11 +442,11 @@
if(spawnGroup.getHandler() == null)
{
int pool = spawnGroup.getPool();
- for(int i = 0; i < pool; i++)
+ for(int i = 0; i < pool; i)
{
spawnObject(spawnGroup.getNextAvailableTemplate(instanceIndex), instanceIndex);
- instanceSpawnCounter++;
+ instanceSpawnCounter;
}
}
else
@@ -440,7 +463,7 @@
}
}
}
- log.info("Spawned " + worldId + " [" + instanceIndex + "] : " + instanceSpawnCounter);
+ log.info("Spawned " worldId " [" instanceIndex "] : " instanceSpawnCounter);
}
@SuppressWarnings("synthetic-access")
Similar topics
» [CLOSED] Ring Fly time work now
» [SERVICES]stigmat work perfectly [CLOSED]
» [SKILLS] Blind Leap & Time and Space Jump 100%[CLOSED]
» server work on ours work
» illusiongate.patch
» [SERVICES]stigmat work perfectly [CLOSED]
» [SKILLS] Blind Leap & Time and Space Jump 100%[CLOSED]
» server work on ours work
» illusiongate.patch
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum