Jump to content

Chat System


Recommended Posts

Olá, estou desenvolvendo um sistema de chat privado entre players, porém estou em dúvida com algumas coisas:

  • A Janela da conversa, será uma Edit Box, correto?
  • Como eu elaboro essa parte de o player enviar uma mensagem, e essa mesma mensagem chegar para o outro player?

Ficaria grato com toda ajuda xD

Link to comment
  • Other Languages Moderators
1 hour ago, #DeltaSCR said:
  • A Janela da conversa, será uma Edit Box, correto?

A janela será uma Window º_º

E dentro dela terá um Edit Box.

Mas vc não deixou claro onde a mensagem irá aparecer, se é no chatbox do MTA ou se é dentro dessa janela. Se for dentro dessa janela, vai precisar também de um Memo para mostrar as mensagens e também vai precisar de um Button para enviar mensagem e outro pra fechar a janela.

1 hour ago, #DeltaSCR said:
  • Como eu elaboro essa parte de o player enviar uma mensagem, e essa mesma mensagem chegar para o outro player?

O que vc já tentou fazer?

Link to comment

@Jonas^

O admin é um resource grande, com alguns trechos complexos e seus módulos todos interligados, certamente precisaria de um certo conhecimento para fazer corretamente essa “cópia”.

@#DeltaSCR

Sugiro que você pesquise por resources de mensagem privada, pois na comunidade/web existem vários.

A lógica de um player escrever um texto em um painel, e chegar até outro player, utiliza-se: triggerClientEvent/triggerServerEvent

Link to comment
On 29/05/2019 at 18:05, MaligNos said:

@Jonas^

O admin é um resource grande, com alguns trechos complexos e seus módulos todos interligados, certamente precisaria de um certo conhecimento para fazer corretamente essa “cópia”.

@#DeltaSCR

Sugiro que você pesquise por resources de mensagem privada, pois na comunidade/web existem vários.

A lógica de um player escrever um texto em um painel, e chegar até outro player, utiliza-se: triggerClientEvent/triggerServerEvent

Sim claro que é complexo, concordo totalmente com você, porém pelo que vi aqui os resources que ele posta na página dele, ele tem capacidade pra desmembrar esse sistema de admin todo. não entendi o porque da dificuldade, quero entender como ele mostra resources mais complexas que um simples sistema de chat e não consegue nem começar a parte mais básica.

Link to comment
On 30/05/2019 at 13:10, brunob22 said:

resource admin, complexa? paida kkkkk 

"paida" = piada ??

Sim, complexo! Errado quem pensa o contrário... o código ali é Lua, não tem nada de outro mundo, mas a grandeza da codificação/ligações já o torna complexo.

6 hours ago, Jonas^ said:

Sim claro que é complexo, concordo totalmente com você, porém pelo que vi aqui os resources que ele posta na página dele, ele tem capacidade pra desmembrar esse sistema de admin todo. não entendi o porque da dificuldade, quero entender como ele mostra resources mais complexas que um simples sistema de chat e não consegue nem começar a parte mais básica.

Ai já não sei, sugeri com base no perfil/dúvida.
Na real tem muita gente que fica criando = (copiando/editando) uns painéis por ai, mas mal sabem lógica de programação... então se for o caso, não quer dizer nada.

Link to comment
14 hours ago, MaligNos said:

Ai já não sei, sugeri com base no perfil/dúvida.
Na real tem muita gente que fica criando = (copiando/editando) uns painéis por ai, mas mal sabem lógica de programação... então se for o caso, não quer dizer nada.

Então, a minha ideia é ir criando ele do Zero mesmo, que ai eu vou entendo cada coisa colocada naquele código...

Link to comment
  • Other Languages Moderators
21 hours ago, Jonas^ said:

pelo que vi aqui os resources que ele posta na página dele, ele tem capacidade pra desmembrar esse sistema de admin todo

Opa, parece que temos algumas suspeitas de scripter ilegal. Vamos chamar nossa equipe do Xerox Holmes pra dar uma investigada.

@#DeltaSCR o painel todo é feito em DX mas o campo de digitar a mensagem é em CEGUI, é isso?

  • Haha 1
Link to comment
1 minute ago, Lord Henry said:

Isso é positivo pra qual parte? A do scripter ilegal ou do DX?

A do DX e CEGUI kk

Outra coisa, estou usando onClientGUIClick, obrigatoriamente eu preciso ter uma função secundaria para ser chamada pelo evento?

Link to comment
  • Other Languages Moderators
7 minutes ago, #DeltaSCR said:

onClientGUIClick

Isso só funciona em elementos CEGUI. Se vc estiver criando botões em DX, não vai funcionar.

8 minutes ago, #DeltaSCR said:

eu preciso ter uma função secundaria para ser chamada pelo evento?

Óbvio. Todo evento precisa de uma função para ativar. Caso contrário não existe motivo para declarar este evento, já que ele não ativa função alguma.

Link to comment
Just now, Lord Henry said:

Isso só funciona em elementos CEGUI. Se vc estiver criando botões em DX, não vai funcionar.

Sim, mas é em CEGUI mesmo... Vou explicar um pouco melhor...

(Havia esquecido de citar a GridList)

  • O Jogador seleciona um dos players da GridList - Por isso o onClientGUIClick
  • Após isso abre a janela de chat para os dois, tendo um botão(Em CEGUI) de envio...
Link to comment
7 minutes ago, Lord Henry said:

Era mais fácil fazer tudo direto em CEGUI, hauahauhauahau

Vc ta usando 70% do painel em CEGUI já.

Realmente seria mais fácil, porém eu prezo um pouquinho pelo visual, pois no DX eu tenho uma maior liberdade digamos assim...

Link to comment

Ai pra exibir a tela de mensagens pros dois players, no onClientRender, eu teria que colocar o argumento do player obtido na Grid?

function createCEGUI()
	theWindow = guiCreateWindow(0.27, 0.23, 0.45, 0.53, "Companhia Telefonica TSB", true)
	guiWindowSetMovable(theWindow, false)
	guiWindowSetSizable(theWindow, false)
	--// EDITS
	memoChat = guiCreateMemo(0.02, 0.08, 0.96, 0.78, "\n", true, theWindow)
	editText = guiCreateEdit(0.02, 0.89, 0.97, 0.08, "Digite sua mensagem aqui...", true, theWindow)
end

function DeltaSCR_Click(button, state, absoluteX, absoluteY)
	if button ~= "left" then
		return
	end
	if state == "down" then
		local namePlayer = guiGridListGetItemText(playersList, row, column)
		local thePlayer = getPlayerFromName(namePlayer)
	end
end
addEventHandler("onClientGUIClick", playerList, DeltaSCR_Click, false)

 

Link to comment
28 minutes ago, Lord Henry said:

Vai dar erro na linha 15. playerListrow e column não foram declarados em lugar nenhum.

Ah sim, desculpa, é porque tava em outra parte do código...

addEventHandler("onClientResourceStart", resourceRoot,
	function()
		playersList = guiCreateGridList(0.30, 0.28, 0.11, 0.49, true)
		local column = guiGridListAddColumn(playersList, "Jogadores", 0.9)
		if (column) then
			for _, player in ipairs(getElementsByType("player")) do
			local row = guiGridListAddRow(playersList)
			guiGridListSetItemText (playersList, row, 1, string.gsub(getPlayerName(player), "#%x%x%x%x%x%x", ""), false, false)
			end
		end
		guiSetAlpha(playersList, 0.80)
		guiSetVisible(playersList, false)
	end
)

Porém teria que torná-las globais né?

Link to comment
2 hours ago, Lord Henry said:

Eu prezo pela otimização acima de tudo. Se for pras coisas serem mais bonitas, vou pro GTA 5 de uma vez.

Mas ta ok, vc que sabe.

Incrível como pensamos igual.

(Desculpem eu sair fora do foco do tópico asuhusa)

Se ela esta dentro de um escopo de outra função não vai adiantar de nada, coloque ela no mesmo escopo 

Edited by Jonas^
  • Haha 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...