randomplayerfromparty - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 03.05.2017, 00:28   #1
Пользователь

Автор темы (Топик Стартер) randomplayerfromparty

Пытаюсь параллельно делать выдачу итема рандомному человеку итема, но битый час пытаюсь уже, мозг не работает уже..
Party party = ((Player) killer).getParty();
 
			if(party == null) {
				giveAdenaForPvp(pk);
				pk.setPvpKills(pk.getPvpKills() + 1);
			}
			else
			{
				List<Player> rewardedMembers = new ArrayList<Player>();
				for(Player partyMember : party.getPartyMembers())
				{
					if(partyMember.isDead() || !isInRangeZ(partyMember, Config.ALT_PARTY_DISTRIBUTION_RANGE))
						continue;
 
				}
			}
Code: Java
Суть в том, как вычислять рандомного человека из пати?
Enjoooy вне форума Ответить с цитированием
Непрочитано 03.05.2017, 04:06   #2

По умолчанию Re: randomplayerfromparty

https://docs.oracle.com/javase/7/doc...calRandom.html
https://docs.oracle.com/javase/7/doc...il/Random.html

Ну, а вообще. В оверах есть класс Rnd - так и называется.
Можно сделать вот так. Player rndPlayer = Rnd.get(party.getPartyMembers()); Готовый рандомный игрок из пати(Ну конечно лидера тоже может захватить)
__________________
Mangol вне форума Отправить сообщение для Mangol с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 03.05.2017, 08:15   #3
Пользователь

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

Так и должно быть вместе с лидером. Спасибо, попробую вечером.
Enjoooy вне форума Ответить с цитированием
Непрочитано 03.05.2017, 23:02   #4
Пользователь

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

Party party = ((Player) killer).getParty();
 
			if(party == null) {
				giveAdenaForPvp(pk);
				pk.setPvpKills(pk.getPvpKills() + 1);
			}
			else if(party != null)
			{
				List<Player> rewardedMembers = new ArrayList<Player>();
				for(Player partyMember : party.getPartyMembers())
				{
					Player rndPlayer = Rnd.get(party.getPartyMembers());
					if(rndPlayer.isDead() || !isInRangeZ(rndPlayer, Config.ALT_PARTY_DISTRIBUTION_RANGE))
						continue;
 
					giveAdenaForPvp(rndPlayer);
					rndPlayer.setPvpKills(rndPlayer.getPvpKills() + 1);
 
				}
			}
Code: Java
Сделал так, как то совсем некорректно работает.
Enjoooy вне форума Ответить с цитированием
Непрочитано 04.05.2017, 00:16   #5

По умолчанию Re: randomplayerfromparty

for(Player partyMember : party.getPartyMembers())
{

Зачем цикл ? Если нужно выбрать лишь одного игрока.
__________________
Mangol вне форума Отправить сообщение для Mangol с помощью ICQ Ответить с цитированием
Непрочитано 04.05.2017, 00:23   #6
Пользователь

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

Цитата:
Сообщение от Mangol Посмотреть сообщение
for(Player partyMember : party.getPartyMembers())
{

Зачем цикл ? Если нужно выбрать лишь одного игрока.
Как оно сейчас работает, при убийстве награда всей группе, это из-за цикла?
Enjoooy вне форума Ответить с цитированием
Непрочитано 04.05.2017, 00:25   #7

По умолчанию Re: randomplayerfromparty

Цитата:
Сообщение от Enjoooy Посмотреть сообщение
Как оно сейчас работает, при убийстве награда всей группе, это из-за цикла?
Всё верно. Только не всей пати, а то кол-во раз ищет рандомного игрока и выдаем ему награду сколько людей в пати.
__________________
Mangol вне форума Отправить сообщение для Mangol с помощью ICQ Ответить с цитированием
Ответ


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

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

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

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


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

Вверх