Szerző Téma: getMaxPlayers Kliens oldalon?  (Megtekintve 1633 alkalommal)

getMaxPlayers Kliens oldalon?
« Dátum: 2017. augusztus 11. - 21:23:31 »
0 Show voters
Noos, az lenne a problémám, hogy kliens oldalon valahogy dxDrawText el ki szeretném írni a maximális játékos számot, de ugye ez egy szerver oldali funkció, és sehogysem sikerül megcsinálnom. Próbáltam szerver oldalon létrehozni egy \"lekérős\" cuccot 
 

function maxplayer()
getMaxPlayers()
end
addEvent(\"maxPlayers\", true)
addEventHandler(\"maxPlayers\", root, maxplayer)

 
Ami szép és jó elvileg működik. 
 
Kliens oldali része : 
 

function maxp()
    local maxp = triggerServerEvent(\"maxPlayers\", root)
    outputChatBox(\"maxPlayers: \" ..maxp)
end
addCommandHandler(\"tesztike\", maxp)

 
Itt már valami nemjó, de nem tudok rájönni micsoda. 
 
Error: attempt to concatenate local \'maxp\' (a boolean value) 
 
Segítene valaki? :D Előre is köszi 

getMaxPlayers Kliens oldalon?
« Válasz #1 Dátum: 2017. augusztus 11. - 21:31:29 »
+1 Show voters
Szerver oldalra:
 

Eventeknél nincs return, köszi @id100

 
 E: De mielőtt elkezdesz szkriptelni, olvasd át ezt: https://www.lua.org/docs.html
« Utoljára szerkesztve: 2017. augusztus 13. - 09:34:09 írta thegergo02 »

Nem elérhető id100

  • 903
    • Profil megtekintése
getMaxPlayers Kliens oldalon?
« Válasz #2 Dátum: 2017. augusztus 12. - 00:52:14 »
+2 Show voters
De eventeknél nincs return genius
 
Külön változó kell rá, két event (kliens oldalra 1, szerverre 1)

getMaxPlayers Kliens oldalon?
« Válasz #3 Dátum: 2017. augusztus 12. - 23:31:08 »
+1 Show voters
Esetleg, ha még kezdőbb vagy a fejlesztésben, ajánlom, hogy amikor egy player felcsatlakozik, akkor állítsd be egy elementData-ba a max playerszámot szerveroldalon, és kliensoldalon egyszerűen le is tudod kérni.
 
(Szerveroldal: addEventHandler(\'onPlayerJoin\', root, function() setElementData(source, \'server:maxp\', getMaxPlayers()) end) || Kliensoldal: getElementData(localPlayer, \'server:maxp\'))
 
Ha @id100 megoldását választod, akkor setTimer()-rel frissítsd a max playerszámot, nehogy betedd onClientRender-be, mert szétfagy a szerver.. 
« Utoljára szerkesztve: 2017. augusztus 12. - 23:31:39 írta MakroBox »

getMaxPlayers Kliens oldalon?
« Válasz #4 Dátum: 2017. augusztus 13. - 00:59:19 »
0 Show voters
Köszi mindenkinek :3 

getMaxPlayers Kliens oldalon?
« Válasz #5 Dátum: 2017. augusztus 13. - 10:27:58 »
0 Show voters
Idézetet írta: MakroBox date=1502573468


   
      Esetleg, ha még kezdőbb vagy a fejlesztésben, ajánlom, hogy amikor egy player felcsatlakozik, akkor állítsd be egy elementData-ba a max playerszámot szerveroldalon, és kliensoldalon egyszerűen le is tudod kérni.
   
   
      (Szerveroldal: addEventHandler(\'onPlayerJoin\', root, function() setElementData(source, \'server:maxp\', getMaxPlayers()) end) || Kliensoldal: getElementData(localPlayer, \'server:maxp\'))
   
   
      Ha @id100 megoldását választod, akkor setTimer()-rel frissítsd a max playerszámot, nehogy betedd onClientRender-be, mert szétfagy a szerver.. 


dxDrawText(\"Online Játékos: \"..tostring(cucc)  \" / \"..onlineplayer, sx-770, sy-260, _, _, tocolor(255, 255, 255, 255), 1, dxfont)
 
Error : \'attempt to call string value\' ha pedig a tostringet leszedem róla akkor \'attempt to call number value\' ha pedig csak simán a local cucc ot hívom meg amiben benne van a getElementData akkor pedig \'attempt to call local cucc (boolean value). De ha egy külön funkcióban outputchatboxosan íratom ki vele akkor működik. Mi lehet a baja, és hogyan lehet megcsinálni? 
« Utoljára szerkesztve: 2017. augusztus 13. - 10:42:25 írta Noname20 »

getMaxPlayers Kliens oldalon?
« Válasz #6 Dátum: 2017. augusztus 13. - 10:43:39 »
+1 Show voters
mi az a \'cucc\'? Létezik az valahol?

getMaxPlayers Kliens oldalon?
« Válasz #7 Dátum: 2017. augusztus 13. - 10:46:36 »
0 Show voters

function teszt()
    local cucc = getElementData(localPlayer, \'server:maxp\')
    outputChatBox(\"maxjatekos: \" ..cucc)
end
addCommandHandler(\"teszt\", teszt)
 
function szerveroldal()
    triggerServerEvent(\"maxjatekos\", localPlayer)
end
addEventHandler(\'onClientJoin\', getRootElement(), szerveroldal)
local cucc = getElementData(localPlayer, \'server:maxp\')
-- Szerver oldal
 
addEventHandler(\'onPlayerJoin\', root, function() setElementData(source, \'server:maxp\', getMaxPlayers()) end)
function maxPlayer()
setElementData(source, \'server:maxp\', getMaxPlayers())
end
addEventHandler(\"onPlayerJoin\", root, maxPlayer)
addEvent(\"maxjatekos\", true)
addEventHandler(\"maxjatekos\", root, maxPlayer)

 
És a funkción belül is megadtam neki local változónak
« Utoljára szerkesztve: 2017. augusztus 13. - 10:46:59 írta Noname20 »

getMaxPlayers Kliens oldalon?
« Válasz #8 Dátum: 2017. augusztus 13. - 10:47:47 »
+1 Show voters
Idézetet írta: Noname20 date=1502612878


   
      dxDrawText(\"Online Játékos: \"..tostring(cucc)  \" / \"..onlineplayer, sx-770, sy-260, _, _, tocolor(255, 255, 255, 255), 1, dxfont)
   


Szerintem egy .. kimaradt, próbáld meg így:
 
dxDrawText(\"Online Játékos: \"..tostring(cucc)..  \" / \"..onlineplayer, sx-770, sy-260, _, _, tocolor(255, 255, 255, 255), 1, dxfont)

getMaxPlayers Kliens oldalon?
« Válasz #9 Dátum: 2017. augusztus 13. - 10:47:55 »
+1 Show voters
onClientPlayerJoin
 
E: Rosszul írtad kliensoldalon.
« Utoljára szerkesztve: 2017. augusztus 13. - 10:48:29 írta thegergo02 »

getMaxPlayers Kliens oldalon?
« Válasz #10 Dátum: 2017. augusztus 13. - 10:48:51 »
+1 Show voters
Idézetet írta: MakroBox date=1502614067


   
      Szerintem egy .. kimaradt, próbáld meg így:
   
   
      dxDrawText(\"Online Játékos: \"..tostring(cucc)..  \" / \"..onlineplayer, sx-770, sy-260, _, _, tocolor(255, 255, 255, 255), 1, dxfont)
   


És tényleg lool :D Köszönöm szépen mindenkinek a segítséget! 

getMaxPlayers Kliens oldalon?
« Válasz #11 Dátum: 2017. augusztus 13. - 10:51:47 »
+1 Show voters
Idézetet írta: thegergo02 date=1502614075


   
      onClientPlayerJoin
   
   
      E: Rosszul írtad kliensoldalon.
   


És ahogy mondja @thegergo02, rosszul írtad az addEventHandler-t. De azt töröld is ki, szerveroldalon elég az onPlayerJoin, nem kell kliensoldalról egy triggerServerEventtel meghívni. 

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal