• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Как сделать процент выполнения case
Otaku
Скаут
не знаю как описать "по грамотному" У меня есть госип (Допустим)

Код
pPlayer->ADD_GOSSIP_ITEM(2, "Ололо", GOSSIP_SENDER_MAIN, 1);

К нему есть case
Код
case 5:
   pPlayer->TeleportTo(1, -4943.133f, -889.814f, -5.695f, 0.701f);
pPlayer->TeleportTo(1, -4943.133f, -889.814f, -5.695f, 0.701f);
pPlayer->TeleportTo(1, -4943.133f, -889.814f, -5.695f, 0.701f);
pPlayer->TeleportTo(1, -4943.133f, -889.814f, -5.695f, 0.701f);
pPlayer->TeleportTo(1, -4943.133f, -889.814f, -5.695f, 0.701f);
pPlayer->TeleportTo(1, -4943.133f, -889.814f, -5.695f, 0.701f);
pPlayer->TeleportTo(1, -4943.133f, -889.814f, -5.695f, 0.701f);
   break;

Как для каждого этого "Выполнения case" сделать процент (Шанс) выплнения одного из них, но что бы для каждого был свой процент

Тоесть я хочу, что бы из этих всех выполнялся ТОЛЬКО один и со своим процентом выполнения
Например: У первого pPlayer->TeleportTo выполнение имеет шанс 100% а у последнего 10%,
Если брать перечисление, то можно сделать
switch (urand(1, 10)) Но у первого меньше ценности чем у последнего,
Сообщение # 1 отредактировано Otaku - Среда, 24.02.2016, 17:17
Pallam
Рыцарь
if (urand(-1,0) {} else if (urand(0,1) {} else if (urand(0,2) {} else if (urand(0,3) {} else {}

А вообще, не понимаю логическую схему. Попробуйте лучше нарисовать, что хотите. Так и решить самому проще.
Сообщение # 2 написано 24.02.2016 в 23:45
Otaku
Скаут
Цитата Pallam ()

А вообще, не понимаю логическую схему. Попробуйте лучше нарисовать, что хотите. Так и решить самому проще.

Я не селен в с++мне нужно сделать так, что бы при нажатии на меню исполнялся рандомный скрипт но со своим процентом

Добавлено (25.02.2016, 07:47)
---------------------------------------------
тоже самое как лут, у кого то шанс дропа 100% у кого то 1%

Сообщение # 3 написано 25.02.2016 в 07:47
Pallam
Рыцарь
у лута нет "уникального выпадение одного из". По-этому там каждый просто ифом проверяется на принадлежность рандома проценту.
Мой вариант даст уникальное выполнение одного из, кроме последнего, он применится в любом случае. (Из-за закрытости последнего элс)
Сообщение # 4 написано 25.02.2016 в 22:37
  • Страница 1 из 1
  • 1
Поиск: