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

Share this post


Link to post
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?

Share this post


Link to post

É porque tipo, a Janela que eu quis dizer não foi a Window em Si, mas sim a parte onde vão ser trocadas as mensagens...

E também por questões de estética, nesse sistema eu estou usando CEGUI, e DX.

Share this post


Link to post
Posted (edited)
12 minutes ago, Lord Henry said:

O que vc já tentou fazer?

Up.

Edited by Lord Henry
  • Haha 1

Share this post


Link to post

Painel admin tem o código pronto, basta ter vontade de dar ctrl + c + v e adaptar para jogadores falar entre eles já que lá esta entre admins.

Share this post


Link to post

@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

Share this post


Link to post

Eu havia dado uma olhada no admin, e realmente, é tudo muito complexo lá, vários arquivos, enfim...

Share this post


Link to post

resource admin, complexa? paida kkkkk 

 

bom da uma olhada em resources " simples " na community sobre chat que tu acha

  • Haha 1

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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...

Share this post


Link to post
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

Share this post


Link to post
1 minute ago, Lord Henry said:

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?

Positivo.

Share this post


Link to post

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

Share this post


Link to post
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?

Share this post


Link to post
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.

Share this post


Link to post
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...

Share this post


Link to post

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

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

Share this post


Link to post
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...

Share this post


Link to post

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.

Share this post


Link to post

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)

 

Share this post


Link to post
Posted (edited)

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

Edited by Lord Henry

Share this post


Link to post
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é?

Share this post


Link to post
Posted (edited)
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

Share this post


Link to post

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.