Перейти к содержанию
Авторизация  
lotos

Дроп Прямо В Сумку

Рекомендуемые сообщения

Добрый вечер!

У меня возникла проблемка.

У меня дропаются вещи НЕ в сумку, а на пол.

Кто знает команду, чтобы поменять дроп в сумку ??

Буду очень благодарен.

Скрипт на Java

    private static final void dropItem(L2NpcInstance mob, L2PcInstance player)
   {
       final int npcId = mob.getNpcId();
       final int chance = Rnd.get(100);
       for (int i = 0; i < DROPLIST.length; i++)
       {
           int[] drop = DROPLIST[i];
           if (npcId == drop[0])
           {
               if (chance < drop[2] && contains(CHRONO_LIST,player.getActiveWeaponItem().getItemId()))
               {
                   if(drop[1] > 20000)
                       ((L2MonsterInstance)mob).dropItem(player, drop[1], 2);
                   else
                       ((L2MonsterInstance)mob).dropItem(player, drop[1], Rnd.get(1, 3));
                   continue;
               }
           }
           if (npcId < drop[0])
               return; // not found
       }
   }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может через st.giveItems как то замутить ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в конфигах ищи !

Я пишу свой скрипт.

Тут не в конфигах дело )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столько людей тему просмотрело, НО никто не ответил..

Может я не правильно вопрос задал ??

Или что-то не так написал тут ??

Может не в ту тему написал или что ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

public void doAutoLoot(L2Attackable target, L2Attackable.RewardItem item)
{
if(isInParty())
{
getParty().distributeItem(this, item, false, target);
}
else if(item.getItemId() == 57)
{
addAdena("AutoLoot", item.getCount(), target, true);
}
else
{
addItem("AutoLoot", item.getItemId(), item.getCount(), target, true);
}
}

Простейший пример

Не забывай про конфиг файл и т.д.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

public void doAutoLoot(L2Attackable target, L2Attackable.RewardItem item)
{
if(isInParty())
{
getParty().distributeItem(this, item, false, target);
}
else if(item.getItemId() == 57)
{
addAdena("AutoLoot", item.getCount(), target, true);
}
else
{
addItem("AutoLoot", item.getItemId(), item.getCount(), target, true);
}
}

Простейший пример

Не забывай про конфиг файл и т.д.

Спасибо конечно, НО как мне присобачить автолут к моему скрипту ?))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо конечно, НО как мне присобачить автолут к моему скрипту ?))

Сделай вывод, что бы твой скрипт использовал похожий кусок кода.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделай вывод, что бы твой скрипт использовал похожий кусок кода.

Жестко отвечаешь ))

Все понял как пустить функцию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чьи исходники?

PW soft

Я пишу что-то вроде квеста.

Сделал уже все, НО дроп падает на пол, хотя на сервере стоит автолут.

Изменено пользователем lotos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
    private static final void dropItem(L2NpcInstance mob, L2PcInstance player)
    {
		    final int npcId = mob.getNpcId();
		    final int chance = Rnd.get(100);
		    for (int i = 0; i < DROPLIST.length; i++)
		    {
				    int[] drop = DROPLIST[i];
				    if (npcId == drop[0])
				    {
						    if (chance < drop[2] && contains(CHRONO_LIST,player.getActiveWeaponItem().getItemId()))
						    {
								    if(drop[1] > 20000)
										    player.getInventory().addItem("Quest", drop[1], 2, player, true);
								    else
										    player.getInventory().addItem("Quest", drop[1], Rnd.get(1, 3), player, true);
								    continue;
						    }
				    }
				    if (npcId < drop[0])
						    return; // not found
		    }
    }

Изменено пользователем xINVIZIBLx
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное спасибо!

Сейчас проверю на деле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я конечно нищеброд в Java, но разве можно сравнивать ID нпц с 1-й элементом дропа? Или [0] - ID npc, [1] - ItemID, [2] - Chance?

 

if (npcId == drop[0])
{

И в DROPLIST получается 1-й элемент это ID итема, а 2-й элемент это шанс? Для куска:

chance < drop[2]

Изменено пользователем Main
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я конечно нищеброд в Java, но разве можно сравнивать ID нпц с 1-й элементом дропа? Или [0] - ID npc, [1] - ItemID, [2] - Chanse?

 

if (npcId == drop[0])
{

И в DROPLIST получается 1-й элемент это ID итема, а 2-й элемент это шанс? Для куска:

chance < drop[2]

Или [0] - ID npc, [1] - ItemID, [2] - Chanse?

Да, именно так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блин.. Он чего-то выпендривается на "addItem"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
----------
1. ERROR in \SquashEvent.java (at line 178)
 player.getInventory().addItem("Quest", drop[1], Rnd.get(drop[3], drop[4]
), player, true);
						 ^^^^^^^
The method addItem(String, int, int, L2PcInstance, L2Object) in the type PcInven
tory is not applicable for the arguments (String, int, int, L2PcInstance, boolea
n)
----------
2. ERROR in \SquashEvent.java (at line 180)
 player.getInventory().addItem(player, drop[1], Rnd.get(drop[3], drop[4])
, player, true);
						 ^^^^^^^
The method addItem(String, int, int, L2PcInstance, L2Object) in the type PcInven
tory is not applicable for the arguments (L2PcInstance, int, int, L2PcInstance,
boolean)
----------
2 problems (2 errors)The method addItem(java.lang.String, int, int, net.sf.l2j.g
ameserver.model.actor.instance.L2PcInstance, net.sf.l2j.gameserver.model.L2Objec
t) in the type net.sf.l2j.gameserver.model.PcInventory is not applicable for the
arguments (java.lang.String, int, int, net.sf.l2j.gameserver.model.actor.instan
ce.L2PcInstance, boolean)
The method addItem(java.lang.String, int, int, net.sf.l2j.gameserver.model.actor
.instance.L2PcInstance, net.sf.l2j.gameserver.model.L2Object) in the type net.sf
.l2j.gameserver.model.PcInventory is not applicable for the arguments (net.sf.l2
j.gameserver.model.actor.instance.L2PcInstance, int, int, net.sf.l2j.gameserver.
model.actor.instance.L2PcInstance, boolean)
Failed executing script: D:\Lineage 2 PROJECT inter\PWSOFT\gameserver\data\scrip
ts\quests\SquashEvent\SquashEvent.java. See SquashEvent.java.error.log for detai
ls.
----------

Изменено пользователем lotos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я скинул прямо из консоля, так как в файле SquashEvent.java.error.log

Лежит это:

Error on: D:\Lineage 2 PROJECT inter\PWSOFT\gameserver\data\scripts\quests\SquashEvent\SquashEvent.java.error.log

Line: -1 - Column: -1

 

compilation failed

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
private static final void dropItem(L2NpcInstance mob, L2PcInstance player)
{
		    final int npcId = mob.getNpcId();
		    final int chance = Rnd.get(100);
		    for (int i = 0; i < DROPLIST.length; i++)
		    {
						    int[] drop = DROPLIST[i];
						    if (npcId == drop[0])
						    {
										    if (chance < drop[2] && contains(CHRONO_LIST,player.getActiveWeaponItem().getItemId()))
										    {
														    if(drop[1] > 20000)
																		    player.getInventory().addItem("Quest", drop[1], 2, player, null);
														    else
																		    player.getInventory().addItem("Quest", drop[1], Rnd.get(1, 3), player, null);
														    continue;
										    }
						    }
						    if (npcId < drop[0])
										    return; // not found
		    }
}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо!

Все запустилось без ошибок, НО почему-то дроп вообще пропал..

Видимо просто надо другой дроп написать..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

chance < drop[2]

Ну если судить по шансам Lineage 2 то там 100<1000000 всегда будет вроде как. Могу ошибатся.

Изменено пользователем Main
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо!

Все запустилось без ошибок, НО почему-то дроп вообще пропал..

Видимо просто надо другой дроп написать..

Значит ошибка вот тут: contains(CHRONO_LIST,player.getActiveWeaponItem().getItemId()

Даже не ошибка, а оружие которым ты убиваешь моба не из списка CHRONO_LIST (я так думаю).

Изменено пользователем Main
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...