Szerző Téma: Login-Panel Script hiba.  (Megtekintve 2678 alkalommal)

Login-Panel Script hiba.
« Dátum: 2017. Április 26. - 15:37:07 »
0
Sziasztok! Elkezdtem egy modot nulláról írni, de fenn akadtam a loginpanel kirajzolásánál. A hiba az, hogy a dxDrawText nem jelenik meg, azaz, ha átírok valamit, pl asd a usernamenél, akkor az nem jelenik meg.
 

dxDrawRectangle(800/oX*zX, 400/oY*zY, 300/oX*zX, 35/oY*zY, tocolor(0, 0, 0, 200)) -- username box
dxDrawRectangle(800/oX*zX, 460/oY*zY, 300/oX*zX, 35/oY*zY, tocolor(0, 0, 0, 200)) -- password box
userbox = guiCreateEdit(800/oX*zX, 400/oY*zY, 300/oX*zX, 35/oY*zY, \"\", false, nil)
guiSetAlpha(userbox, 0)
userbox_value = guiGetText(userbox)
dxDrawText(userbox_value, 800/oX*zX, 400/oY*zY, _, _, _, 2, \"default\", \"left\", \"top\")

 
 

Login-Panel Script hiba.
« Válasz #1 Dátum: 2017. Április 26. - 16:15:32 »
0
Ennyi az egész kód? Vagy benne van egy onClientRender-ben?
« Utoljára szerkesztve: 2017. Április 26. - 16:15:59 írta dugasz1 »

Login-Panel Script hiba.
« Válasz #2 Dátum: 2017. Április 26. - 16:27:00 »
0
Benne van az eventben. Teljes kód: (A szerver neve nem extend lesz, csak eredetileg az lett volna, de átbasztak)
 

-----------------------------------------------|
---- ACCOUNT SYSTEM BY: JOHN LABELMAKER || HD -|
-----------------------------------------------|                                        
----Extend Gaming MOD Scripted By HD-----------|
-----------------------------------------------|
myFont = dxCreateFont(\"fonts/accfont.ttf\", 20)
oX, oY = 1920, 1080
function togArrow()
showCursor(not isCursorShowing())
end
bindKey(\"M\", \"down\", togArrow)   
 
function onStart()
addEventHandler(\"onClientRender\", getRootElement(), renderLogin)
end
addEventHandler(\"onClientResourceStart\", getResourceRootElement(getThisResource()), onStart)
addEventHandler(\"onClientPlayerJoin\", getRootElement(), onStart)   
 
function renderLogin()
local zX, zY = guiGetScreenSize()
dxDrawRectangle(800/oX*zX, 400/oY*zY, 300/oX*zX, 35/oY*zY, tocolor(0, 0, 0, 200)) -- username box
dxDrawRectangle(800/oX*zX, 460/oY*zY, 300/oX*zX, 35/oY*zY, tocolor(0, 0, 0, 200)) -- password box
userbox = guiCreateEdit(800/oX*zX, 400/oY*zY, 300/oX*zX, 35/oY*zY, \"\", false, nil)
guiSetAlpha(userbox, 0)
userbox_value = guiGetText(userbox)
dxDrawText(userbox_value, 800/oX*zX, 400/oY*zY, _, _, _, 2, \"default\", \"left\", \"top\")
end

 
 
 
 
« Utoljára szerkesztve: 2017. Április 26. - 16:44:08 írta BIGsmoke000 »

Login-Panel Script hiba.
« Válasz #3 Dátum: 2017. Április 26. - 16:53:28 »
0

userbox = guiCreateEdit(800/oX*zX, 400/oY*zY, 300/oX*zX, 35/oY*zY, \"\", false, nil)
guiSetAlpha(userbox, 0)

 
Ilyeneket nem rakunk renderbe, mert mindig kirajzolja, és laggoltatni fog. Valószínüleg ezért nem jelenik meg a text.

Login-Panel Script hiba.
« Válasz #4 Dátum: 2017. Április 26. - 17:22:53 »
0
Akkor, hogyan kéne ezt megoldanom?? Csak onClientPlayerJoinba???

Login-Panel Script hiba.
« Válasz #5 Dátum: 2017. Április 26. - 23:17:35 »
+2
Ahogy mondta @BlackSy ilyet nem rakunk onClientRender-be, mert az minden framenél amit kirajzol a géped meghívódik. Tehát ha van 50fpsed akkor 50szer meghívj az a függvényt másodpercenként. Oda csak a dxDraw-os cuccokat tesszük, mert az ahogy a nevében benne van tényleg rajzolás és azt minden képkockára ki akarod rajzolni nem csak 1-re.
 
És azért nem jelenik meg a text, mert a dx-el elentétbe a gui-s funkciók (pl mint a te guiCreateEdit-ed) meghíváskor létrehoznak egy akármit (jelen esetben egy edit boxot amibe írhatsz) és az mind addig létezik míg destroyElement()-el ki nem törlöd. És mivel az a függvény minden framenél meghívódik így neked állandóan újat készít és pakolja őket egymásra, készíti folyamatosan őket így a userbox válzotód mindig a legutóbb létrejöttet jelenti és ha te belekattintasz és írsz akkor egy régibe írsz még nem az újba. Lehet 200at elkészít mire te lenyomsz egy gombot és azok mindig üresen készülnek el.

Login-Panel Script hiba.
« Válasz #6 Dátum: 2017. Április 27. - 18:35:07 »
0
Lehetséges, hogy az a hiba, hogy mivel az onClientRender folyamatosan rajzolja ki a dolgokat, ezért a gui feléhelyezi a userboxot?? Ha igen, akkor hogyan tudnám ezt javítani??

Login-Panel Script hiba.
« Válasz #7 Dátum: 2017. Április 27. - 18:42:06 »
+2
Dehát ezt írták le neked xdd rakd az onClientRender -en kívülre, vagy rakd egy function alá, amit majd meghívsz mikor rákattintanak valami gombra (már ha lesz külön bejelentkezés és regisztráció, mert akkor azoknak úgyis külön kell majd), vagy ha nagyon event alá akarod rakni akkor rakd pl. az onClientResourceStart alá.

Login-Panel Script hiba.
« Válasz #8 Dátum: 2017. Április 28. - 14:50:46 »
0
Sziasztok! Miért nem akarja ezt a scriptet működtetni??
 
A regisztráció nem műküdik, sem a login. Lehetséges, hogy a gomb kattintással van gond??
 
 
 
Szerveroldal:
 
 
 

function loginMySql()
connection = dbConnect(\"mysql\", \"127.0.0.1\", \"root\", \"\")
  if connection then
outputDebugString(\"A mysql kapcsolat sikeresen létrejött!\", 3, 0, 255, 0)
  else
     outputDebugString(\"A mysql kapcsolat nem jött létre!\", 3, 255, 0, 0)
  end
end
addEventHandler(\"onResourceStart\", getRootElement(), loginMySql)
 
function loginServer(thePlayer, username, password)
  password = md5(password)
  qh = dbQuery(connection, \"SELECT * FROM accounts WHERE username = ? AND password = ? LIMIT 1\", username, password)
  loginResult = dbPoll(qh, -1)
 
  if loginResult > 0 then
     for _, row in ipairs(loginResult) do
      if row[\"mtaserial\"] ~= getPlayerSerial(player) then
          if row[\"mtaserial\"] == \"0\" then   
           dbExec(connection, \"UPDATE accounts SET mtaserial = ? WHERE id = ?\", getPlayerSerial(player), row[\"id\"])
          else
           outputChatBox(\"Nem az ön gépéhez van társítva ez a felhasználó\")
          return
         end  
     else    
    local accId = tonumber(row[\"id\"])
         setElementData(player, \"acc:id\", accId)
         setElementData(player, \"acc:name\", tostring(row[\"name\"]))
         setElementData(player, \"acc:admin\", tonumber(row[\"admin\"]) or 0)
         setElementData(player, \"acc:aseged\", tonumber(row[\"aseged\"]) or 0)
         setElementData(player, \"acc:regdate\", row[\"regdate\"])
         setElementData(player, \"acc:lastlogin\", row[\"lastlogin\"])
         dbExec(connection, \"UPDATE accounts SET lastlogin = NOW(), online = \'1\' WHERE id = ?\", accId)
    end
  end
 else
    outputChatBox(\"A felhasználónév/jelszó nem helyes.\")
end
addEvent(\"onLoginClick\", true)
addEventHandler(\"onLoginClick\", getRootElement(), loginServer)
function registerServer(thePlayer, username, password)
    local password = md5(password)
    local registerQuery = dbPoll(dbQuery(connection, \"SELECT * FROM accounts\"), -1)
    for _, row in ipairs(registerQuery) do
    if row[\"username\"] == username then
      outputChatBox(\"A felhasználónév már foglalt.\")
      return
   end
   if row[\"mtaserial\"] == getPlayerSerial(player) and not serials[getPlayerSerial(player)] then
      outputChatBox(\"Ez a serial már társítva van egy felhasználóhoz.\")
      return
   end
end
local registerInsert = dbQuery(connection, \"INSERT INTO accounts SET username = ?, password = ?, mtaserial = ?, ip = ?, regdate = NOW(), lastlogin = NOW()\",
username, password, getPlayerSerial(player), getPlayerIP(player))
local result, num, insertID = dbPoll(registerInsert, -1)
if insertID then
   outputChatBox(\"Sikeresen regisztráltál! Jelentkezz be.\")
   --exports.mta_notifications:createNotification(player, \"Sikeresen létrehoztad a felhasználódat. Jelentkezz be\", 1)
   setElementData(player, \"acc:id\", insertID)
   --outputChatBox(insertID)
   --checkCharacter(player)
   
end
end
end
addEvent(\"onRegisterClick\", true)
addEventHandler(\"onRegisterClick\", getRootElement(), registerServer)   

 
 
 
Kliensoldal:
 
 
 

-----------------------------------------------|
---- ACCOUNT SYSTEM BY: JOHN LABELMAKER || HD -|
-----------------------------------------------|                                        
---- Hunter Life MTA MOD Scripted By HD--------|
-----------------------------------------------|
panelState = \"1\"
inputsOn = false
loginRendered = false
myFont = guiCreateFont(\"fonts/accfont.ttf\", 13)
myFontDx = dxCreateFont(\"fonts/accfont.ttf\", 13)
oX, oY = 1920, 1080
zX, zY = guiGetScreenSize()
function togArrow()
showCursor(not isCursorShowing())
end
bindKey(\"M\", \"down\", togArrow)   
 
function onStart()
addEventHandler(\"onClientRender\", getRootElement(), renderLogin)
input1_show = guiCreateLabel(805/oX*zX, 406.3/oY*zY, 300/oX*zX, 35/oY*zY, \"\", false)
guiLabelSetColor(input1_show, 255, 255, 255)
guiSetFont(input1_show, myFont)
input1 = guiCreateEdit(800/oX*zX, 400/oY*zY, 300/oX*zX, 35/oY*zY, \"\", false)
guiSetAlpha(input1, 0)
guiEditSetMaxLength(input1, 30)
    addEventHandler(\"onClientGUIChanged\", input1, changeTextOnKeyUser)
input2_show = guiCreateLabel(805/oX*zX, 467.2/oY*zY, 300/oX*zX, 35/oY*zY, \"\", false)
guiLabelSetColor(input2_show, 255, 255, 255)
guiSetFont(input2_show, myFont)
input2 = guiCreateEdit(800/oX*zX, 460/oY*zY, 300/oX*zX, 35/oY*zY, \"\", false)
guiSetAlpha(input2, 0)
guiEditSetMaxLength(input2, 30)
showCursor(true)
addEventHandler(\"onClientGUIChanged\", input2, changeTextOnKeyPass)
 
    showPlayerHudComponent(\"radar\", false)
    setElementDimension(getLocalPlayer(), 9999)
setElementAlpha(getLocalPlayer(), 0)
showChat(false)
    setCameraMatrix(2493.72266, -1628, 50.34375, 2493.72266, -1668.54333, 13.34375, 0, 180)
   
end
addEventHandler(\"onClientResourceStart\", getRootElement(), onStart)
addEventHandler(\"onClientPlayerJoin\", getRootElement(), onStart)   
 
function renderLogin()
local zX, zY = guiGetScreenSize()
dxDrawRectangle(800/oX*zX, 400/oY*zY, 300/oX*zX, 35/oY*zY, tocolor(0, 0, 0, 255)) -- username box
dxDrawRectangle(800/oX*zX, 460/oY*zY, 300/oX*zX, 35/oY*zY, tocolor(0, 0, 0, 255)) -- password box
dxDrawRectangle(875/oX*zX, 520/oY*zY, 150/oX*zX, 35/oY*zY, tocolor(28, 104, 1, 255)) -- Login Button
dxDrawRectangle(875/oX*zX, 560/oY*zY, 150/oX*zX, 35/oY*zY, tocolor(96, 0, 0, 255)) -- Register Button
dxDrawText(\"Bejelentkezés\", 890/oX*zX, 528/oY*zY, 150/oX*zX, 35/oY*zY, _, _, 1, myFontDx, \"left\", \"top\")
dxDrawText(\"Regisztráció\", 896/oX*zX, 568/oY*zY, 150/oX*zX, 35/oY*zY, _, _, 1, myFontDx, \"left\", \"top\")
loginRendered = true
end
 
function changeTextOnKeyUser()
local newText = guiGetText(input1)
guiSetText(input1_show, newText)
end   
function changeTextOnKeyPass()
local newText = guiGetText(input2)
guiSetText(input2_show, newText)
end
function dobozbaVan(dX, dY, dSZ, dM, eX, eY)
if(eX >= dX and eX <= dX+dSZ and eY >= dY and eY <= dY+dM) then
   return true
else
   return false
end
end
function isCursorOnBox(xS,yS,wS,hS)
if(isCursorShowing()) then
   XY = {guiGetScreenSize()}
   local cursorX, cursorY = getCursorPosition()
   cursorX, cursorY = cursorX*XY[1], cursorY*XY[2]
   if(cursorX >= xS and cursorX <= xS+wS and cursorY >= yS and cursorY <= yS+hS) then
      return true
   else
      return false
   end
end   
end
function loginBoxClick(button, state, x, y, wx, wy, wz, element)
  if PanelState and button and button == \"left\" and state and state == \"down\" then
    for i = 2, 4 do
      if dobozbaVan(875/oX*zX, 520/oY*zY, 150/oX*zX, 35/oY*zY, x, y) then
         username = guiGetText(input1)
         password = guiGetText(input2)
         triggerServerEvent(\"onLoginClick\", getRootElement(), thePlayer, username, password)
      end
    end
  end
end
addEventHandler(\"onClientClick\", getRootElement(), loginBoxClick)
function registerBoxClick(button, state, x, y, wx, wy, wz, element)
  if PanelState and button and button == \"left\" and state and state == \"down\" then
    for i = 2, 4 do
      if dobozbaVan(896/oX*zX, 568/oY*zY, 150/oX*zX, 35/oY*zY, x, y) then
         username = guiGetText(input1)
         password = guiGetText(input2)         
         triggerServerEvent(\"onRegisterClick\", getRootElement(), thePlayer, username, password)
      end
    end
  end
end
addEventHandler(\"onClientClick\", getRootElement(), registerBoxClick)

 
 
« Utoljára szerkesztve: 2017. Április 29. - 22:21:40 írta BIGsmoke000 »

Login-Panel Script hiba.
« Válasz #9 Dátum: 2017. Április 29. - 22:21:54 »
0
Kérlek segítsetek

Login-Panel Script hiba.
« Válasz #10 Dátum: 2017. Május 10. - 10:10:52 »
0
/index.php?/profile/11332-bigsmoke000/&do=hovercard&referrer=https%253A%252F%252Fgtakozosseg.hu%252Findex.php%253F%252Ftopic%252F64326-login-panel-script-hiba%252F\" href=\"<___base_url___>/index.php?/profile/11332-bigsmoke000/\" title=\"BIGsmoke000 profiljára\" rel=\"\">@BIGsmoke000
Én most nem értem a problémád.Először azt írtad hogy elkezdtél 0-ról írni 1 modot, ami nem jeleníti meg a dxDrawText-et amire megkaptad a választ/megoldást. Most pedig írsz még 1 kommentet (egy publikált moddal ) ami nem működik na ha nem működik biztos ki írja a hibát debugscript -ben ami alapján tudunk segíteni de most így hogy bemásolod ide a scriptet és elvárod hogy átnézzük neked ez olyan mint amikor a cigány bemegy a kuplerájba és végigkérdezgeti a csajokat hogy neki  nagy e ....  Éppen hogy csak beleolvastam de olyanok vannak benne hogy a hajam égnek áll . Illeszd mellé a hibát amit le generál és utána tudok /tudunk segíteni.
 
 

Login-Panel Script hiba.
« Válasz #11 Dátum: 2017. Május 12. - 15:53:01 »
0
Hol lenne ez publikálva?? Lehet, hogy kiraktam régen segítségkérésbe a HDmaster0702 accomon. Egyébként nem ír semmilyen hibát. Ha rákattintok a dx-es gombra, akkor nem csinálja meg a regisztráció/login szerver eventet.

Login-Panel Script hiba.
« Válasz #12 Dátum: 2017. Május 12. - 16:29:22 »
+1
Idézetet írta: BIGsmoke000 date=1493383846


   
      setElementData(player, \"acc:id\", accId)
   


Ez nem external-os?

Login-Panel Script hiba.
« Válasz #13 Dátum: 2017. Május 12. - 21:30:21 »
+2
Idézetet írta: BIGsmoke000 date=1494597181


   
      Hol lenne ez publikálva?? Lehet, hogy kiraktam régen segítségkérésbe a HDmaster0702 accomon. Egyébként nem ír semmilyen hibát. Ha rákattintok a dx-es gombra, akkor nem csinálja meg a regisztráció/login szerver eventet.
   


Ahjj most kinek akarod beadni a meséd ? :) de tudod mit nézzük át a dolgokat Együtt !
 
1. kicsit externálos nem de ? áhh dehogyis csak úgyan azokat az exportokat meg neveket használod én kis butus :)
 

   --exports.mta_notifications:createNotification(player, \"Sikeresen létrehoztad a felhasználódat. Jelentkezz be\", 1)

 
  2.  jéé mit nem bassz az ég há még az adatbázis is egyezik de ááá nem dehogy ezt te írtad csak szerettél volna hajazni az externálra
 

local registerInsert = dbQuery(connection, \"INSERT INTO accounts SET username = ?, password = ?, mtaserial = ?, ip = ?, regdate = NOW(), lastlogin = NOW()\",

 
3. hmmmm hát még ez is
 

      if row[\"mtaserial\"] == getPlayerSerial(player) and not serials[getPlayerSerial(player)] then
      outputChatBox(\"Ez a serial már társítva van egy felhasználóhoz.\")
      return

 
Tudod mit haggyuk inkább mert még csak most kezdtem el vizslatni :D  azt tudom neked mondani mint amit anyám mondogatott mindig Hazug embert hamarabb utol érik mint a sánta kutyát :) Ja és igen mert a végét már majdnem elfelejtettem részemről én már nem segítek (és most lehetek a szőrös talpú nem izgat :) ) mert az még nem gáz hogy editelsz és elakadsz az a gáz hogy más tollával ékeskedsz
 
 
« Utoljára szerkesztve: 2017. Május 12. - 21:32:20 írta Alukard »

Login-Panel Script hiba.
« Válasz #14 Dátum: 2017. Május 12. - 23:04:36 »
0
Szép kis analízis Sherlock. :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal