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

Проверки нубл рб

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

Ребят очень прошу помощи

Сборка Lucera2.

В общем вот есть скрипт. Нужно сделать проверку что бы не давало итем если игрок меньше саба 75 лвла то итем не даст с нубл рб.

 

package ro0tt;


/*
 * @author Ro0TT
 * @date 25.04.2014
 */


import org.apache.commons.lang3.ArrayUtils;
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 DropItemNooblRb
{
private static int CUSTOM_RB[] = { 25325};
private static int[] ITEM = { 7679, 1};




private static Logger _log = LoggerFactory.getLogger(DropItemNooblRb.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() || !ArrayUtils.contains(CUSTOM_RB, actor.getNpc().getNpcId()))
return;


if (killer == null || killer.getPlayer() == null)
return;


L2PcInstance player = killer.getPlayer();


if (player.isInParty())
{
for (L2PcInstance member : player.getParty().getPartyMembers())
member.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
}
else
player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
}
}}

 

 

С меня полные плюсы..

За ранее огромное спасибо.

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

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


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

Обновил. Не тот скрипт скинул.

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


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

if(player.isSubClassActive() && player.getLevel() >= 75)
{
// выдача итема
}
else
player.sendMessage("Only for sub-class 75+ lvl!");
Изменено пользователем Calyps0
  • Upvote 1

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


Ссылка на сообщение
Поделиться на другие сайты
if(player.isSubClassActive() && player.getLevel() >= 75) 
{ 
// выдача итема
}
else
    player.sendMessage("Only for sub-class 75+ lvl!");

А что надо писать в строке "Выдача итема" ? Можно сразу в скрипт добавить? А то я только накосячу.

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


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

package ro0tt;




/*
* @author Ro0TT
* @date 25.04.2014
*/


import org.apache.commons.lang3.ArrayUtils;
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 DropItemNooblRb
{
private static int CUSTOM_RB[] = { 25325};
private static int[] ITEM = { 7679, 1};




private static Logger _log = LoggerFactory.getLogger(DropItemNooblRb.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() || !ArrayUtils.contains(CUSTOM_RB, actor.getNpc().getNpcId()))
return;


if (killer == null || killer.getPlayer() == null)
return;


L2PcInstance player = killer.getPlayer();


if (player.isInParty())
{
for (L2PcInstance member : player.getParty().getPartyMembers())
addItem(member);
}
else
addItem(player);


}

public void addItem(L2PcInstance player)
{
if(player.isSubClassActive() && player.getLevel() >= 75)
{
player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
}
else
player.sendMessage("Only for sub-class 75+ lvl!");
}

}}

 

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

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


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

 

Странно но нету дропа и в гс ошибок никаких нет. Хотя перс на сабе а итем не дает

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


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

Странно но нету дропа и в гс ошибок никаких нет. Хотя перс на сабе а итем не дает

а сообщение Only for sub-class 75+ lvl! Приходит? а уровень саба 75+?

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


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

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

!сдается мне что  скрипт не грузится. выложите скрипт на файл-обменник  посмотрю.

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


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

та же проблема

зачем вам какая разница то если для квеста нублеса нужен 75 лвл какакой и если нет 3 части квеста то посох не должен падать  

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


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

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

!сдается мне что  скрипт не грузится. выложите скрипт на файл-обменник  посмотрю.

Я скинул полный скрипт сюда.

Заменил на тот что ты дал и ошибок нет и ничего не выдает хотя персонаж имеет саб 80 лвла...

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


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

Я скинул полный скрипт сюда.

Заменил на тот что ты дал и ошибок нет и ничего не выдает хотя персонаж имеет саб 80 лвла...

Старый работает?

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


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


/*
 * @author Ro0TT
 * @date 25.04.2014
 */


import org.apache.commons.lang3.ArrayUtils;
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 DropItemNooblRb
{
	private static int CUSTOM_RB[] = { 25325};
	private static int[] ITEM = { 7679, 1};
	private static Logger _log = LoggerFactory.getLogger(DropItemNooblRb.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() || !ArrayUtils.contains(CUSTOM_RB, actor.getNpc().getNpcId()))
			return;

			if (killer == null || killer.getPlayer() == null)
			return;

			L2PcInstance player = killer.getPlayer();

			if (player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				for (L2PcInstance member : player.getParty().getPartyMembers())
					member.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			} else if(!player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			} else {
				player.sendMessage("Only for sub-class 75+ lvl!");
			}
		}
	}
}

Вот так будет работать.

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

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


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

Вот так будет работать.

 

угу должен. я чет пропусти L2Character actor .

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


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


/*
 * @author Ro0TT
 * @date 25.04.2014
 */


import org.apache.commons.lang3.ArrayUtils;
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 DropItemNooblRb
{
	private static int CUSTOM_RB[] = { 25325};
	private static int[] ITEM = { 7679, 1};
	private static Logger _log = LoggerFactory.getLogger(DropItemNooblRb.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() || !ArrayUtils.contains(CUSTOM_RB, actor.getNpc().getNpcId()))
			return;

			if (killer == null || killer.getPlayer() == null)
			return;

			L2PcInstance player = killer.getPlayer();

			if (player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				for (L2PcInstance member : player.getParty().getPartyMembers())
					member.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			} else if(!player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			} else {
				player.sendMessage("Only for sub-class 75+ lvl!");
			}
		}
	}
}

Вот так будет работать.

 

Персонаж 70 лвл не саб и дало итем...капец...

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

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


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


/*
 * @author Ro0TT
 * @date 25.04.2014
 */


import org.apache.commons.lang3.ArrayUtils;
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 DropItemNooblRb
{
	private static int CUSTOM_RB[] = { 25325};
	private static int[] ITEM = { 7679, 1};
	private static Logger _log = LoggerFactory.getLogger(DropItemNooblRb.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() || !ArrayUtils.contains(CUSTOM_RB, actor.getNpc().getNpcId()))
			return;

			if (killer == null || killer.getPlayer() == null)
			return;

			L2PcInstance player = killer.getPlayer();

			if (player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				for (L2PcInstance member : player.getParty().getPartyMembers())
					member.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			} else if(!player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			} else {
				player.sendMessage("Only for sub-class 75+ lvl!");
			}
		}
	}
}

Вот так будет работать.

 

Поржал :D

 

else if(!player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			}

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


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

 

Поржал :D

 

else if(!player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			}

Так скинул бы уже сразу готовый скриптом...

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


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

Вам дают подсказки и помогают. Если вы не хотите думать и делать сами - не стоит лезть в это дело. 

  • Upvote 1

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


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

Так скинул бы уже сразу готовый скриптом...

в общем так последний мой пост в данной теме.

тот скрипт который я скинул там нужно добавить (L2Character actor ) чет я как то промахнулся. и странно что не было ошибок.

addItem(member); на addItem(member,actor);

 

addItem(player); на addItem(player,actor);

 

public void addItem(L2PcInstance player) на public void addItem(L2PcInstance player,L2Character actor)

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


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

 

Поржал :D

 

else if(!player.isInParty() && player.isSubClassActive() && player.getLevel() >= 75)
			{
				player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true);
			}

 

Я знал я знал, что кто-то заметит  :D

 

 

Так скинул бы уже сразу готовый скриптом...

 

Исправьте логику в скрипте и вуаля, всё будет работать.

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


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

Я знал я знал, что кто-то заметит  :D

 

 

 

Исправьте логику в скрипте и вуаля, всё будет работать.

Нет логики) Прошу подсказать )

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


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

в общем так последний мой пост в данной теме.

тот скрипт который я скинул там нужно добавить (L2Character actor ) чет я как то промахнулся. и странно что не было ошибок.

addItem(member); на addItem(member,actor);

 

addItem(player); на addItem(player,actor);

 

public void addItem(L2PcInstance player) на public void addItem(L2PcInstance player,L2Character actor)

Что, простите?)

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


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

Да вот странно что небыло ошибок...

Выложили бы уже норм целый скрипт и все небыло бы лишних вопросов..

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


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

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

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

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

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

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

Войти

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

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

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

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

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