JehadGh Posted May 2, 2019 Posted May 2, 2019 (edited) hello guys first things first i'm a beginner so i have a problem in a simple code that i tried too many times , the error that when i type /data i get "you are a guest" even if i have logged in my account here is the code server local guests = { } local players = { } function join() setElementData( source, "guests", 1) end addEventHandler("onPlayerJoin", getRootElement(), join) function login() setElementData( source, "players", 1) end addEventHandler("onPlayerLogin", getRootElement(), login) client function check() if (getElementData( localPlayer, "guests") == 1 ) then outputChatBox("You are a guest") else if (getElementData( localPlayer, "players") == 1 ) then outputChatBox("You are a player") end end end addCommandHandler("data", check) i have tried to do it in the client only and its worked, but i want to know how the data work again i'm know i'm a beginner but in my language there is no good courses in lua so i don't understand everything , thanks Edited May 2, 2019 by JehadGh
Moderators Patrick Posted May 2, 2019 Moderators Posted May 2, 2019 (edited) When player logged in, you don't set "guests" elementdata to false/nil. So, (getElementData(localPlayer, "guests") == 1) always returns true. (==> don't check second condition) You can solve it, if you set "guest" false/nil, when player logged in. btw: - "else if" is incorrect, the correct is "elseif" - guest and players tables are unused, so you can remove it - use /debugscript 3 One solution: -- SERVER function login() setElementData(source, "loggedin", true) end addEventHandler("onPlayerLogin", getRootElement(), login) -- CLIENT function check() if (getElementData(localPlayer, "loggedin")) then outputChatBox("You are a player") else outputChatBox("You are a guest") end end addCommandHandler("data", check) Edited May 2, 2019 by stPatrick
Moderators Patrick Posted May 2, 2019 Moderators Posted May 2, 2019 (edited) 2 minutes ago, JehadGh said: so 1 means true and 0 means false? No, 0 and 1 is Integer. So, 1 means 1 and 0 means 0. Edited May 2, 2019 by stPatrick
JehadGh Posted May 2, 2019 Author Posted May 2, 2019 (edited) your so nice with me lol , i just tried the code and when i start the mod i get this ERROR: Loading script failed , unexpected symbol near " in this line addEventHandler("onPlayerLogin", getRootElement(), login) Edited May 2, 2019 by JehadGh
Moderators Patrick Posted May 2, 2019 Moderators Posted May 2, 2019 2 minutes ago, JehadGh said: your so nice with me lol , i just tried the code and when i start the mod i get this ERROR: Loading script failed , unexpected symbol near " in this line addEventHandler("onPlayerLogin", getRootElement(), login) In line 5, at the end have a invisible character, delete it.
JehadGh Posted May 2, 2019 Author Posted May 2, 2019 sorry but one last question -- CLIENT 1. function check() 2. if (getElementData(localPlayer, "loggedin")) then 3. outputChatBox("You are a player") 4. else 5. outputChatBox("You are a guest") 6. end 7. end 8. addCommandHandler("data", check) why we didn't type true in the line 2. like this if (getElementData(localPlayer, "loggedin") == true ) then
Moderators Patrick Posted May 2, 2019 Moderators Posted May 2, 2019 (edited) 13 minutes ago, JehadGh said: sorry but one last question -- CLIENT 1. function check() 2. if (getElementData(localPlayer, "loggedin")) then 3. outputChatBox("You are a player") 4. else 5. outputChatBox("You are a guest") 6. end 7. end 8. addCommandHandler("data", check) why we didn't type true in the line 2. like this if (getElementData(localPlayer, "loggedin") == true ) then Because: true == true is true (So, true == true and true are same.) Edited May 2, 2019 by stPatrick
nxFairlywell Posted May 3, 2019 Posted May 3, 2019 3 hours ago, JehadGh said: sorry but one last question -- CLIENT 1. function check() 2. if (getElementData(localPlayer, "loggedin")) then 3. outputChatBox("You are a player") 4. else 5. outputChatBox("You are a guest") 6. end 7. end 8. addCommandHandler("data", check) why we didn't type true in the line 2. like this if (getElementData(localPlayer, "loggedin") == true ) then Cause 1 == 2 means false if true==true means true if false==true means false if false==false means true when you type ( if true then ) you'll get true cause true means true
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now