CustomGames.ru - Dota 2 пользовательские игры

Таблицы в lua

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Таблицы в lua
« : 12-02-2016, 11:54:01 »
Код
function on_equip(keys)
local caster = keys.caster
local ability = keys.ability
local pos = caster:GetAbsOrigin()
 
 table_items = {
 "item_blink",
 "item_blades_of_attack",
 "item_broadsword",
 "item_claymore",
 "item_mithril_hammer",
 "item_platemail",
 "item_quarterstaff",
 "item_quelling_blade",
 "item_moon_shard",
 "item_ultimate_orb",
 "item_lifesteal",
 }
 
 table_items_rare = {
 "item_gem",
 "item_rapier",
 "item_rapier_ethereal",
 "item_rapier_ancient",
 }
 
  table_items_utra_rare = {
 "item_ethernal_bf",
 "item_ethernal_blink"
 }

Господа, я не очень дружу с таблицами) Что бы не шквариться и не делать через math.random() для каждой шмотки, можно как то рандомно выбирать шмотку из таблицы?
« Последнее редактирование: 12-02-2016, 13:31:37 от -ExotiC- »
By PG.Freeman

Оффлайн Илья

  • Супермодератор
  • 2041
  • Мощь: 19
Re: Опять таблицы, хелп плз)
« Ответ #1 : 12-02-2016, 12:22:24 »
Не знаю, то ли ты спрашиваешь:

Код
local choise = RandomInt(1, 3)

if choise == 1 then
    return table_items[RandomInt(0,10)]
elseif choise == 2 then
    return table_items_rare[RandomInt(0,3)]
else
    return table_items_utra_rare[RandomInt(0,2)]
end

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Re: Опять таблицы, хелп плз)
« Ответ #2 : 12-02-2016, 12:25:56 »
Не знаю, то ли ты спрашиваешь:

Код
local choise = RandomInt(1, 3)

if choise == 1 then
    return table_items[RandomInt(0,10)]
elseif choise == 2 then
    return table_items_rare[RandomInt(0,3)]
else
    return table_items_utra_rare[RandomInt(0,2)]
end

Спаааасибо)Заплусую тебя:D
By PG.Freeman

Оффлайн Илья

  • Супермодератор
  • 2041
  • Мощь: 19
Re: Опять таблицы, хелп плз)
« Ответ #3 : 12-02-2016, 12:30:16 »
Оно работает? Я только прикинул.

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Re: Опять таблицы, хелп плз)
« Ответ #4 : 12-02-2016, 13:35:58 »
Оно работает? Я только прикинул.
Работает)Спасиб
By PG.Freeman

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Re: Таблицы в lua
« Ответ #5 : 17-02-2016, 22:09:41 »
Добавь не рандом от 1 до 3, а рандом от 1 до кол-ва элементов в таблице.

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Re: Таблицы в lua
« Ответ #6 : 17-02-2016, 22:11:47 »
Ну и естественно если ты хочешь чтобы рарки выпадали реже, то разбавь рандом диапазонами.

Оффлайн CryDeS

  • Друзья CG
  • 1208
  • Мощь: 12
Re: Опять таблицы, хелп плз)
« Ответ #7 : 18-02-2016, 07:21:17 »
Не знаю, то ли ты спрашиваешь:

Так будет лучше.
Код
local choise = RandomInt(1, 3)

if choise == 1 then
    return table_items[RandomInt(0,#table_items)]
elseif choise == 2 then
    return table_items_rare[RandomInt(0,#table_items_rare)]
else
    return table_items_utra_rare[RandomInt(0,#table_items_utra_rare)]
end
Плюс пользуйтесь функцией от вольво
Код
 RollPercentage(80) -- выдаст true если шанс выпадения 80% сработает