Szerző Téma: Lua ismétlődés kizárása.  (Megtekintve 479 alkalommal)

Nem elérhető TheSLESH

  • Intermediate
  • **
  • Thank You
  • -Given: 12
  • -Receive: 29
  • Hozzászólások: 222
  • Segített: -20
  • Várom a napfelkeltét
Lua ismétlődés kizárása.
« Dátum: 2019-06-15, 18:19:16 »
when 20093.take begin
local bonuszok = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,63,105,104,103,102}
local ertekek = {2000,1500,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8}
local ertekek1 = {1500,1200,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5}
local ertekek2 = {1000,500,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
local ertekek3 = {500,200,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}
local bonus0 = math.random(1,29)
local bonus1 = math.random(1,29)
local bonus2 = math.random(1,29)
local bonus3 = math.random(1,29)
local bonus4 = math.random(1,29)
item.set_value(0,bonuszok[bonus0][1],bonuszok[bonus0][2])
item.set_value(1,bonuszok[bonus1][1],bonuszok[bonus1][2])
item.set_value(2,bonuszok[bonus2][1],bonuszok[bonus2][2])
item.set_value(3,bonuszok[bonus3][1],bonuszok[bonus3][2])
item.set_value(4,bonuszok[bonus4][1],bonuszok[bonus4][2])
end

adott ez a quest, ahol a "bonuszok" tömben vannak a bónuszok ID-je, ertekek1-3ig-ben pedig a hozzá tartozó érték, hogy mennyi lehet. Hogyan tudom kivitelezni,hogy a bónuszok ne ismétlődhessenek, (Tehát 2x tp ne rakjon bele) illetve, hogy az értékéhez, az ertekek1-3-igből sorsoljon hozzá, a megfelelő számmal?
Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.

Nem elérhető [VIP]P3NG3R

  • VIP
  • Master
  • *
  • Thank You
  • -Given: 46
  • -Receive: 631
  • Hozzászólások: 752
  • Segített: 1051
  • napasztmek
Re:Lua ismétlődés kizárása.
« Válasz #1 Dátum: 2019-06-16, 00:09:38 »
Elől- vagy hátultesztelős ciklussal.
while
repeat-until
wir sind step (:

Nem elérhető TheSLESH

  • Intermediate
  • **
  • Thank You
  • -Given: 12
  • -Receive: 29
  • Hozzászólások: 222
  • Segített: -20
  • Várom a napfelkeltét
Re:Lua ismétlődés kizárása.
« Válasz #2 Dátum: 2019-06-16, 11:40:02 »
Köszi penger, most sikerült véletlen számot generálnom már, ami nem ismétlődik, a maximum érték, a bonusz01[1]. Viszont nem ebből válogat, hanem ennek a legnagyobb számát veszi alapul, és 0 és az a szám között dob vissza random számot, nem pedig a tömből.
(Tehát pl 47-es nincs közte, de mivel a legnagyobb szám a 104, így a 0-104 között van a 47 is..)
(click to show/hide)
Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.

Nem elérhető DonNodus

  • Trainee
  • *
  • Thank You
  • -Given: 7
  • -Receive: 40
  • Hozzászólások: 78
  • Segített: 120
Re:Lua ismétlődés kizárása.
« Válasz #3 Dátum: 2019-06-19, 18:39:53 »
local bonusz01 = {
{1,2000,1500,1000}, -- Max tp
{2,500,300,150}, -- Max mp
{3,5,3,2}, -- eletero
{4,5,3,2}, -- Inteligencia
{5,5,3,2}, -- erő
{6,5,3,2}, -- Ügyesség
{7,5,3,2}, -- tamadosebesseg
{8,5,3,2}, -- mozgasisebesseg
{9,5,3,2}, -- varazsebesseg
{10,5,3,2}, -- hp regeneracio
{11,5,3,2}, -- mp regeneracio
{12,5,3,2}, -- mergezes
{13,5,3,2}, -- ajulas
{14,5,3,2}, -- lassulas
{15,5,3,2}, -- krit
{16,5,3,2}, -- athato
{17,5,3,2,10}, -- felember
{18,5,3,2,10}, -- allatok
{19,5,3,2,10}, -- ork
{20,5,3,2,10}, -- eloholt
{21,5,3,2,10}, -- nemhalottak
{22,5,3,2,10}, -- ordog
{23,5,3,2}, -- HP lopas
{24,5,3,2}, -- MP lopas
{63,5,3,2}, -- szorny
{86,10,8,5}, --magikus/kozelharci tamadas
{98,10,8,5}, --98 villam elleni ero
{99,10,8,5}, --99 tuz elleni ero
{100,10,8,5}, --100 jeg elleni ero
{101,10,8,5}, --szel elleni ero
{102,10,8,5}, --föld elleni erő
{103,10,8,5}, --sotetseg elleni ero
{105,10,8,5}, --metinek elleni ero
{87,5,3,2}, --jeg ellenallas
{88,5,3,2}, --fold ellenallas
{89,5,3,2},--sotetseg ellenallas
{91,5,3,2}, --athato csapas ellenallas
{90,5,3,2}, --kritikus csapas ellenallas
{97,5,3,2}, --anti magia ellenallas
{104,5,3,2} -- szornyekk elleni vedelem
}
for brumimaci = 1, 5 do
local i = math.random(table.getn(bonusz01))
item.set_value(brumimaci-1,bonusz01[i][1],bonusz01[i][math.random(2,4)])
table.remove(bonusz01,i)
end
« Utoljára szerkesztve: 2019-06-24, 21:06:02 írta DonNodus »

"Az a baj a világgal, hogy a hülyék  mindenben holtbiztosak, az okosak meg tele vannak kételyekkel."
              Bertrand Russel