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

Для умных скриптеров

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

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

 

Я хочу сделать фарм зону, где с моба будет падать фарм только для тех, кто одет в классик шмот..

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


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

Посмотри ограничение на дроп если персонаж выше моба на 9 лвлов, ну и добавь туда проверку по типу if itemisequipped.rhand.getitemid == айди шмотки

Ну это просто набросок, может сделать можно проще,я хз

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


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

Посмотри ограничение на дроп если персонаж выше моба на 9 лвлов, ну и добавь туда проверку по типу if itemisequipped.rhand.getitemid == айди шмотки

Ну это просто набросок, может сделать можно проще,я хз

Подскажи, как файл называется, где редактировать?

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


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

mega_shok  не успел

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

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


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

Проблема не решена, подскажите как сделать..

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


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

а почему просто не написать скрипт который будет с определенного моба дропать шмотки только если на персонаже не одеты шмотки с ID выше определенного уровня

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


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

а почему просто не написать скрипт который будет с определенного моба дропать шмотки только если на персонаже не одеты шмотки с ID выше определенного уровня

Я думаю это и является решением проблемы, даже без исходников.. Но вот каким образом мне это сделать, хотя бы какой-то примерчик..

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


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

Я думаю это и является решением проблемы, даже без исходников.. Но вот каким образом мне это сделать, хотя бы какой-то примерчик..

есть много примеров скриптов где за убийство РБ например дается нублесс или хиро ну или прем, сделай на этом примере, потом добавь проверку и все

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


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

ну что бы подсказать, наверно надо знать какие исходники юзаете

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


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

ну что бы подсказать, наверно надо знать какие исходники юзаете

Прошу прощения, Lucera 2.0

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


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

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

С функциями плохова-то у меня, подскажите какой функцией проверить какие предметы надеты

 

 

 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.catssoftware.gameserver.listener.actor.OnDeathListener;
import ru.catssoftware.gameserver.model.L2Character;
import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;
import ru.catssoftware.gameserver.model.listeners.CharListenerList;
 
public class AddDrop
{
public static int MONSTER_FARM_ID = 27101;
private static int[] FARM_ID_COIN = { 9209, 5};
 
private static Logger _log = LoggerFactory.getLogger(AddDrop.class);
 
public static void main(String... arg)
{
CharListenerList.addGlobal(new OnDeathListenerImpl());
_log.info("Mass drop from custom RB loaded.");
}
 
private static class OnDeathListenerImpl implements OnDeathListener
{
@Override
public void onDeath(L2Character actor, L2Character killer)
{
if (!actor.isNpc() || actor.getNpc().getNpcId() != MONSTER_FARM_ID)
return;
 
if (killer == null || killer.getPlayer() == null)
return;
 
L2PcInstance player = killer.getPlayer();
 
player.addItem("DropCoin", FARM_ID_COIN[0], FARM_ID_COIN[1], actor, true);
}
}
}
Изменено пользователем Kst

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


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

Спасибо всем, сам додумался..

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


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

Выложите пример для обшего обозрения, всётаки люди вам пытались помоч

 

Спасибо всем, сам додумался..

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

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


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

Выложите пример для обшего обозрения, всётаки люди вам пытались помоч

 

таким изначально не надо помогать, не выложит он не фига :rofl:

  • Upvote 1

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


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

таким изначально не надо помогать, не выложит он не фига :rofl:

Не надо наговаривать на людей.. Меня не было дома, не следил за темой.

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


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

Выложите пример для обшего обозрения, всётаки люди вам пытались помоч

Конечно, держи сделал на примере AddDrop Lucera от ro0tt

package ro0tt;
 
 
import ru.catssoftware.gameserver.listener.actor.OnDeathListener;
import ru.catssoftware.gameserver.model.L2Character;
import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;
import ru.catssoftware.gameserver.model.listeners.CharListenerList;
import ru.catssoftware.gameserver.model.L2ItemInstance;
import ru.catssoftware.tools.random.Rnd;
 
public class AddDrop
{
private static int[] INV_ITEM_WEAPON = {25700,25707}; // Оружие
private static int[] INV_ITEM_SHIELD = {25708,25714}; // Щиты
private static int[] INV_ITEM_ARMOR_BLACK = {25800,25812}; // Шмот BLACK
private static int[] INV_ITEM_ARMOR_CRISTAL = {25825,25837}; // Шмот CRISTAL
private static int[] INV_ITEM_TATTOO = {25821,25823}; // Тату (Кроме дон тату)
private static int[] INV_ITEM_WINGS = {25814,25820}; // Крылья/Флаги
private static int[] INV_ITEM_ACCESSORIES = {25838,25839}; // Маска
 
private static int MONSTER_FARM_ID = 27101;
private static int FARM_ID_COIN = 9209;
private static int[] FARM_COUNT = {5,6}; // Рандом выпадения (От и До)
 
 
public static void main(String... arg)
{
CharListenerList.addGlobal(new OnDeathListenerImpl());
}
 
private static class OnDeathListenerImpl implements OnDeathListener
{
@Override
public void onDeath(L2Character actor, L2Character killer)
{
if (!actor.isNpc() || actor.getNpc().getNpcId() != MONSTER_FARM_ID)
return;
 
if (killer == null || killer.getPlayer() == null)
return;
for (L2ItemInstance itemDrop : killer.getInventory().getItems())
{
if ((itemDrop.getItemId()  >= INV_ITEM_WEAPON[0] && itemDrop.getItemId() <= INV_ITEM_WEAPON[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_SHIELD[0] && itemDrop.getItemId() <= INV_ITEM_SHIELD[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_ARMOR_BLACK[0] && itemDrop.getItemId() <= INV_ITEM_ARMOR_BLACK[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_ARMOR_CRISTAL[0] && itemDrop.getItemId() <= INV_ITEM_ARMOR_CRISTAL[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_TATTOO[0] && itemDrop.getItemId() <= INV_ITEM_TATTOO[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_WINGS[0] && itemDrop.getItemId() <= INV_ITEM_WINGS[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_ACCESSORIES[0] && itemDrop.getItemId() <= INV_ITEM_ACCESSORIES[1]))
if (itemDrop.isEquipped())
return;
}
 
 
L2PcInstance player = killer.getPlayer();
 
int counts = FARM_COUNT[0] + Rnd.get(FARM_COUNT[0]-FARM_COUNT[1]);
player.addItem("DropCoin", FARM_ID_COIN, counts, actor, true);
}
}
}
Изменено пользователем Kst

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


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

Спасибо всем, сам додумался..

Выложи скриптик, пожалуйста  :help:

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


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

Выложи скриптик, пожалуйста  :help:

Вон же выше скинул

  • Upvote 1

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


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

 

Конечно, держи сделал на примере AddDrop Lucera от ro0tt

package ro0tt;
 
 
import ru.catssoftware.gameserver.listener.actor.OnDeathListener;
import ru.catssoftware.gameserver.model.L2Character;
import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;
import ru.catssoftware.gameserver.model.listeners.CharListenerList;
import ru.catssoftware.gameserver.model.L2ItemInstance;
import ru.catssoftware.tools.random.Rnd;
 
public class AddDrop
{
private static int[] INV_ITEM_WEAPON = {25700,25707}; // Оружие
private static int[] INV_ITEM_SHIELD = {25708,25714}; // Щиты
private static int[] INV_ITEM_ARMOR_BLACK = {25800,25812}; // Шмот BLACK
private static int[] INV_ITEM_ARMOR_CRISTAL = {25825,25837}; // Шмот CRISTAL
private static int[] INV_ITEM_TATTOO = {25821,25823}; // Тату (Кроме дон тату)
private static int[] INV_ITEM_WINGS = {25814,25820}; // Крылья/Флаги
private static int[] INV_ITEM_ACCESSORIES = {25838,25839}; // Маска
 
private static int MONSTER_FARM_ID = 27101;
private static int FARM_ID_COIN = 9209;
private static int[] FARM_COUNT = {5,6}; // Рандом выпадения (От и До)
 
 
public static void main(String... arg)
{
CharListenerList.addGlobal(new OnDeathListenerImpl());
}
 
private static class OnDeathListenerImpl implements OnDeathListener
{
@Override
public void onDeath(L2Character actor, L2Character killer)
{
if (!actor.isNpc() || actor.getNpc().getNpcId() != MONSTER_FARM_ID)
return;
 
if (killer == null || killer.getPlayer() == null)
return;
for (L2ItemInstance itemDrop : killer.getInventory().getItems())
{
if ((itemDrop.getItemId()  >= INV_ITEM_WEAPON[0] && itemDrop.getItemId() <= INV_ITEM_WEAPON[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_SHIELD[0] && itemDrop.getItemId() <= INV_ITEM_SHIELD[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_ARMOR_BLACK[0] && itemDrop.getItemId() <= INV_ITEM_ARMOR_BLACK[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_ARMOR_CRISTAL[0] && itemDrop.getItemId() <= INV_ITEM_ARMOR_CRISTAL[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_TATTOO[0] && itemDrop.getItemId() <= INV_ITEM_TATTOO[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_WINGS[0] && itemDrop.getItemId() <= INV_ITEM_WINGS[1]) ||
(itemDrop.getItemId()  >= INV_ITEM_ACCESSORIES[0] && itemDrop.getItemId() <= INV_ITEM_ACCESSORIES[1]))
if (itemDrop.isEquipped())
return;
}
 
 
L2PcInstance player = killer.getPlayer();
 
int counts = FARM_COUNT[0] + Rnd.get(FARM_COUNT[0]-FARM_COUNT[1]);
player.addItem("DropCoin", FARM_ID_COIN, counts, actor, true);
}
}
}

пот It.su пойдет ?

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


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

пот It.su пойдет ?

Не знаю даже, думаю что да.. Попробуй

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


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

Не знаю даже, думаю что да.. Попробуй

Ок как буду дома затестю

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


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

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

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

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

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

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

Войти

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

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

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

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

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