root/trunk/AE-go_GameServer/data/scripts/system/handlers/quest/ascension/_2008Ascension.java
| 1508 | 1514 | ||
|---|---|---|---|
37 | import com.aionemu.gameserver.questEngine.model.QuestEnv; | 37 | import com.aionemu.gameserver.questEngine.model.QuestEnv; |
38 | import com.aionemu.gameserver.questEngine.model.QuestState; | 38 | import com.aionemu.gameserver.questEngine.model.QuestState; |
39 | import com.aionemu.gameserver.questEngine.model.QuestStatus; | 39 | import com.aionemu.gameserver.questEngine.model.QuestStatus; |
40 | import com.aionemu.gameserver.services.InstanceService; | ||
40 | import com.aionemu.gameserver.services.ItemService; | 41 | import com.aionemu.gameserver.services.ItemService; |
41 | import com.aionemu.gameserver.services.TeleportService; | 42 | import com.aionemu.gameserver.services.TeleportService; |
42 | import com.aionemu.gameserver.utils.PacketSendUtility; | 43 | import com.aionemu.gameserver.utils.PacketSendUtility; |
... | ... | ||
59 | TeleportService teleportService; | 60 | TeleportService teleportService; |
60 | @Inject | 61 | @Inject |
61 | ItemService itemService; | 62 | ItemService itemService; |
63 | @Inject | ||
64 | InstanceService instanceService; | ||
62 | 65 | ||
63 | public _2008Ascension() | 66 | public _2008Ascension() |
64 | { | 67 | { |
... | ... | ||
192 | updateQuestStatus(player, qs); | 195 | updateQuestStatus(player, qs); |
193 | PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 0)); | 196 | PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 0)); |
194 | // Create instance | 197 | // Create instance |
195 | WorldMapInstance newInstance = player.getPosition().getWorld().getNextAvailableInstance(320010000); | 198 | WorldMapInstance newInstance = instanceService.getNextAvailableInstance(320010000, 60 * 20); |
196 | newInstance.setDestroyTime(60 * 20); // 20 min | 199 | instanceService.registerPlayerWithInstance(newInstance, player); |
197 | teleportService.teleportTo(player, 320010000, newInstance.getInstanceId(), 457.65f, 426.8f, 230.4f, 0); | 200 | teleportService.teleportTo(player, 320010000, newInstance.getInstanceId(), 457.65f, 426.8f, 230.4f, 0); |
198 | return true; | 201 | return true; |
199 | } | 202 | } |
... | ... | ||
365 | public boolean onEnterWorldEvent(QuestEnv env) | 368 | public boolean onEnterWorldEvent(QuestEnv env) |
366 | { | 369 | { |
367 | Player player = env.getPlayer(); | 370 | Player player = env.getPlayer(); |
368 | int instanceId = player.getInstanceId(); | ||
369 | QuestState qs = player.getQuestStateList().getQuestState(questId); | 371 | QuestState qs = player.getQuestStateList().getQuestState(questId); |
370 | if(qs != null && qs.getStatus() == QuestStatus.START) | 372 | if(qs != null && qs.getStatus() == QuestStatus.START) |
371 | { | 373 | { |
372 | int var = qs.getQuestVars().getQuestVars(); | 374 | int var = qs.getQuestVars().getQuestVars(); |
373 | if(var == 5 || (var >= 50 && var <= 55) || var == 99) | 375 | if(var == 5 || (var >= 50 && var <= 55) || var == 99) |
374 | { | 376 | { |
375 | WorldMap worldMap = world.getWorldMap(320010000); | 377 | if(player.getWorldId() != 320010000) |
376 | int id = -1; | ||
377 | if (worldMap != null) | ||
378 | id = worldMap.getWorldMapScriptInstanceIdByPlyerObjId(player.getObjectId()); | ||
379 | if(id == -1 || player.getWorldId() != 320010000) | ||
380 | { | 378 | { |
381 | qs.setQuestVar(4); | 379 | qs.setQuestVar(4); |
382 | updateQuestStatus(player, qs); | 380 | updateQuestStatus(player, qs); |
383 | PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(SystemMessageId.QUEST_FAILED_$1, DataManager.QUEST_DATA.getQuestById(questId).getName())); | 381 | PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(SystemMessageId.QUEST_FAILED_$1, DataManager.QUEST_DATA.getQuestById(questId).getName())); |
384 | teleportService.teleportTo(player, 220010000, 1, 378.9f, 1895.39f, 330.0f, 1000); | ||
385 | } | 382 | } |
386 | else if(id != instanceId) | ||
387 | teleportService.changeChannel(player, id-1); | ||
388 | } | 383 | } |
389 | } | 384 | } |
390 | return false; | 385 | return false; |
Download diff