Szerző Téma: telefon-rendszer  (Megtekintve 942 alkalommal)

telefon-rendszer
« Dátum: 2015. június 19. - 17:33:53 »
0 Show voters
Sziasztok!
Egy saját telefon rendszeren dolgozok, pár hónapja tanulom a LUA-t, gondoltam most megpróbálkozom vele. Egész jól is haladtam, azonban megakadtam egy résznél. a hívásnak a beszélgetésnél. Nem chatbe menne, hanem a telefonba. Az a gondom vele, hogy megcsináltam, hogyha rákattintok a \"küldés\" gombra akkor írja ki a telefonba mindkét félnek az edit box tartalmát. Na most ez megvan, de miután rákattintottam a küldésre, onnantól mindig változtatja a kiírást, mivel a dxDrawText onClientRender-el van megcsinálva. Most nem tudom értitek-e. Van egy kódom is, én így próbáltam, de nem működik.
 
--küldés gomb
if getElementData(localPlayer, \"phone\") == \"goingCall\" then
   if x >= X + 245 and x <= X + 290 then
      if y >= Y + 547 and y <= Y + 566 then
         sendHivoUzenet(guiGetText(callInput)) -- edit box textje, funkció lejebb.
         --addEventHandler(\"onClientRender\", getRootElement(), uzenetLatszodas)
      end
   end
end

 
Aztán itt a sendHivoUzenet funkció:
 
function sendHivasUzenet(msg)
for _, player in pairs(getElementsByType(\"player\")) do
 
       targetPlayer = player
       msgFrom = getElementData(localPlayer, \"teloszam\")
       msgTo = getElementData(targetPlayer, \"teloszam\")
       theMsg = tostring(msg)
      hivoUzenetekTable = {msgFrom, msgTo, theMsg} -- itt a tablebe berakom az értékeket
             -- outputChatBox(\"mukszik???\")
      break
 
end
end

 
miután beraktam a hivo table-be az értékeket, így próbálom kiírni, de nem nagyon megy...
 
addEventHandler(\"onClientRender\", getRootElement(), function()
if getElementData(localPlayer, \"phone\") == \"goingCall\" then
dxDrawImage(X, Y + 35, Width, Height, \"files/hivaskozbe.png\")
for k,v in ipairs(hivoUzenetekTable) do -- végig loopolom a ezt a tablet, és annak az értékét kellene kiírnia, a v[3] -at de semmi.
           
         
   if v[1] then
      local text = (v[3])
      dxDrawText(text, X + 5, Y + 10, 50, 0, tocolor(255, 255, 255, 255), 2, \"arial\", \"left\", \"top\", false, true, true)
      outputChatBox(text)
      outputChatBox(\"ASD\")
   end
                   end   
 
end
end)

 
Segítségeteket előre is köszönöm, ha van jobb kód ötlet, hogy hogy lehetne, szívesen fogadom :)

telefon-rendszer
« Válasz #1 Dátum: 2015. június 21. - 21:59:00 »
0 Show voters
Ezt a problémát megoldottam, viszont a beszélgetős résznél nem tudom megoldani, hogyha kiírja az egyiket, akkor az maradjon ott, de a következőt az előzőhöz képest x távolságra rakja. Van ötletetek? :)

telefon-rendszer
« Válasz #2 Dátum: 2015. június 21. - 22:10:09 »
0 Show voters
Az y koordinátát valamilyen értékkel változtasd.
Szóval pl.
 
if vanUjszoveg then
   xPozicio + 15
end

telefon-rendszer
« Válasz #3 Dátum: 2015. június 21. - 22:25:09 »
0 Show voters
Az a baj, hogy végig loopolom a cuccokat, és azt írja ki:
tehát mindig hozzáadok a hivoUzenetek tablehez az editbox tartalmát, és azt az Y-al változtatja, csak így az egész mozog, de azt akarom, hogy mindig az utolsó mozduljon, a többi ne. remélem érted :D
 
 Y = Y + 125 + (renderData.sorokKozKihagyas * (renderData.uzenetSzamolo - 1))
for k,v in ipairs(hivoUzenetek) do
   if k >= renderData.jelenlegiSor then
                               if k <= renderData.smsLatestLine and v then
         renderData.smsDrawX = X + 70
         renderData.smsDrawY = Y + 125 + (renderData.sorokKozKihagyas * (renderData.uzenetSzamolo - 1))
         dxDrawText(v, X, Y, 50, 0, tocolor(255, 255, 255, 255), 2, \"arial\", \"left\", \"top\", false, true, true)
      end
   end
end
    end

 

Dupla üzenet összevonva ekkor: 2015. június 23. - 11:13:58

megoldottam GUI-val, csak most az a baj, hogy nem tudom törölni őket :D Amikor rákattintok a küldésre, akkor csinál egy GUI-t és kiírja. Törlésnél mindig az utolsót törli csak. Valakinek van valami ötlete?
« Utoljára szerkesztve: 2015. június 23. - 11:13:58 írta SAW911 »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal