[Core] Дроп Итема
|
Surfacing | Дата: Воскресенье, 09.01.2011, 16:34 | Сообщение # 1 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Люди помогите исправить код, мне надо чтобы итем падал а на пол около убитого в PvP игрока, а получилось сделать только рядом с собой, как исправить подскажи плиз Сборка L2JServer Frey item.dropMe(null, getX(), getY(), getZ() );
загрузка наград ...
|
|
| |
|
Reventon | Дата: Воскресенье, 09.01.2011, 17:28 | Сообщение # 2 |
Группа: Постоянный
Сообщений: 523
Награды: 44
Репутация: 119
Статус: Offline
| Чесно говоря не понял вопрос, сформулируй более понятно.
Lineage Eternal
загрузка наград ...
|
|
| |
|
Surfacing | Дата: Воскресенье, 09.01.2011, 17:59 | Сообщение # 3 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Короче я пытаюсь сделать конфиг, чтобы при убийстве в PvP c убитого падал итем на землю около его, но не могу разобраться как написать чтобы падал на землю около него ток разобрался как сделать чтобы падал около меня. L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true); item.dropMe(null, getX(), getY(), getZ() );
загрузка наград ...
|
|
| |
|
Reventon | Дата: Воскресенье, 09.01.2011, 18:30 | Сообщение # 4 |
Группа: Постоянный
Сообщений: 523
Награды: 44
Репутация: 119
Статус: Offline
| Посмотри как сделано к примеру у мобов или РБ.
Lineage Eternal
загрузка наград ...
|
|
| |
|
Reventon | Дата: Воскресенье, 09.01.2011, 18:32 | Сообщение # 5 |
Группа: Постоянный
Сообщений: 523
Награды: 44
Репутация: 119
Статус: Offline
| Либо пример возьми с дропа вещей с ПК.
Lineage Eternal
загрузка наград ...
|
|
| |
|
Surfacing | Дата: Воскресенье, 09.01.2011, 18:46 | Сообщение # 6 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Пытался не получилось, вот дали item.dropMe(null, getOwner().getX(), getOwner().getY(), getOwner().getZ() ); И сказали добавить дельту по всем 3 осям а ХЗ как это сделать:) вот полный L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true); item.dropMe(null, getX(), getY(), getZ() );
загрузка наград ...
Сообщение отредактировал Surfacing - Воскресенье, 09.01.2011, 21:26 |
|
| |
|
Lestat | Дата: Воскресенье, 09.01.2011, 23:44 | Сообщение # 7 |
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
| Можешь попробовать так: L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true); int randDropLim = 70; int newX = getX() + Rnd.get(randDropLim * 2 + 1) - randDropLim; int newY = getY() + Rnd.get(randDropLim * 2 + 1) - randDropLim; item.dropMe(null, newX, newY, getZ() ); чем больше randDropLim - тем дальше вещь может упасть... такой код в L2Attackable юзают))
загрузка наград ...
|
|
| |
|
Surfacing | Дата: Воскресенье, 09.01.2011, 23:51 | Сообщение # 8 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Спасибо сейчас попробую
загрузка наград ...
|
|
| |
|
Surfacing | Дата: Понедельник, 10.01.2011, 00:02 | Сообщение # 9 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Появилась дистанция, но все равно итем падает около меня, а не Убитого
загрузка наград ...
|
|
| |
|
Surfacing | Дата: Понедельник, 10.01.2011, 00:05 | Сообщение # 10 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Вот мб поможет полный код Стандартный: Code /** * Increase the pvp kills count and send the info to the player * */ public void increasePvpKills(L2Character target) { if (target instanceof L2PcInstance && AntiFeedManager.getInstance().check(this, target)) { // Add karma to attacker and increase its PK counter setPvpKills(getPvpKills() + 1); // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); sendPacket(new ExBrExtraUserInfo(this));
} } Пытаюсь Сделать Code /** * Increase the pvp kills count and send the info to the player * */ public void increasePvpKills(L2Character target) { if (target instanceof L2PcInstance && AntiFeedManager.getInstance().check(this, target)) { // Add karma to attacker and increase its PK counter setPvpKills(getPvpKills() + 1); if (Config.ALLOW_PVP_REWARD) { int PvpRewardItemId = (Config.PVP_REWARD_ITEM_ID); int PvpRewardItemAmmount = (Config.PVP_REWARD_ITEM_AMMOUNT); L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true); int randDropLim = 70; int newX = getX() + Rnd.get(randDropLim * 2 + 1) - randDropLim; int newY = getY() + Rnd.get(randDropLim * 2 + 1) - randDropLim; item.dropMe(null, newX, newY, getZ() ); sendMessage("Вы получили награду за убийство в PVP."); // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); sendPacket(new ExBrExtraUserInfo(this));
} } }
загрузка наград ...
|
|
| |
|
Lestat | Дата: Понедельник, 10.01.2011, 02:02 | Сообщение # 11 |
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
| Попробуй Code /** * Increase the pvp kills count and send the info to the player * */ public void increasePvpKills(L2Character target) { if (target instanceof L2PcInstance && AntiFeedManager.getInstance().check(this, target)) { // Add karma to attacker and increase its PK counter setPvpKills(getPvpKills() + 1); if (Config.ALLOW_PVP_REWARD) { int PvpRewardItemId = (Config.PVP_REWARD_ITEM_ID); int PvpRewardItemAmmount = (Config.PVP_REWARD_ITEM_AMMOUNT); L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true); int randDropLim = 70; int newX = target.getX() + Rnd.get(randDropLim * 2 + 1) - randDropLim; int newY = target.getY() + Rnd.get(randDropLim * 2 + 1) - randDropLim; item.dropMe(null, newX, newY, target.getZ() ); sendMessage("Вы получили награду за убийство в PVP."); // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); sendPacket(new ExBrExtraUserInfo(this));
} } } Но мне кажется, что модифицировать L2PcInstance для каких-то локальных нужд - не очень хорошая идея 
загрузка наград ...
|
|
| |
|
Surfacing | Дата: Понедельник, 10.01.2011, 02:27 | Сообщение # 12 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Урааа пашет спасибо тебе БОЛЬШОЕ
загрузка наград ...
Сообщение отредактировал Surfacing - Понедельник, 10.01.2011, 02:29 |
|
| |
|
asasinn | Дата: Понедельник, 10.01.2011, 23:24 | Сообщение # 13 |
Группа: Заблокированные
Сообщений: 453
Награды: 49
Репутация: -10000
Статус: Offline
| НУ значит вопрос решон
загрузка наград ...
|
|
| |
|
Surfacing | Дата: Вторник, 18.01.2011, 23:16 | Сообщение # 14 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Вновь появилась проблема, как сделать чтобы при убийстве с 1 IP ПвП не давалось пробовал чёто не получилось
загрузка наград ...
Сообщение отредактировал Surfacing - Среда, 19.01.2011, 00:10 |
|
| |
|
Surfacing | Дата: Вторник, 18.01.2011, 23:47 | Сообщение # 15 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Посаветовали getClient().getConnection().getInetAddress().getHostAddress() Чёто не получилось
загрузка наград ...
Сообщение отредактировал Surfacing - Среда, 19.01.2011, 00:18 |
|
| |
|
Lestat | Дата: Четверг, 20.01.2011, 22:43 | Сообщение # 16 |
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
| как я понял, если у убитого и убийцы одинаковый ip?
загрузка наград ...
|
|
| |
|
Surfacing | Дата: Четверг, 20.01.2011, 22:49 | Сообщение # 17 |
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
| Quote (Lestat) как я понял, если у убитого и убийцы одинаковый ip? Именно так
загрузка наград ...
|
|
| |
|
Lestat | Дата: Четверг, 20.01.2011, 23:37 | Сообщение # 18 |
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
| попробуй так Code /** * Increase the pvp kills count and send the info to the player * */ public void increasePvpKills(L2Character target) { String playerHost = getClient().getConnection().getInetAddress().getHostAddress(); String targetHost = target.getActingPlayer().getClient().getConnection().getInetAddress().getHostAddress() ; if (target instanceof L2PcInstance && AntiFeedManager.getInstance().check(this, target) &&getClient().getConnection().getInetAddress().getHostAddress().equals(target.getActingPlayer().getClient().getConnection().getInetAddress().g etHostAddress())) { // Add karma to attacker and increase its PK counter setPvpKills(getPvpKills() + 1); if (Config.ALLOW_PVP_REWARD) { int PvpRewardItemId = (Config.PVP_REWARD_ITEM_ID); int PvpRewardItemAmmount = (Config.PVP_REWARD_ITEM_AMMOUNT); L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true); int randDropLim = 70; int newX = target.getX() + Rnd.get(randDropLim * 2 + 1) - randDropLim; int newY = target.getY() + Rnd.get(randDropLim * 2 + 1) - randDropLim; item.dropMe(null, newX, newY, target.getZ() ); sendMessage("Вы получили награду за убийство в PVP."); // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); sendPacket(new ExBrExtraUserInfo(this));
} } } но в таком случае у тебя не смогут нормально играть люди, которые выходят через один ip в инет... например, через прокси...
загрузка наград ...
|
|
| |
|
Lestat | Дата: Четверг, 20.01.2011, 23:40 | Сообщение # 19 |
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
| вместо Code &&getClient().getConnection().getInetAddress().getHostAddress().equals(target.getActingPlayer().getClient().getConnection().getInetAddress().g etHostAddress()) надо Code && !getClient().getConnection().getInetAddress().getHostAddress().equals(target.getActingPlayer().getClient().getConnection().getInetAddress(). g etHostAddress())
загрузка наград ...
|
|
| |
|
asasinn | Дата: Пятница, 21.01.2011, 16:12 | Сообщение # 20 |
Группа: Заблокированные
Сообщений: 453
Награды: 49
Репутация: -10000
Статус: Offline
| Ответ получен, тема закрыта
загрузка наград ...
|
|
| |