Drop штраф - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Aion > Серверная часть

Важная информация

Серверная часть Обсуждения вопросов по установке и настройке эмулятора Aion-Emu, для совершенно новой и необыкновенно красивой игры - Aion.

Ответ
Опции темы
Непрочитано 26.03.2010, 17:36   #11
Пользователь

По умолчанию Re: Drop штраф

Нет я ничего не менял, просто скопировал кусок с расчетом из файла, он чуть ниже того что ты написал в прошлом сообщении.

Если я правильно понял, то вначале идет описание откуда что берется, путь к sql и конкретному ИД моба, дроп которого будет расчитываться.

Тут "DropItem dropItem = new DropItem(dropTemplate);" показывается конкретный итем откуда берется.

Тут "dropItem.calculateCount(player.getRates().getDrop Rate());" сама формула с учетом рэйтов.

Ну и помимо этого куча всяких условий, по типам дропа...Может я что-то не так понял, особо не разбирался еще. Но поидее нужно написать условие ограничения как сделано с опытом, и вставить сюда. Но дл начала нужно разобраться что значат все тутошние параметры: типа dropRegistrationMap, dropItem, droppedItems, и как они связаны...

Добавлено через 2 минуты
droppedItems - наверное перечень всех итемов выпавших с моба, или вообще все итемы которые могут выпать...

DropItem - конкретный итем из числа итемов в droppedItems


Последний раз редактировалось celler; 26.03.2010 в 17:38. Причина: Добавлено сообщение
celler вне форума Ответить с цитированием
Непрочитано 26.03.2010, 17:55   #12
Аватар для Shema
Герой

Автор темы (Топик Стартер) Re: Drop штраф

Скинь свой DropService.java. Я сравню. А то чет скрипты разные в нем. Не пойму.


Нашел старую ревизию и DropService.java такой же как у тебя, а в новой другой почему то, без определения квестовых вещей и в новой сборке квестовые предметы падают как простой дроп.
Вложения
Тип файла: txt DropService.txt (8.2 Кб, 2 просмотров)

Последний раз редактировалось Shema; 26.03.2010 в 18:47.
Shema вне форума Ответить с цитированием
Непрочитано 26.03.2010, 19:41   #13
Пользователь

По умолчанию Re: Drop штраф

Все правильно, у меня ревизия старая...со вчерашнего дня раза 2 минимум ковыряли уники этот файлик)) Прийдется новый смотреть))
celler вне форума Ответить с цитированием
Непрочитано 26.03.2010, 19:46   #14
Аватар для Shema
Герой

Автор темы (Топик Стартер) Re: Drop штраф

Только они чет ни то наковыряли
В старом была формула с квестовым дропом а в новой нет. вот он и сыпется. Я на всякие пожарные сохранил старый. Можно исправить если че. )
Shema вне форума Ответить с цитированием
Непрочитано 29.03.2010, 23:39   #15
Аватар для Shema
Герой

Автор темы (Топик Стартер) Re: Drop штраф

Есть скрипт /**
* When player clicks on dead NPC to request drop list
*
* @param player
* @param npcId
*/
public void requestDropList(Player player, int npcId)
{
if(player == null || !dropRegistrationMap.containsKey(npcId))
return;

DropNpc dropNpc = dropRegistrationMap.get(npcId);
if(!dropNpc.containsKey(player.getObjectId()))
{
PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.STR_LOOT_NO_RIGHT());
return;
}

if(dropNpc.isBeingLooted())
{
PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.STR_LOOT_FAIL_ONLOOTING());
return;
}

dropNpc.setBeingLooted(player.getObjectId());

Set<DropItem> dropItems = currentDropMap.get(npcId);

if(dropItems == null)
{
dropItems = Collections.emptySet();
}

PacketSendUtility.sendPacket(player, new SM_LOOT_ITEMLIST(npcId, dropItems, player));
// PacketSendUtility.sendPacket(player, new SM_LOOT_STATUS(npcId, size > 0 ? size - 1 : size));
PacketSendUtility.sendPacket(player, new SM_LOOT_STATUS(npcId, 2));
player.unsetState(CreatureState.ACTIVE);
player.setState(CreatureState.LOOTING);
PacketSendUtility.broadcastPacket(player, new SM_EMOTION(player, 35, 0, npcId), true);

// if dropitems is empty, resend droplist for close loot
if(dropItems.size() == 0)
resendDropList(player, npcId, dropItems);
}

Когда нажимаешь на мертвого моба появляется дроп лист.
Есть скрипт с разницей в лвл:
public enum DRRewardEnum
{
/**
* int DrFallout = DrRewardEnum.DrRewardFrom(targetLevel - playerLevel);
*
*/

MINUS_5(-5, 1),
MINUS_4(-4, 1),
MINUS_3(-3, 1),
MINUS_2(-2, 1),
MINUS_1(-1, 1),
ZERO(0, 1),
PLUS_1(1, 1),
PLUS_2(2, 1),
PLUS_3(3, 1),
PLUS_4(4, 1),
PLUS_5(5, 1);


private int drRewardOut;

private int levelDifference;

private DRRewardEnum(int levelDifference,int drRewardOut)

{
this.levelDifference = levelDifference;
this.drRewardOut = drRewardOut;

}

public int rewardOut()

{
return drRewardOut;
}


public static int drRewardFrom(int levelDifference)
{
if(levelDifference < MINUS_5.levelDifference)
{
return MINUS_5.drRewardOut;
}
if(levelDifference > PLUS_5.levelDifference)
{
return PLUS_5.drRewardOut;
}

for(DRRewardEnum drReward : values())
{
if(drReward.levelDifference == levelDifference)
{
return drReward.drRewardOut;
}
}

throw new NoSuchElementException("DR reward for such level difference was not found");
}
}
Нужно его как то вписать в скрипт первый, что б он мог сравнивать. Если лвл игрока больше или меньше 5, то действие с открытием дроп листа не происходит, а если значения лвл равны, тем что в диапазоне, то происходит, что написано в первом скрипте. Тобишь открытие дроплиста. Помогите в правильном написание в ява.))
Shema вне форума Ответить с цитированием
Непрочитано 12.04.2010, 14:56   #16
Аватар для Shema
Герой

Автор темы (Топик Стартер) Re: Drop штраф

Если кому нужно скрипт на дроп штраф:

Index: src/com/aionemu/gameserver/services/DropService.java

for(DropTemplate dropTemplate : templates)
{
DropItem dropItem = new DropItem(dropTemplate);
dropItem.calculateCount(player.getRates().getDropR ate());

if(npc.getLevel()+5 > player.getLevel())
dropItem.calculateCount(player.getRates().getDropR ate());
else
dropItem.calculateCount(0);

if(dropItem.getCount() > 0)
{
dropItem.setIndex(index++);
droppedItems.add(dropItem);
}
Патч исправлю и залью.)
Разницу в лвл можете писать какая нужна

Последний раз редактировалось Shema; 12.04.2010 в 16:31.
Shema вне форума Ответить с цитированием
Непрочитано 10.05.2010, 02:14   #17
Аватар для spain
Пользователь

Exclamation Re: Drop штраф

Цитата:
Сообщение от Shema Посмотреть сообщение
Если кому нужно скрипт на дроп штраф:

Index: src/com/aionemu/gameserver/services/DropService.java

for(DropTemplate dropTemplate : templates)
{
DropItem dropItem = new DropItem(dropTemplate);
dropItem.calculateCount(player.getRates().getDropR ate());

if(npc.getLevel()+5 > player.getLevel())
dropItem.calculateCount(player.getRates().getDropR ate());
else
dropItem.calculateCount(0);

if(dropItem.getCount() > 0)
{
dropItem.setIndex(index++);
droppedItems.add(dropItem);
}
Патч исправлю и залью.)
Разницу в лвл можете писать какая нужна
При компиляции выдает ошибки , выложи патчик плз.
spain вне форума Ответить с цитированием
Непрочитано 10.05.2010, 12:14   #18
Аватар для Shema
Герой

Автор темы (Топик Стартер) Re: Drop штраф

Замени с 90 по 114 строки Index: src/com/aionemu/gameserver/services/DropService.java
И все заработает.

public void registerDrop(Npc npc, Player player)
{
int npcUniqueId = npc.getObjectId();
int npcTemplateId = npc.getObjectTemplate().getTemplateId();

Set<DropItem> droppedItems = new HashSet<DropItem>();
Set<DropTemplate> templates = dropList.getDropsFor(npcTemplateId);
int index = 1;
if(templates != null)
{
for(DropTemplate dropTemplate : templates)
{
DropItem dropItem = new DropItem(dropTemplate);
if(npc.getLevel()+5 > player.getLevel())
dropItem.calculateCount(player.getRates().getDropR ate());
else
dropItem.calculateCount(0);

if(dropItem.getCount() > 0)
{
dropItem.setIndex(index++);
droppedItems.add(dropItem);
}

if(npc.getLevel()-5 < player.getLevel())
dropItem.calculateCount(player.getRates().getDropR ate());
else
dropItem.calculateCount(0);

if(dropItem.getCount() < 0)
{
dropItem.setIndex(index++);
droppedItems.add(dropItem);
}
}
}

questService.getQuestDrop(droppedItems, index, npc, player);
currentDropMap.put(npcUniqueId, droppedItems);


Если чел на 5 лвл больше или меньше моба, то ему дроп не будет падать.
Вложения
Тип файла: zip DropService.zip (2.5 Кб, 6 просмотров)
Shema вне форума Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drop & Spawn new rev. dahtict Серверная часть 112 15.04.2010 00:48
Штраф по лвл Shema Серверная часть 4 09.03.2010 11:48
Drop+Монстры. warman4ik Рынок / Marketplace 25 16.02.2010 20:10
Drop item Gracia Shot Работа со скриптами 3 13.10.2009 08:50
Spawn, Npc, Drop Kamael reptily Работа со скриптами 1 06.06.2008 09:36


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 06:22. Часовой пояс GMT +3.

Вверх