Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   randomplayerfromparty (https://forum.zone-game.info/showthread.php?t=42270)

Enjoooy 03.05.2017 00:28

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
Суть в том, как вычислять рандомного человека из пати?

Mangol 03.05.2017 04:06

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()); Готовый рандомный игрок из пати(Ну конечно лидера тоже может захватить)

Enjoooy 03.05.2017 08:15

Re: randomplayerfromparty
 
Так и должно быть вместе с лидером. Спасибо, попробую вечером.

Enjoooy 03.05.2017 23:02

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
Сделал так, как то совсем некорректно работает.

Mangol 04.05.2017 00:16

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

Зачем цикл ? Если нужно выбрать лишь одного игрока.

Enjoooy 04.05.2017 00:23

Re: randomplayerfromparty
 
Цитата:

Сообщение от Mangol (Сообщение 425950)
for(Player partyMember : party.getPartyMembers())
{

Зачем цикл ? Если нужно выбрать лишь одного игрока.

Как оно сейчас работает, при убийстве награда всей группе, это из-за цикла?

Mangol 04.05.2017 00:25

Re: randomplayerfromparty
 
Цитата:

Сообщение от Enjoooy (Сообщение 425952)
Как оно сейчас работает, при убийстве награда всей группе, это из-за цикла?

Всё верно. Только не всей пати, а то кол-во раз ищет рандомного игрока и выдаем ему награду сколько людей в пати.


Текущее время: 19:18. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot