+snts Posted October 14, 2019 Share Posted October 14, 2019 Mesmo com o modo do freeroam desativado, para resolver o problema do chat duplicado é no freeroam? Link to comment
root. Posted October 14, 2019 Share Posted October 14, 2019 Se você deseja fazer um bate-papo personalizado, desative qualquer recurso que use o evento onPlayerChat Link to comment
+snts Posted October 14, 2019 Author Share Posted October 14, 2019 1 hour ago, Rut said: Se você deseja fazer um bate-papo personalizado, desative qualquer recurso que use o evento onPlayerChat Eu estou desenvolvendo um servidor RP, consequentemente preciso de um chat RP para o mesmo, porém quando eu ativo o chat RP, ele duplica as mensagens. Há a possibilidade de criar um script de se no T, a mensagem não começar com / dar um outputchatbox de erro? Link to comment
root. Posted October 14, 2019 Share Posted October 14, 2019 15 minutes ago, +snts said: Eu estou desenvolvendo um servidor RP, consequentemente preciso de um chat RP para o mesmo, porém quando eu ativo o chat RP, ele duplica as mensagens. Há a possibilidade de criar um script de se no T, a mensagem não começar com / dar um outputchatbox de erro? Se você tiver problemas com o seu código, você deve publicá-lo. Quanto ao bate-papo com a tecla T, você deve usar o evento 'onPlayerChat' com um outputChatBox e cancelar o evento. Aqui está um exemplo que fornece o mesmo wiki do MTA: -- define our chat radius local chatRadius = 20 --units -- define a handler that will distribute the message to all nearby players function sendMessageToNearbyPlayers(message, messageType) -- we will only send normal chat messages, action and team types will be ignored if messageType == 0 then -- get the chatting player's position local posX1, posY1, posZ1 = getElementPosition(source) -- loop through all player and check distance for id, player in ipairs(getElementsByType("player")) do local posX2, posY2, posZ2 = getElementPosition(player) if getDistanceBetweenPoints3D(posX1, posY1, posZ1, posX2, posY2, posZ2) <= chatRadius then outputChatBox(message, player) end end end -- block the original message by cancelling this event cancelEvent() end -- attach our new chat handler to onPlayerChat addEventHandler( "onPlayerChat", getRootElement(), sendMessageToNearbyPlayers ) Link to comment
+snts Posted October 14, 2019 Author Share Posted October 14, 2019 30 minutes ago, Rut said: Se você tiver problemas com o seu código, você deve publicá-lo. Quanto ao bate-papo com a tecla T, você deve usar o evento 'onPlayerChat' com um outputChatBox e cancelar o evento. Aqui está um exemplo que fornece o mesmo wiki do MTA: -- define our chat radius local chatRadius = 20 --units -- define a handler that will distribute the message to all nearby players function sendMessageToNearbyPlayers(message, messageType) -- we will only send normal chat messages, action and team types will be ignored if messageType == 0 then -- get the chatting player's position local posX1, posY1, posZ1 = getElementPosition(source) -- loop through all player and check distance for id, player in ipairs(getElementsByType("player")) do local posX2, posY2, posZ2 = getElementPosition(player) if getDistanceBetweenPoints3D(posX1, posY1, posZ1, posX2, posY2, posZ2) <= chatRadius then outputChatBox(message, player) end end end -- block the original message by cancelling this event cancelEvent() end -- attach our new chat handler to onPlayerChat addEventHandler( "onPlayerChat", getRootElement(), sendMessageToNearbyPlayers ) Existe a maneira de no próprio script do chat RP cancelar o envio repetitivo? Link to comment
Eficiencia Posted October 14, 2019 Share Posted October 14, 2019 sim, se seu chat for da net provavelmente ele já ira cancelar o chat, veja se o Freeroam e o Play estão desativados Link to comment
root. Posted October 14, 2019 Share Posted October 14, 2019 2 hours ago, +snts said: Existe a maneira de no próprio script do chat RP cancelar o envio repetitivo? se você não tiver dificuldade em ler, verá que eu lhe disse para cancelar o evento onPlayerChat para adicionar um outputChatBox e não repeti-lo com o chat padrão Link to comment
+snts Posted October 14, 2019 Author Share Posted October 14, 2019 6 hours ago, Eficiencia said: sim, se seu chat for da net provavelmente ele já ira cancelar o chat, veja se o Freeroam e o Play estão desativados Ambos estão desativados e mesmo assim ele não cancela Link to comment
CrowleySCR Posted October 17, 2019 Share Posted October 17, 2019 procure por : Como tirar chat repetitivo MTA:SA no youtube Link to comment
DNL291 Posted October 18, 2019 Share Posted October 18, 2019 Pode ser um conflito entre dois resources com o evento onPlayerChat. Para tirar essa dúvida você pode rodar esse código no servidor: -- Lado server function onPreFunction( sourceResource, eventName, eventSource, eventClient, luaFilename, luaLineNumber, ... ) if eventName == "onPlayerChat" then local resname = sourceResource and getResourceName(sourceResource) local args = { ... } info = { resource = resname, event = eventName, script = luaFilename, linha = luaLineNumber, arguments = args } iprint( info ) end end addDebugHook( "preEvent", onPreFunction) Crie e ligue o resource com esse código, reproduza a duplicação no chat e veja as informações no seu debug (/debugscript 3). Você pode copiar as informações pelo Console (do cliente e do server). Também será melhor você postar aqui o código do chat RP que você mesmo disse estar usando. Link to comment
+snts Posted October 20, 2019 Author Share Posted October 20, 2019 O problema já foi resolvido, agradeço a todos os envolvidos. 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