function LoginButton(Player, Username, Password)
local Password = sha256(Password)
local CheckUsernamePassword = mysql_query(Database,\"SELECT * FROM `accounts` WHERE `Username` = \'\"..Username..\"\' AND `Password` = \'\"..Password..\"\'\")
if (mysql_num_rows (CheckUsernamePassword) > 0) then
local Fetch = mysql_fetch_assoc(CheckUsernamePassword)
outputChatBox(Fetch.Money)
setPlayerMoney(Player, Fetch.Money)
else
outputChatBox(\"Rossz!\")
end
end
addEvent(\"Login\", true)
addEventHandler(\"Login\", resourceRoot, LoginButton)
[/quote]
Client oldal:
function LoginButton(Player)
Username = guiGetText(GUIEditor.edit[1])
Password = guiGetText(GUIEditor.edit[2])
triggerServerEvent (\"Login\", resourceRoot, Player, Username, Password, client)
end
[/quote]
Hiba:
Bad argument @ \'setPlayerMoney\' [Expected element at argument 1, got string \'left\']
[/quote]
Én saját titkosítási módszert használnék, de ez már a Te döntésed. A SHA256 nem a legbiztonságosabb, de még az egyszerű MD5-ök is feltörhetőek már. :/
Bad argument @ \'setPlayerMoney\' [Expected element at argument 1, got string \'left\']
[/quote]
Amikor átviszem server oldalról a client oldalra a \'Player\' - t, az Event segítségével akkor nem tudja, hogy kinek kell adni a pénzt.
@DrAkE nem minden esetben célszerű megoldás a client, például ha egy triggert le akarsz védeni a módosított mta kliensek elől akkor resoureRoot-al érdemes triggerelni, és szerveroldalon ha a client változó él akkor a scriptet megállítani, ezáltal nem fognak tudni semmit sem csinálni a módosított kliensekkel.
Módosított MTA klienssel fel se enged az alap MTA szerverekre.
Másik meg:
Warning: You should use the global variable client serverside instead of passing the localPlayer by parameter or source. Otherwise event faking (passing another player instead of the localPlayer) would be possible. More information at addEventHandler
Note: To save server CPU, you should avoid setting theElement to the root element where possible. Using resourceRoot is usually sufficient if the event is handled by the same resource on the server. |
Note: To save server CPU, you should avoid setting theElement to the root element where possible. Using resourceRoot is usually sufficient if the event is handled by the same resource on the server.