Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
randomplayerfromparty
#1
Пытаюсь параллельно делать выдачу итема рандомному человеку итема, но битый час пытаюсь уже, мозг не работает уже..
[SRC="java"]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;

}
}[/SRC]
Суть в том, как вычислять рандомного человека из пати?
Ответ
#2
https://docs.oracle.com/javase/7/docs/ap...andom.html
https://docs.oracle.com/javase/7/docs/ap...andom.html

Ну, а вообще. В оверах есть класс Rnd - так и называется.
Можно сделать вот так. Player rndPlayer = Rnd.get(party.getPartyMembers()); Готовый рандомный игрок из пати(Ну конечно лидера тоже может захватить)
Smile
Ответ
#3
Так и должно быть вместе с лидером. Спасибо, попробую вечером.
Ответ
#4
[SRC="java"]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);

}
}[/SRC]

Сделал так, как то совсем некорректно работает.
Ответ
#5
for(Player partyMember : party.getPartyMembers())
{

Зачем цикл ? Если нужно выбрать лишь одного игрока.
Smile
Ответ
#6
Mangol Написал:for(Player partyMember : party.getPartyMembers())
{

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

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

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


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)