Leon911 5 Опубликовано 3 декабря, 2011 Всем здрасте кто щас на форуме и читает ето.у меня есть вопрос к знающим людям,ето на щёт сундуков с точами,как сделать-то чтоб они различались где плохой(Chest)и хароший (Box)сборка у меня от фрозенов,я уже всё перепробывал и патчи и в базе названия менял сундуки тупо спавнятся под одним и тем ИД,есть у меня чувство что ето в ядре всё заключается,подскажите кто знает чего делать-то,вот что я нашол но ето оно или нет незнаю. /* */ package com.l2jfrozen.gameserver.model.actor.instance; /* */ /* */ import com.l2jfrozen.gameserver.datatables.SkillTable; /* */ import com.l2jfrozen.gameserver.datatables.sql.NpcTable; /* */ import com.l2jfrozen.gameserver.model.L2Character; /* */ import com.l2jfrozen.gameserver.model.L2Skill; /* */ import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser; /* */ import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage; /* */ import com.l2jfrozen.gameserver.templates.L2NpcTemplate; /* */ import com.l2jfrozen.util.random.Rnd; /* */ /* */ public final class L2ChestInstance extends L2MonsterInstance /* */ { /* */ private volatile boolean _isInteracted; /* */ private volatile boolean _specialDrop; /* */ /* */ public L2ChestInstance(int objectId, L2NpcTemplate template) /* */ { /* 42 */ super(objectId, template); /* 43 */ this._isInteracted = false; /* 44 */ this._specialDrop = false; /* */ } /* */ /* */ public void onSpawn() /* */ { /* 50 */ super.onSpawn(); /* 51 */ this._isInteracted = false; /* 52 */ this._specialDrop = false; /* 53 */ setMustRewardExpSp(true); /* */ } /* */ /* */ public synchronized boolean isInteracted() /* */ { /* 58 */ return this._isInteracted; /* */ } /* */ /* */ public synchronized void setInteracted() /* */ { /* 63 */ this._isInteracted = true; /* */ } /* */ /* */ public synchronized boolean isSpecialDrop() /* */ { /* 68 */ return this._specialDrop; /* */ } /* */ /* */ public synchronized void setSpecialDrop() /* */ { /* 73 */ this._specialDrop = true; /* */ } /* */ /* */ public void doItemDrop(L2NpcTemplate npcTemplate, L2Character lastAttacker) /* */ { /* 79 */ int id = getTemplate().npcId; /* */ /* 81 */ if (!this._specialDrop) /* */ { /* 83 */ if ((id >= 18265) && (id <= 18286)) /* */ { /* 85 */ id += 3536; /* */ } /* 87 */ else if ((id == 18287) || (id == 18288)) /* */ { /* 89 */ id = 21671; /* */ } /* 91 */ else if ((id == 18289) || (id == 18290)) /* */ { /* 93 */ id = 21694; /* */ } /* 95 */ else if ((id == 18291) || (id == 18292)) /* */ { /* 97 */ id = 21717; /* */ } /* 99 */ else if ((id == 18293) || (id == 18294)) /* */ { /* 101 */ id = 21740; /* */ } /* 103 */ else if ((id == 18295) || (id == 18296)) /* */ { /* 105 */ id = 21763; /* */ } /* 107 */ else if ((id == 18297) || (id == 18298)) /* */ { /* 109 */ id = 21786; /* */ } /* */ } /* */ /* 113 */ super.doItemDrop(NpcTable.getInstance().getTemplate(id), lastAttacker); /* */ } /* */ /* */ public void chestTrap(L2Character player) /* */ { /* 119 */ int trapSkillId = 0; /* 120 */ int rnd = Rnd.get(120); /* */ /* 122 */ if (getTemplate().level >= 61) /* */ { /* 124 */ if (rnd >= 90) /* */ { /* 126 */ trapSkillId = 4139; /* */ } /* 128 */ else if (rnd >= 50) /* */ { /* 130 */ trapSkillId = 4118; /* */ } /* 132 */ else if (rnd >= 20) /* */ { /* 134 */ trapSkillId = 1167; /* */ } /* */ else /* */ { /* 138 */ trapSkillId = 223; /* */ } /* */ } /* 141 */ else if (getTemplate().level >= 41) /* */ { /* 143 */ if (rnd >= 90) /* */ { /* 145 */ trapSkillId = 4139; /* */ } /* 147 */ else if (rnd >= 60) /* */ { /* 149 */ trapSkillId = 96; /* */ } /* 151 */ else if (rnd >= 20) /* */ { /* 153 */ trapSkillId = 1167; /* */ } /* */ else /* */ { /* 157 */ trapSkillId = 4118; /* */ } /* */ } /* 160 */ else if (getTemplate().level >= 21) /* */ { /* 162 */ if (rnd >= 80) /* */ { /* 164 */ trapSkillId = 4139; /* */ } /* 166 */ else if (rnd >= 50) /* */ { /* 168 */ trapSkillId = 96; /* */ } /* 170 */ else if (rnd >= 20) /* */ { /* 172 */ trapSkillId = 1167; /* */ } /* */ else /* */ { /* 176 */ trapSkillId = 129; /* */ } /* */ /* */ } /* 181 */ else if (rnd >= 80) /* */ { /* 183 */ trapSkillId = 4139; /* */ } /* 185 */ else if (rnd >= 50) /* */ { /* 187 */ trapSkillId = 96; /* */ } /* */ else /* */ { /* 191 */ trapSkillId = 129; /* */ } /* */ /* 195 */ player.sendPacket(SystemMessage.sendString("There was a trap!")); /* 196 */ handleCast(player, trapSkillId); /* */ } /* */ /* */ private boolean handleCast(L2Character player, int skillId) /* */ { /* 204 */ int skillLevel = 1; /* 205 */ byte lvl = getTemplate().level; /* 206 */ if ((lvl > 20) && (lvl <= 40)) /* */ { /* 208 */ skillLevel = 3; /* */ } /* 210 */ else if ((lvl > 40) && (lvl <= 60)) /* */ { /* 212 */ skillLevel = 5; /* */ } /* 214 */ else if (lvl > 60) /* */ { /* 216 */ skillLevel = 6; /* */ } /* */ /* 219 */ if ((player.isDead()) || (!player.isVisible()) || (!player.isInsideRadius(this, getDistanceToWatchObject(player), false, false))) { /* 220 */ return false; /* */ } /* 222 */ L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLevel); /* */ /* 224 */ if (player.getFirstEffect(skill) == null) /* */ { /* 226 */ skill.getEffects(this, player, false, false, false); /* 227 */ broadcastPacket(new MagicSkillUser(this, player, skill.getId(), skillLevel, skill.getHitTime(), 0)); /* 228 */ skill = null; /* 229 */ return true; /* */ } /* 231 */ return false; /* */ } /* */ /* */ public boolean isMovementDisabled() /* */ { /* 237 */ if (super.isMovementDisabled()) { /* 238 */ return true; /* */ } /* */ /* 241 */ return !isInteracted(); /* */ } /* */ /* */ public boolean hasRandomAnimation() /* */ { /* 249 */ return false; /* */ } /* */ } /* Location: D:\compile\l2jfrozen-core.jar * Qualified Name: com.l2jfrozen.gameserver.model.actor.instance.L2ChestInstance * JD-Core Version: 0.6.0 */ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BlackDream 321 Опубликовано 4 декабря, 2011 я точно не помню раньше была фишка чтото на подобее в патч кидали и различалося ...и притом на джаве такого не видел Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Leon911 5 Опубликовано 4 декабря, 2011 Патч тут непоможет,так как сундуки с одним и тем-же ид адресом,да и как ето на джаве небывает-вот возьми например сервак FRONT-X100.На джаве можно сделать но для етого нада ядро грызть-но вот что там грызть без понятия. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SHARK 39 Опубликовано 5 декабря, 2011 Разделение Трежер Чест и Бокс. Разделение Сундуков с сокровищами! Отыщи море своих заточек! =) ЖмаК - Всё что нашёл. (НЕ реклама) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты