Таблицы в lua

Adam Smith

Друзья CG
4 Окт 2014
473
2
Код:
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() для каждой шмотки, можно как то рандомно выбирать шмотку из таблицы?
 
Последнее редактирование модератором:
Re: Опять таблицы, хелп плз)

Не знаю, то ли ты спрашиваешь:

Код:
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
 
Re: Опять таблицы, хелп плз)

[quote author=Илья link=topic=734.msg2909#msg2909 date=1455279744]
Не знаю, то ли ты спрашиваешь:

Код:
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
[/quote]

Спаааасибо)Заплусую тебя:D
 
Re: Опять таблицы, хелп плз)

Оно работает? Я только прикинул.
 
Добавь не рандом от 1 до 3, а рандом от 1 до кол-ва элементов в таблице.
 
Ну и естественно если ты хочешь чтобы рарки выпадали реже, то разбавь рандом диапазонами.
 
Re: Опять таблицы, хелп плз)

Не знаю, то ли ты спрашиваешь:
Так будет лучше.
Код:
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% сработает
 
Последнее редактирование модератором:
Реклама: