fairyoggy Posted March 22, 2020 Share Posted March 22, 2020 How to call a variable from the server side to the client? What's my mistake? --client function rain(kaka) outputChatBox ( "The client says: " .. kaka, client ) end addEvent("rain", true) addEventHandler( "rain", localPlayer, rain ) --server function gap() local kaka = "321" triggerClientEvent(localPlayer, "rain", localPlayer, kaka) end addEvent( "gap", true ) addEventHandler( "gap", resourceRoot, gap ) ERROR: attemp to concatenate local "kaka" (a nil value) Link to comment
The_GTA Posted March 22, 2020 Share Posted March 22, 2020 (edited) Hello slapztea, line 2: on the clientside, the outputChatBox function does not take an element but a color number value as second argument. line 11: the global variable "localPlayer" does not exist on the server-side; you either could use root to send to all players or select a specific player instead using getPlayerFromName/getElementsByType/etc. I think that your script does have a working idea behind it; you just have to improve it a little. Edited March 22, 2020 by The_GTA 1 Link to comment
fairyoggy Posted March 23, 2020 Author Share Posted March 23, 2020 9 hours ago, The_GTA said: Здравствуйте, slapztea, строка 2: на стороне клиента функция outputChatBox принимает не элемент, а значение номера цвета в качестве второго аргумента. строка 11: глобальная переменная "localPlayer" не существует на стороне сервера; вы можете либо использовать root для отправки всем игрокам, либо выбрать конкретного игрока вместо этого, используя getPlayerFromName / getElementsByType / etc. Я думаю, что у вашего сценария есть рабочая идея; вам просто нужно немного его улучшить. I do not yet understand how to solve this. Can you tell me how to use the element I need to transfer to the client? Link to comment
The_GTA Posted March 23, 2020 Share Posted March 23, 2020 (edited) 28 minutes ago, slapztea said: I do not yet understand how to solve this. Can you tell me how to use the element I need to transfer to the client? I like helping you by example. I cannot understand the purpose behind your script so I can only give you general advice: Most of the time just use root as baseElement for triggerClientEvent. If the event is limited to a resource then use resourceRoot. And if you want the event to be applied to a vehicle or object across resources then use that element. --client function rain(kaka) outputChatBox ( "The client says: " .. kaka, client ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) --server function gap() local kaka = "321" triggerClientEvent("rain", resourceRoot, kaka) end addEvent( "gap", true ) addEventHandler( "gap", resourceRoot, gap ) You probably won't understand why I removed the first argument to triggerClientEvent, but only use localPlayer if you know which player element to send the event to. Edited March 23, 2020 by The_GTA 1 Link to comment
fairyoggy Posted March 23, 2020 Author Share Posted March 23, 2020 14 minutes ago, The_GTA said: I like helping you by example. I cannot understand the purpose behind your script so I can only give you general advice: Most of the time just use root as baseElement for triggerClientEvent. If the event is limited to a resource then use resourceRoot. And if you want the event to be applied to a vehicle or object across resources then use that element. --client function rain(kaka) outputChatBox ( "The client says: " .. kaka, client ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) addCommandHandler("gh",rain) --server function gap() local kaka = "321" triggerClientEvent("rain", resourceRoot, kaka) end addEvent( "gap", true ) addEventHandler( "gap", resourceRoot, gap ) You probably won't understand why I removed the first argument to triggerClientEvent, but only use localPlayer if you know which player element to send the event to. I tried to use it like this --client function rain(kaka) outputChatBox ( "The client says: " .. kaka, client ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) addCommandHandler("gh",rain) --server function gap() local kaka = "321" triggerClientEvent("rain", resourceRoot, kaka) end addEvent( "gap", true ) addEventHandler( "gap", resourceRoot, gap ) Why when do I use the command "gh" writes to chat "The client says: gh" but i need "The Client says: 321" How to do it? Link to comment
The_GTA Posted March 23, 2020 Share Posted March 23, 2020 --client function rain(kaka) outputChatBox ( "The client says: " .. kaka, client ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) addCommandHandler("gh",function(cmdName, kaka) rain(kaka) end) 1 Link to comment
fairyoggy Posted March 23, 2020 Author Share Posted March 23, 2020 4 minutes ago, The_GTA said: --client function rain(kaka) outputChatBox ( "The client says: " .. kaka, client ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) addCommandHandler("gh",function(cmdName, kaka) rain(kaka) end) So I returned to the very first error "ERROR: attemp to concatenate local "kaka" (a nil value)" Link to comment
The_GTA Posted March 23, 2020 Share Posted March 23, 2020 Just now, slapztea said: So I returned to the very first error "ERROR: attemp to concatenate local "kaka" (a nil value)" What did you do to get this error? 1 Link to comment
fairyoggy Posted March 23, 2020 Author Share Posted March 23, 2020 1 minute ago, The_GTA said: What did you do to get this error? type "gh" in chat Link to comment
The_GTA Posted March 23, 2020 Share Posted March 23, 2020 (edited) The reason is because you have not defined the variable "kaka" for the command handler "gh". If you type "/gh 321" into the chat, then it should work. --client function rain(kaka) outputChatBox ( "The client says: " .. kaka ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) addCommandHandler("gh", function(cmdName, kaka) if not kaka then outputChatBox("missing kaka argument to gh command"); return end rain(kaka) end ) Edited March 23, 2020 by The_GTA 1 Link to comment
fairyoggy Posted March 23, 2020 Author Share Posted March 23, 2020 2 minutes ago, The_GTA said: The reason is because you have not defined the variable "kaka" for the command handler "gh". If you type "/gh 321" into the chat, then it should work. --client function rain(kaka) outputChatBox ( "The client says: " .. kaka, client ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) addCommandHandler("gh", function(cmdName, kaka) if not kaka then outputChatBox("missing kaka argument to gh command"); return end rain(kaka) end ) If do as you say it works BUT this is not what I need. For example, I type /gh 21421 and a chat message will appear "The client says: 21421" but i need so that the value is taken from a variable kaka from serverside. And it should turn out "The client says: 321" and nothing else, until the variable changes on the server side Link to comment
The_GTA Posted March 23, 2020 Share Posted March 23, 2020 (edited) 13 minutes ago, slapztea said: If do as you say it works BUT this is not what I need. For example, I type /gh 21421 and a chat message will appear "The client says: 21421" but i need so that the value is taken from a variable kaka from serverside. And it should turn out "The client says: 321" and nothing else, until the variable changes on the server side OK. Let's take your requirements into account. Is a server-side commandHandler called "gh" fine for you? --client function rain(kaka) outputChatBox ( "The client says: " .. kaka ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) --server function gap() local kaka = "321" triggerClientEvent("rain", resourceRoot, kaka) end addEvent( "gap", true ) addEventHandler( "gap", resourceRoot, gap ) addCommandHandler("gh", function(p, cmdName) gap() end) Edited March 23, 2020 by The_GTA 1 Link to comment
fairyoggy Posted March 23, 2020 Author Share Posted March 23, 2020 4 minutes ago, The_GTA said: OK. Let's take your requirements into account. Is a server-side commandHandler called "gh" fine for you? --clientfunction rain(kaka)outputChatBox ( "The client says: " .. kaka, client )endaddEvent("rain", true)addEventHandler( "rain", resourceRoot, rain )--serverfunction gap()local kaka = "321"triggerClientEvent("rain", resourceRoot, kaka)endaddEvent( "gap", true )addEventHandler( "gap", resourceRoot, gap )addCommandHandler("gh", function(p, cmdName) gap() end) Now it works as intended, but is it possible to implement the call of this command on the client? Link to comment
The_GTA Posted March 23, 2020 Share Posted March 23, 2020 (edited) 10 minutes ago, slapztea said: Now it works as intended, but is it possible to implement the call of this command on the client? --client function rain(kaka) outputChatBox ( "The client says: " .. kaka ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) addCommandHandler("gh", function() triggerServerEvent("gap", resourceRoot) end) --server function gap() local kaka = "321" triggerClientEvent(client, "rain", resourceRoot, kaka) end addEvent( "gap", true ) addEventHandler( "gap", resourceRoot, gap ) EDIT: fixed something by adding "client" global variable. Sorry I have forgotten about the existance of it for a second. EDIT2: sorry another mistake fixed at addCommandHandler... Edited March 23, 2020 by The_GTA 1 Link to comment
fairyoggy Posted March 23, 2020 Author Share Posted March 23, 2020 2 minutes ago, The_GTA said: --client function rain(kaka) outputChatBox ( "The client says: " .. kaka, client ) end addEvent("rain", true) addEventHandler( "rain", resourceRoot, rain ) addCommandHandler("gh", resourceRoot, function() triggerServerEvent("gap", resourceRoot) end) --server function gap() local kaka = "321" triggerClientEvent("rain", resourceRoot, kaka) end addEvent( "gap", true ) addEventHandler( "gap", resourceRoot, gap ) Now I don’t know what’s the matter. Nothing happens on command, writes nothing in debug Link to comment
The_GTA Posted March 23, 2020 Share Posted March 23, 2020 5 minutes ago, slapztea said: Now I don’t know what’s the matter. Nothing happens on command, writes nothing in debug I have fixed a mistake I made at addCommandHandler. Sorry about that. Please copy the client script again. 1 Link to comment
fairyoggy Posted March 23, 2020 Author Share Posted March 23, 2020 2 minutes ago, The_GTA said: I have fixed a mistake I made at addCommandHandler. Sorry about that. Please copy the client script again. Now everything works as it should. You helped me a lot, thank you very much! Link to comment
The_GTA Posted March 23, 2020 Share Posted March 23, 2020 1 minute ago, slapztea said: Now everything works as it should. You helped me a lot, thank you very much! You're welcome. Link to comment
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