Szerző Téma: First script, tippek, javaslatok stb.  (Megtekintve 1711 alkalommal)

First script, tippek, javaslatok stb.
« Dátum: 2014. június 24. - 12:14:56 »
0 Show voters
Sziasztok!
Megírtam az első LUA szkriptemet, én így gondoltam a dolgokat, jöhetnek a javaslatok, tippek stb. Arra is kíváncsi lennék hogy lehet e valahogy egy tömbből randomolni mert mondjuk egy xxxx elemű tömb értékeit összeszámolni, vagy esetleg ha változik a tömb aktuális elemeinek a száma stb. Tehát hogyan lehetne csak a tömb elemeiből pl randomolni?
 

function information()
zenek = {
\"url1\"
\"url2\"
\"url3\"
}
vezeteknev = { \"Kiss\", \"Nagy\", \"Lakatos\", \"Kovács\", \"Szabó\", \"Molnár\", \"Balogh\" }
keresztnev = { \"Ferenc\", \"János\", \"Katalin\", \"Beatrix\", \"Dezső\", \"Imre\", \"Péter\"}
local vrnd = math.random(1,7)
local vnev = vezeteknev[vrnd]
local krnd = math.random(1,7)
local knev = keresztnev[krnd]
local zrnd = math.randon(1,3)
local zene = zenek[zrnd]
local kor = math.random(5, 65)
playSound(tostring(zene))
fadeCamera(source, true)
setCameraTarget(source, source)
outputChatbox(\"Új lakos érkezett! A neve: \" ..(tostring(vnev)).. \" \" ..(tostring(knev)), root)
outputChatbox(\"A te neved: \" ..(tostring(vnev)).. \" \" ..(tostring(knev)), source)
outputChatbox(\"A te korod: \" ..kor, source)
if kor > 18 then
outputChatbox(\"Te felnőtt vagy!\", source)
else
outputChatbox(\"Te kiskorú vagy!\", source)
end
local pass = math.random(1000,9999)
outputChatbox(\"A te generált jelszavad: \" ..pass, source)
end
addEventHandler(\"onPlayerJoin\", getRootElement(), information)

Carlos

  • Vendég
First script, tippek, javaslatok stb.
« Válasz #1 Dátum: 2014. június 24. - 12:46:35 »
0 Show voters
hát így:
 
 
tomb = { 10, 20, 30, 40, 50, 60 }
local randomtomb = math.random(tomb[1], tomb[3])

 
Nem tudom, hogy erre gondoltál e de szerintem igen.
Ha meg nem számot akarsz randomizálni hanem stringet akkor a következő képpen tudod elkészíteni:
 
 
tomb = { \"Egyél\", \"Igyál\", \"Rágózz\" }
local randomstring = math.random(1, 3) -- 3 érték van a tömbe tehát 1 és 3 között akarunk eredményt kapni.
if randomstring == 1 then
   eredmeny = 1
elseif randomstring == 2 then
   eredmeny = 2
elseif randomstring == 3 then
   eredmeny = 3
end
« Utoljára szerkesztve: 2014. június 24. - 12:58:12 írta Carlos »

First script, tippek, javaslatok stb.
« Válasz #2 Dátum: 2014. június 24. - 12:52:11 »
0 Show voters
És itt:
math.random(tomb1[1], tomb1[3])
Miért pont tomb1[3] ? Amikor 6 eleme van? Tehát hogy mondjuk egy X elemű tömbből egy randomot írjon ki.

Carlos

  • Vendég
First script, tippek, javaslatok stb.
« Válasz #3 Dátum: 2014. június 24. - 12:59:33 »
0 Show voters
Nézd meg módosítottam a hozzászólásomat de az csak egy példa volt természetesen lehet tomb[1], tomb[6] is és akkor az összes elemet felhasználva randomizál.

Nem elérhető Enigma

  • 391
    • Profil megtekintése
First script, tippek, javaslatok stb.
« Válasz #4 Dátum: 2014. június 24. - 13:03:10 »
0 Show voters

local table = {\"Akármi\", \"Akármi2\", \"Akármi3\"}
--legenerál egy számot, annyi lehetőség közül, mint amennyi érték a táblában megtalálható, majd kiíratjuk.
outputDebugString(table[math.random(#table, 1)])

First script, tippek, javaslatok stb.
« Válasz #5 Dátum: 2014. június 24. - 13:22:04 »
0 Show voters

function information()
zenek = {
\"url1\"
\"url2\"
\"url3\"
}
vezeteknev = { \"Kiss\", \"Nagy\", \"Lakatos\", \"Kovács\", \"Szabó\", \"Molnár\", \"Balogh\" }
keresztnev = { \"Ferenc\", \"János\", \"Katalin\", \"Beatrix\", \"Dezső\", \"Imre\", \"Péter\"}
--local vrnd = math.random(1,7)
local vnev = vezeteknev[math.random(#vezeteknev, 1)]
--local krnd = math.random(1,7)
local knev = keresztnev[math.random(#keresztnev, 1)]
--local zrnd = math.randon(1,3)
local zene = zenek[math.random(#zenek, 1)]
local kor = math.random(5, 65)
playSound(tostring(zene))
fadeCamera(source, true)
setCameraTarget(source, source)
outputChatbox(\"Új lakos érkezett! A neve: \" ..(tostring(vnev)).. \" \" ..(tostring(knev)), root)
outputChatbox(\"A te neved: \" ..(tostring(vnev)).. \" \" ..(tostring(knev)), source)
outputChatbox(\"A te korod: \" ..kor, source)
if kor > 18 then
outputChatbox(\"Te felnőtt vagy!\", source)
else
outputChatbox(\"Te kiskorú vagy!\", source)
end
local pass = math.random(1000,9999)
outputChatbox(\"A te generált jelszavad: \" ..pass, source)
end
addEventHandler(\"onPlayerJoin\", getRootElement(), information)

 
Akkor elvileg így nem? + beleraktam hogy a változókat tostringbe írja ki.
« Utoljára szerkesztve: 2014. június 24. - 13:33:53 írta Nortex »

Nem elérhető Enigma

  • 391
    • Profil megtekintése
First script, tippek, javaslatok stb.
« Válasz #6 Dátum: 2014. június 24. - 13:29:44 »
0 Show voters
Ha mindegyiket randomizáltatni akarod, igen.

First script, tippek, javaslatok stb.
« Válasz #7 Dátum: 2014. június 24. - 13:39:19 »
0 Show voters
És amikor a változókat írom ki akkor ott jó a tostring, vagy nemkell?

Nem elérhető Enigma

  • 391
    • Profil megtekintése
First script, tippek, javaslatok stb.
« Válasz #8 Dátum: 2014. június 24. - 13:46:09 »
0 Show voters
Nem feltétlen kell.

Nem elérhető Legend

  • Adminisztrátor
  • 1830
    • Profil megtekintése
First script, tippek, javaslatok stb.
« Válasz #9 Dátum: 2014. július 02. - 14:24:18 »
0 Show voters
[gmod]Zárok.[/gmod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal