Механика party random

5ergiu5

Путник
Пользователь
Сообщения
2
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
14
Подскажите, пожалуйста, если в пати несколько человек, то в каком порядке мемберы получают дроп относительно выпадающего случайного числа?

Пример, если в пати 3 человека, и GetRandomNumber(0.0, 100.0), то тот кто создал пати получит дроп, если число выпадет от 0 до 33.3, первым кого пригласили получит дроп, если число выпадет от 33.3 до 66.6, второго кого пригласили от 66.6 до 100? Или это как-то иначе работает?

GetRandomNumber(0.0, 100.0) взял от сюда:

пытался найти ответ в интернете и на форумах по ключевым словам party random GetRandomNumber member minmembers l2 и т.п. Не получилось
 
Самый обычный рандом. Никаких дополнительных манипуляций с шансом не производится:
C++:
User* CParty::DistributeItemToRandomMember(User* requester, CCreature* item, int itemCount) {
    const float PICKUP_RANGE = 1500.0f;

    std::vector<User*> allMembers;
    GetAllPartyMembers(allMembers, item);

    std::vector<User*> eligibleMembers;
    
    for (User* member : allMembers) {
        if (!member || !member->IsAlive() || !member->IsInRange(requester, PICKUP_RANGE)) {
            continue;
        }

        if (member->IsTrading()) {
            member->CancelTrade();
        }

        if (member->CanPerformActions() && member->GetInventory()->CanAddItem(item->GetID(), itemCount)) {
            eligibleMembers.push_back(member);
        }
    }

    User* winner = nullptr;
    if (!eligibleMembers.empty()) {
        int randomIndex = rand() % eligibleMembers.size();
        winner = eligibleMembers[randomIndex];
    }

    FreeMemory(allMembers.data());
    FreeMemory(eligibleMembers.data());

    return winner;
}
 
rand() как я понял возвращает число от 0 до 32767. Вумно, вумно.
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…