-
Üdv.
Szeretnék feltenni pár alap kérdést.
A kérdésekhez mellékeltem az aktuális kódot is.
Ha van rá lehetőség és türelem akkor a megoldásokat nem a kijavított kód formájában hanem egy 1-2 mondatos magyarázat keretein belül kérem. :)
1. Az outPutChatBox -al, ha azt szeretném, hogy minden játékos lássa az elküldött üzenetet akkor azt kell beleírnom, hogy getRootElement(); ?
2. Van egy parancsom aminek azt a funkciót szántam, hogy a parancs után beírt szöveget kiírja mindenkinek a chatboxba formázva. Ezzel az a gond, hogy ha például beírom ezt a mondatot, hogy \"Üdvözlök minden kedves és nem kedves tesztelőt a szerveren.\" akkor ebből csak annyit ír ki, hogy Üdvözlök, de például két sornyi A betűt meg rendesen ki tud írni.
Itt a kód:
addCommandHandler(\"say\",
function(playerSource, cmd, text)
if not(text) then
outputChatBox(\"[sZERVER]: Nem írtál be szöveget.\", playerSource, 220, 20, 60)
else
outputChatBox(\"Teszt \" ..getPlayerName(playerSource).. \": \" ..text.. \"\", getRootElement(), 173, 255, 47)
end
end
)
3. Van egy pénz adó parancsom ami működik viszont ki szeretném egészíteni egy kis kóddal, hogy amikor az összegnek nulla érték van beírva akkor egy hibaüzenetet kapjon, hogy nulla dollárt nem lehet adni. Tudom, hogy hogy kéne megvalósítani de nem igazán jött össze valami hibát mindig vétek.
Itt a kód:
addCommandHandler(\"money\",
function(playerSource, cmd, osszeg)
if not(osszeg) then
outputChatBox(\"[sZERVER]: Nem írtál be pénzösszeget.\", playerSource, 220, 20, 60)
else
givePlayerMoney(playerSource, osszeg)
outputChatBox(\"[sZERVER]: Adtál magadnak: \" ..osszeg.. \" $-t.\", playerSource, 173, 255, 47)
end
end
)
4. A fórumon található oktatóvideó alapján én is elkészítettem egy GUI felületet tesztelés gyanánt. Ezzel az a problémám, hogy akárhova kattintok a guin belül a gomb funkciója aktiválódik ami jelen esetben a gui bezárása.
Itt a kód:
function Sugo1()
screenWidth, screenHeight = guiGetScreenSize()
windowWidth, windowHeight = 300, 400
x = (screenWidth/2) - (windowWidth/2)
y = (screenHeight/2) - (windowHeight/2)
sugohatter = guiCreateStaticImage(x, y, 300, 400, \"sugo.png\", false)
showCursor(true)
bezar = guiCreateLabel(50, 330, 120, 60, \"aaa\", false, sugohatter)
addEventHandler(\"onClientGUIClick\", bezar, bezarSugo)
end
addCommandHandler(\"sugo\", Sugo1)
function bezarSugo()
showCursor(false)
guiSetVisible(sugohatter, false)
outputChatBox(\"[sUGÓ]: Bezártad a súgót.\")
end
-
Hello. Egy példa arra hogy mindenki lássa.
outputChatBox(\"Teszt.\", root, 255, 0, 0)
A többit most nem tudom leírni, nem egy nyugis helyen vagyok. Talán majd este. :)
-
Üdvözlet!
1. jatekos / thePlayer .. helyett használj root-ot vagy egyszerűen hagyd ki azt az argumentet. ( Csak szerver oldalon működik! )
2.
addCommandHandler(\"say\",
function(playerSource, cmd, ...)
if not(...) then
outputChatBox(\"[sZERVER]: Nem írtál be szöveget.\", playerSource, 220, 20, 60)
else
text = table.concat({...}, \" \")
outputChatBox(\"Teszt \" ..getPlayerName(playerSource).. \": \" ..text.. \"\", getRootElement(), 173, 255, 47)
end
end
)
3.
addCommandHandler(\"money\",
function(playerSource, cmd, osszeg)
if not(osszeg) then
outputChatBox(\"[sZERVER]: Nem írtál be pénzösszeget.\", playerSource, 220, 20, 60)
else
if tonumber(osszeg) <= 0 then
outputChatBox(\"[sZERVER]: Az összeg értéke kisebb vagy egyenlő mint 0.\", playerSource, 220, 20, 60)
else
givePlayerMoney(playerSource, osszeg)
outputChatBox(\"[sZERVER]: Adtál magadnak: \" ..osszeg.. \" $-t.\", playerSource, 173, 255, 47)
end
end
end
)
4. A videóba kihagytam a false-t az addEventHandler végéről ezért reagál úgy neked.
addEventHandler(\"onClientGUIClick\", bezar, bezarSugo, false)
-
Hello. Egy példa arra hogy mindenki lássa.
outputChatBox(\"Teszt.\", root, 255, 0, 0)
A többit most nem tudom leírni, nem egy nyugis helyen vagyok. Talán majd este. :)
Köszönöm szépen, lentebb pedig Carlos megválaszolta a többi kérdést. :)
Üdvözlet!
1. jatekos / thePlayer .. helyett használj root-ot vagy egyszerűen hagyd ki azt az argumentet. ( Csak szerver oldalon működik! )
2.
addCommandHandler(\"say\",
function(playerSource, cmd, ...)
if not(...) then
outputChatBox(\"[sZERVER]: Nem írtál be szöveget.\", playerSource, 220, 20, 60)
else
text = table.concat({...}, \" \")
outputChatBox(\"Teszt \" ..getPlayerName(playerSource).. \": \" ..text.. \"\", getRootElement(), 173, 255, 47)
end
end
)
3.
addCommandHandler(\"money\",
function(playerSource, cmd, osszeg)
if not(osszeg) then
outputChatBox(\"[sZERVER]: Nem írtál be pénzösszeget.\", playerSource, 220, 20, 60)
else
if tonumber(osszeg) <= 0 then
outputChatBox(\"[sZERVER]: Az összeg értéke kisebb vagy egyenlő mint 0.\", playerSource, 220, 20, 60)
else
givePlayerMoney(playerSource, osszeg)
outputChatBox(\"[sZERVER]: Adtál magadnak: \" ..osszeg.. \" $-t.\", playerSource, 173, 255, 47)
end
end
end
)
4. A videóba kihagytam a false-t az addEventHandler végéről ezért reagál úgy neked.
addEventHandler(\"onClientGUIClick\", bezar, bezarSugo, false)
[/quote]
Köszönöm szépen a választ neked is. :)
Olyan kérdésem lenne még, hogy ezt a tonumber kódot vagy nem tudom, hogy minek nevezik az ilyeneket pontosan, ez mire való, mikor kell használni?
Valamint a text = table.concat({...} résznél mi is az a table.concat valamint a két kapcsos zárójel között a három pont az mit jelent, mi a funkciója.
-
tonumber
tostring
Ezek ahogy a nevük is mondatja átalakítja az adott karaktereket számmá illetve szöveggé. Nézzünk egy példát. Van egy változóm :
valtozo = \"1\"
a változóba a szám stringbe van megadva ( \" \" ) nos ha számként akarjuk használni a számot ( pl. összeadás, osztást akarunk elérni ) akkor meg kell adni a rendszernek, hogy az egy szám nem szöveg (string) . Viszont ha a változónk így néz ki akkor nem kell tonumber
valtozo = 1
Remélem érthető volt.
Nos jöjjön a
tostring
.
local getlizing1 = guiCheckBoxGetSelected(lizing1)
van a getlizing1 változónk, a
guiCheckBoxGetSelected
funkciónak a visszatérés értékei: true / false ami nem string és nem is number. Ha szövegként akarjuk megkapni a ezeket pl. ki tudjuk íratni chatbe, akkor tostring(getlizing1) így már string lesz belőle.
table.concat({...}, \" \")
Ezzel több argumentet tudunk össze olvasztani.
-
Nagyon szépen köszönöm a válaszokat sokat segítettek.
Egyenlőre nincs több kérdésem.
A témát pedig lezárom.
:)