Jump to content

Bloquear quando puxa o cabo de internet


Recommended Posts

Bom dia,

Preciso de uma ajuda, eu uso uma função em modo client para quando o player puxa o cabo o PACKT LOSS nao deixa ele transferir, porem mesmo assim os jogadores estão conseguindo burlar. Alguem sabe me dizer como eu posso corrigir? Qual função eu devo usar?


Função: 

if getNetworkStats()["packetlossLastSecond"] > 1 then 
 

-- Client 


elseif source == EnviarButon then
	    local itemName = guiGridListGetItemText(TranssWin,guiGridListGetSelectedItem(TranssWin),1)
	    local row_ = guiGridListGetSelectedItem(TranssWin)
		local grilistSex = guiGridListGetItemData(TranssWin, row_, players2)
        local getMoneyToSend = guiGetText(PlayerTavb)
		if itemName ~= "" and getMoneyToSend ~= "" and grilistSex ~= "" then
			if getNetworkStats()["packetlossLastSecond"] > 1 then 
		        startRollMessage2("Inventory", "Conexão Ruim!",255,22,0)
		        return 
			else
			    triggerServerEvent("MWEnviarMWC",getLocalPlayer(),itemName,grilistSex,getMoneyToSend)
			end
			guiSetVisible(TransferirWin,false)
        end
    end

 

  • Like 1
Link to comment
  • Other Languages Moderators

Olá.

Você pode usar o evento onClientPlayerNetworkStatus, que acontece exatamente quando o jogador perde a conexão.

Um exemplo:

local isOffline = false

addEventHandler("onClientPlayerNetworkStatus", root, function(status)
    isOffline = status == 0 and true or false
end)

Daí você checaria com a variável isOffline.

Mas assim, independente da conexão do jogador, certos bugs não deveriam ocorrer. Algo lá no server-side está incorretamente configurado, validações faltando ou algo do tipo.

Edited by andr0xy
  • Like 1
  • Thanks 1
Link to comment

certo, vou testar com essa função. O problema é que quando a conexão do jogador volta, ele recebe tudo aquilo que nao fez quando estava sem conexão.

ex: Transfiro 20 moedas para um jogador, se eu puxar o cabo nao vai. Mais assim que a conexão volta ele transfere aquilo que ele fez enquanto estava sem conexão

  • Like 1
Link to comment
  • Other Languages Moderators

Entendi. Como está o código server-side, a parte que transfere moedas? Às vezes é só um pequeno erro de lógica. Pois, pra ser bem sincero, isso não deveria acontecer, independente da conexão do jogador.

  • Like 1
Link to comment

Talvez se você colocar uma verificação do lado do servidor para checar se o player tem as 20 moedas para transferir e, assim que transferir, retirar as moedas do player também no lado do servidor isso pare de acontecer. Talvez essa verificação ou exclusão de moedas esteja sendo feita do lado do client e como o client está offline, não "desconta" as 20 moedas para uma próxima verificação. Isso é só uma possibilidade que eu imaginei aqui... 

  • Thanks 1
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...