Szerző Téma: Alap funkciók  (Megtekintve 869 alkalommal)

Paradox

  • Vendég
Alap funkciók
« Dátum: 2014. augusztus 24. - 14:21:14 »
0 Show voters
Ü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
« Utoljára szerkesztve: 2014. augusztus 24. - 14:27:18 írta Paradox »

Nem elérhető Martin

  • 160
    • Profil megtekintése
Alap funkciók
« Válasz #1 Dátum: 2014. augusztus 24. - 14:33:28 »
0 Show voters
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. :)
« Utoljára szerkesztve: 2014. augusztus 24. - 14:41:41 írta Martin »

Carlos

  • Vendég
Alap funkciók
« Válasz #2 Dátum: 2014. augusztus 24. - 14:36:16 »
0 Show voters
Ü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)

Paradox

  • Vendég
Alap funkciók
« Válasz #3 Dátum: 2014. augusztus 24. - 15:15:26 »
0 Show voters
Idézetet írta: Martin date=1408883608\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"55551\" data-ipsquote-contentclass=\"forums_Topic
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.

Carlos

  • Vendég
Alap funkciók
« Válasz #4 Dátum: 2014. augusztus 24. - 16:03:24 »
0 Show voters
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.

Paradox

  • Vendég
Alap funkciók
« Válasz #5 Dátum: 2014. augusztus 24. - 16:59:31 »
0 Show voters
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.
:)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal