Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3538
Старый 17.09.2021, 12:03
  #3538
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1302
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1302
Выставка наград
По умолчанию
Re: Скрипты

arts = {
[1] = {mass = 1},
[2] = {mass = 14},
[3] = {mass = 7},
[4] = {mass = 8},
[5] = {mass = 11},
}

function GetRandomArt()
  local sum
  local n
  for id, props in arts do
    sum = sum + props.mass
  end
  n = random(sum)+1
  local start, finish, shift = 0, 0, 0
  for id, props in arts do
    finish = start + props.mass
    if start<=n and n<finish then
      return id
    else shift = finish-start
         start = finish
         finish = start+shift
    end
  end
  return 0
end


Можно ещё вручную составить таблицу 95 элементов (необязательно всех), для каждого из которых указать массу - чем больше масса, тем больше шанс выпадения.

__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием