Подскажите, как сделать чтобы действие в триггере выполнялось с определенной вероятностью, при этом чтобы при невыполнении одного действия выполнялось другое.

Принятый ответ

есть такая функция, которая достает случайное число из заданного вами промежутка. Почти все варкрафтеры с помощью нее строят рандомные события в игре, заклинания и пр.Смотри в разделе целое число (integer), или действительное число (real)

set i = GetRandomInt(i0,i1) - достает случайное целое число из промежутка i0- i1
set r = GerRandomReal(x0,x1) - аналогично, только реальное число
и с помощью нее пляем, делаем проверки.
ненужное
часто с помощью нее делают скилы с критическим ударом, уклонением, стан и пр. в таких заклинаниях делают проверку на шанс. можете посмотреть на нашем сайте, тут часто спрашивали как с шансом что-то сделать.
пример 50% шанс нанести 1.5x урона, и иначе промах
set i = GetRandomInt(0,100)
if i>50 then //если целое число больше 50
//нанести 1.5x урон
elseif i<50 then //иначе если меньше 50
//промах, хиляем
endif
аналогично и с реальным числом
set r = GetRandomReal(0.00,1.00)
if r>0.50 then //если целое число больше 50
//нанести 1.5x урон
elseif r<0.50 then //иначе если меньше 50
//промах, хиляем
endif

или
set i = GetRandomInt(0,1)
if i==0 then //если целое число равно 0
//нанести 1.5x урон
elseif i==1 then //иначе если число рано 1
//промах, хиляем
endif
тоже самое можно сделать все что угодно.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
27
5 лет назад
Отредактирован MpW
3
есть такая функция, которая достает случайное число из заданного вами промежутка. Почти все варкрафтеры с помощью нее строят рандомные события в игре, заклинания и пр.Смотри в разделе целое число (integer), или действительное число (real)

set i = GetRandomInt(i0,i1) - достает случайное целое число из промежутка i0- i1
set r = GerRandomReal(x0,x1) - аналогично, только реальное число
и с помощью нее пляем, делаем проверки.
ненужное
часто с помощью нее делают скилы с критическим ударом, уклонением, стан и пр. в таких заклинаниях делают проверку на шанс. можете посмотреть на нашем сайте, тут часто спрашивали как с шансом что-то сделать.
пример 50% шанс нанести 1.5x урона, и иначе промах
set i = GetRandomInt(0,100)
if i>50 then //если целое число больше 50
//нанести 1.5x урон
elseif i<50 then //иначе если меньше 50
//промах, хиляем
endif
аналогично и с реальным числом
set r = GetRandomReal(0.00,1.00)
if r>0.50 then //если целое число больше 50
//нанести 1.5x урон
elseif r<0.50 then //иначе если меньше 50
//промах, хиляем
endif

или
set i = GetRandomInt(0,1)
if i==0 then //если целое число равно 0
//нанести 1.5x урон
elseif i==1 then //иначе если число рано 1
//промах, хиляем
endif
тоже самое можно сделать все что угодно.
Принятый ответ
3
29
5 лет назад
3
Steal nerves, нет редактора под рукой, но алгоритм простой
if GetRandomInteger(0,100) <= 30 then
// 30% chance
else
// 70% chance
endif
0
24
5 лет назад
0
Вот только это наивная реализация и реального шанса в нужное кол-во % не обеспечивает с высокой точностью. Поэтому часто делают более сложно - считают кол-во попыток и срабатываний и подгоняют шансы динамически так чтобы на X попыток гарантированно было Y срабатываний.
0
29
5 лет назад
Отредактирован nazarpunk
0
Вот только это наивная реализация и реального шанса в нужное кол-во % не обеспечивает с высокой точностью.
А чем плох этот алгоритм в рамках заданного вопроса?
0
24
5 лет назад
0
NazarPunk, да ничем, собственно, я просто уточнил нюанс.
0
26
5 лет назад
0
Об этом в 5 варианте бота отлично описано.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.