root/trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/clientpackets/CM_DIALOG_SELECT.java
| 967 | 993 | ||
|---|---|---|---|
21 | import com.aionemu.gameserver.model.gameobjects.Npc; | 21 | import com.aionemu.gameserver.model.gameobjects.Npc; |
22 | import com.aionemu.gameserver.model.gameobjects.player.Player; | 22 | import com.aionemu.gameserver.model.gameobjects.player.Player; |
23 | import com.aionemu.gameserver.model.gameobjects.player.RequestResponseHandler; | 23 | import com.aionemu.gameserver.model.gameobjects.player.RequestResponseHandler; |
24 | import com.aionemu.gameserver.model.gameobjects.player.StorageType; | ||
24 | import com.aionemu.gameserver.network.aion.AionClientPacket; | 25 | import com.aionemu.gameserver.network.aion.AionClientPacket; |
25 | import com.aionemu.gameserver.network.aion.serverpackets.SM_DIALOG_WINDOW; | 26 | import com.aionemu.gameserver.network.aion.serverpackets.SM_DIALOG_WINDOW; |
26 | import com.aionemu.gameserver.network.aion.serverpackets.SM_MESSAGE; | 27 | import com.aionemu.gameserver.network.aion.serverpackets.SM_MESSAGE; |
... | ... | ||
29 | import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE; | 30 | import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE; |
30 | import com.aionemu.gameserver.network.aion.serverpackets.SM_TELEPORT_MAP; | 31 | import com.aionemu.gameserver.network.aion.serverpackets.SM_TELEPORT_MAP; |
31 | import com.aionemu.gameserver.network.aion.serverpackets.SM_TRADELIST; | 32 | import com.aionemu.gameserver.network.aion.serverpackets.SM_TRADELIST; |
33 | import com.aionemu.gameserver.network.aion.serverpackets.SM_WAREHOUSE_INFO; | ||
32 | import com.aionemu.gameserver.questEngine.QuestEngine; | 34 | import com.aionemu.gameserver.questEngine.QuestEngine; |
33 | import com.aionemu.gameserver.questEngine.model.QuestEnv; | 35 | import com.aionemu.gameserver.questEngine.model.QuestEnv; |
34 | import com.aionemu.gameserver.services.ClassChangeService; | 36 | import com.aionemu.gameserver.services.ClassChangeService; |
35 | import com.aionemu.gameserver.services.CubeExpandService; | 37 | import com.aionemu.gameserver.services.CubeExpandService; |
36 | import com.aionemu.gameserver.utils.PacketSendUtility; | 38 | import com.aionemu.gameserver.utils.PacketSendUtility; |
39 | import com.aionemu.gameserver.utils.MathUtil; | ||
37 | import com.google.inject.Inject; | 40 | import com.google.inject.Inject; |
38 | 41 | ||
39 | /** | 42 | /** |
... | ... | ||
86 | final Player player = getConnection().getActivePlayer(); | 89 | final Player player = getConnection().getActivePlayer(); |
87 | if(player == null) | 90 | if(player == null) |
88 | return; | 91 | return; |
89 | | 92 | |
90 | if(targetObjectId == 0) | 93 | if(targetObjectId == 0) |
91 | { | 94 | { |
92 | if (QuestEngine.getInstance().onDialog(new QuestEnv(null, player, questId, dialogId))) | 95 | if (QuestEngine.getInstance().onDialog(new QuestEnv(null, player, questId, dialogId))) |
... | ... | ||
118 | break; | 121 | break; |
119 | case 20: | 122 | case 20: |
120 | //warehouse | 123 | //warehouse |
121 | sendPacket(new SM_DIALOG_WINDOW(targetObjectId, 26)); | 124 | if(MathUtil.isInRange(npc, player, 10)) // voiding exploit with sending fake client dialog_select packet |
125 | { | ||
126 | sendPacket(new SM_DIALOG_WINDOW(targetObjectId, 26)); | ||
127 | sendPacket(new SM_WAREHOUSE_INFO(player.getStorage(StorageType.REGULAR_WAREHOUSE.getId()).getStorageItems(), StorageType.REGULAR_WAREHOUSE.getId())); | ||
128 | sendPacket(new SM_WAREHOUSE_INFO(null, StorageType.REGULAR_WAREHOUSE.getId())); // strange retail way of sending warehouse packets | ||
129 | sendPacket(new SM_WAREHOUSE_INFO(player.getStorage(StorageType.ACCOUNT_WAREHOUSE.getId()).getUnquippedItems(), StorageType.ACCOUNT_WAREHOUSE.getId())); | ||
130 | sendPacket(new SM_WAREHOUSE_INFO(null, StorageType.ACCOUNT_WAREHOUSE.getId())); | ||
131 | } | ||
122 | break; | 132 | break; |
123 | case 27: | 133 | case 27: |
124 | //Consign trade?? npc karinerk, koorunerk | 134 | //Consign trade?? npc karinerk, koorunerk |
... | ... | ||
141 | } | 151 | } |
142 | //TODO not enought kinah message | 152 | //TODO not enought kinah message |
143 | } | 153 | } |
144 | | 154 | |
145 | @Override | 155 | @Override |
146 | public void denyRequest(Creature requester, Player responder) | 156 | public void denyRequest(Creature requester, Player responder) |
147 | { | 157 | { |
... | ... | ||
173 | break; | 183 | break; |
174 | case 38: | 184 | case 38: |
175 | //flight and teleport | 185 | //flight and teleport |
176 | // if (player.getCommonData().isFlying() == true) | 186 | // if (player.getCommonData().isFlying() == true) |
177 | // { | 187 | // { |
178 | // PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300696)); | 188 | // PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300696)); |
179 | // return; | 189 | // return; |
180 | // } | 190 | // } |
181 | sendPacket(new SM_TELEPORT_MAP(player, targetObjectId)); | 191 | sendPacket(new SM_TELEPORT_MAP(player, targetObjectId)); |
182 | break; | 192 | break; |
183 | case 39: | 193 | case 39: |
Download diff