Portal SAMP
[Ajuda] Criar um PC Client - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Criar um PC Client (/showthread.php?tid=292)

Páginas: 1 2


Criar um PC Client - annety - 07/11/2020

Como eu faço pra criar um client de PC

Aí se vc logar pelo client personalizado seta ingame a variavel, logadoPeloClient[playerid] = true;

???


RE: Criar um PC Client - willttoonn - 07/11/2020

Essa pergunta exige uma resposta muito complexa.

A criação de um software exige conhecimento em outras linguagens e tecnologias. Isso poderia ser feito através da utilização da linguagem C# utilizando bibliotecas gráficas, socket ou MySQL. Pode ser feito com outras linguagens também como Python, C/C++ ou qualquer outra que exista bibliotecas gráficas compatíveis.

É necessário um nível mais avançado em programação no geral para fazer isso.


RE: Criar um PC Client - annety - 14/11/2020

(07/11/2020 20:20)João Pedro Escreveu: Essa pergunta exige uma resposta muito complexa.

A criação de um software exige conhecimento em outras linguagens e tecnologias. Isso poderia ser feito através da utilização da linguagem C# utilizando bibliotecas gráficas, socket ou MySQL. Pode ser feito com outras linguagens também como Python, C/C++ ou qualquer outra que exista bibliotecas gráficas compatíveis.

É necessário um nível mais avançado em programação no geral para fazer isso.

Tirando toda parte gráfica...
MYSQL pq? pq salvar algo no banco?
Eu consigo enviar um socket por uma aplicação node (https://socket.io/) e receber isso de alguma forma no GM em PAWN?

Pra abrir o GTA com um SAMP conectado em servidor já mandando usuário, tem um CMD não tem?


RE: Criar um PC Client - annety - 05/12/2020

como faz a conexão do samp? sem verificar nem nada
tipo clicar em um botão abrir o samp no server XXX?


RE: Criar um PC Client - annety - 07/12/2020

como faz pra fazer um programa externo logar em um servidor XYZ de samp? sem setar nada, só logar mesmo


RE: Criar um PC Client - willttoonn - 07/12/2020

Eu citei MySQL como uma opção de comunicação entre servidor e cliente uma vez que o MySQL é muito bem portável no SA-MP.

Existe um plugin de socket para o SA-MP mas nunca utilizei e não me parece estável por eu não ter visto cases utilizando ele.

Em relação a abrir o SA-MP e em um servidor específico, não me recordo os parâmetros mas tenta executar o aplicativo do SA-MP em linha de comando enviando IP : PORTA como parâmetro, algo como: samp.exe 127.0.0.1:7777


RE: Criar um PC Client - Dr Editor - 08/12/2020

(07/11/2020 18:39)annety Escreveu: Como eu faço pra criar um client de PC

Aí se vc logar pelo client personalizado seta ingame a variavel, logadoPeloClient[playerid] = true;

???

Qualquer linguagem com suporte a socket, banco de dados ou requisição web seria possível. Cada uma com seus prós e contras.
Socket seria o mais viável, porém em se tratando de SAMP acaba se tornando um pouco mais complexo, isso porque o plugin não recebe grande quantidade de dados de uma só vez. É necessário concatenar dados ao invés de receber tudo de uma só vez (como um servidor qualquer).

(14/11/2020 16:56)annety Escreveu:
(07/11/2020 20:20)João Pedro Escreveu: Essa pergunta exige uma resposta muito complexa.

A criação de um software exige conhecimento em outras linguagens e tecnologias. Isso poderia ser feito através da utilização da linguagem C# utilizando bibliotecas gráficas, socket ou MySQL. Pode ser feito com outras linguagens também como Python, C/C++ ou qualquer outra que exista bibliotecas gráficas compatíveis.

É necessário um nível mais avançado em programação no geral para fazer isso.

Tirando toda parte gráfica...
MYSQL pq? pq salvar algo no banco?
Eu consigo enviar um socket por uma aplicação node (https://socket.io/) e receber isso de alguma forma no GM em PAWN?
...
Como dito anteriormente, como socket possui algumas limitações, o banco de dados acaba sendo uma boa opção NO SAMP.
Sabendo trabalhar com socket no SAMP você constrói coisas bacanas, de fato. Apesar de ter alguns obstáculos como transferência em massa e codificação (de texto), dá pra montar um bom cliente.

(07/12/2020 01:20)annety Escreveu: como faz pra fazer um programa externo logar em um servidor XYZ de samp? sem setar nada, só logar mesmo
Vamos criar um cenário, onde para poder jogar no servidor é necessário conexão via cliente.
Ao conectar no servidor o jogador se depara com uma textdraw que tapa a tela toda e só sai após conectar o cliente.

Samp server em OnPlayerConnect (exemplo de callback):

Código:
new socket = socket_create(TCP);
socket_listen(socket, 3535); // Porta
socket_set_max_connections(socket, 1); // Uma conexão por socket


O servidor abriu a conexão e, agora, via cliente você fará a conexão.
Faça com que o cliente envie algum dado específico informando que o cliente foi aberto e ao fazer a leitura, remova a textdraw e dê continuidade ao jogo do jogador.
Código:
onSocketReceiveData(Socket:id, remote_clientid, data[], data_len); // Callback chamada ao receber dados do cliente


Mais informações do plugin socket https://github.com/pBlueG/Socket/blob/master/socket.inc


RE: Criar um PC Client - annety - 13/12/2020

(08/12/2020 14:05)Dr Editor Escreveu:
(07/11/2020 18:39)annety Escreveu: Como eu faço pra criar um client de PC

Aí se vc logar pelo client personalizado seta ingame a variavel, logadoPeloClient[playerid] = true;

???

Qualquer linguagem com suporte a socket, banco de dados ou requisição web seria possível. Cada uma com seus prós e contras.
Socket seria o mais viável, porém em se tratando de SAMP acaba se tornando um pouco mais complexo, isso porque o plugin não recebe grande quantidade de dados de uma só vez. É necessário concatenar dados ao invés de receber tudo de uma só vez (como um servidor qualquer).

(14/11/2020 16:56)annety Escreveu:
(07/11/2020 20:20)João Pedro Escreveu: Essa pergunta exige uma resposta muito complexa.

A criação de um software exige conhecimento em outras linguagens e tecnologias. Isso poderia ser feito através da utilização da linguagem C# utilizando bibliotecas gráficas, socket ou MySQL. Pode ser feito com outras linguagens também como Python, C/C++ ou qualquer outra que exista bibliotecas gráficas compatíveis.

É necessário um nível mais avançado em programação no geral para fazer isso.

Tirando toda parte gráfica...
MYSQL pq? pq salvar algo no banco?
Eu consigo enviar um socket por uma aplicação node (https://socket.io/) e receber isso de alguma forma no GM em PAWN?
...
Como dito anteriormente, como socket possui algumas limitações, o banco de dados acaba sendo uma boa opção NO SAMP.
Sabendo trabalhar com socket no SAMP você constrói coisas bacanas, de fato. Apesar de ter alguns obstáculos como transferência em massa e codificação (de texto), dá pra montar um bom cliente.

(07/12/2020 01:20)annety Escreveu: como faz pra fazer um programa externo logar em um servidor XYZ de samp? sem setar nada, só logar mesmo
Vamos criar um cenário, onde para poder jogar no servidor é necessário conexão via cliente.
Ao conectar no servidor o jogador se depara com uma textdraw que tapa a tela toda e só sai após conectar o cliente.

Samp server em OnPlayerConnect (exemplo de callback):

Código:
new socket = socket_create(TCP);
socket_listen(socket, 3535); // Porta
socket_set_max_connections(socket, 1); // Uma conexão por socket


O servidor abriu a conexão e, agora, via cliente você fará a conexão.
Faça com que o cliente envie algum dado específico informando que o cliente foi aberto e ao fazer a leitura, remova a textdraw e dê continuidade ao jogo do jogador.
Código:
onSocketReceiveData(Socket:id, remote_clientid, data[], data_len); // Callback chamada ao receber dados do cliente


Mais informações do plugin socket https://github.com/pBlueG/Socket/blob/master/socket.inc


Vou dar uma estudada, fazer uns testes e te respondo... OBG!

(07/12/2020 14:17)João Pedro Escreveu: Eu citei MySQL como uma opção de comunicação entre servidor e cliente uma vez que o MySQL é muito bem portável no SA-MP.

Existe um plugin de socket para o SA-MP mas nunca utilizei e não me parece estável por eu não ter visto cases utilizando ele.

Em relação a abrir o SA-MP e em um servidor específico, não me recordo os parâmetros mas tenta executar o aplicativo do SA-MP em linha de comando enviando IP : PORTA como parâmetro, algo como: samp.exe 127.0.0.1:7777

Como eu consigo ver os parametros, alguma documentação disso?
Só achei coisas do antigo fórum que tá off

Eu queria conectar

samp.exe -c -n Nick_Name -h 127.0.0.1 -p 7777
samp.exe -c -n Nick_Name -h 81.4.103.173 -p 7777
- conecta sem ip e sem nome, só acerta a porta pq deve ser padrão

samp.exe -h 127.0.0.1 -p 7777 -n Nick_Name
samp.exe -h 81.4.103.173 -p 7777 -n Nick_Name
- esse aqui foi com o nome que tava salvo na minha ultima configuração (não o que eu mandei no cmd), mas sem ip, sem porta

samp.exe 127.0.0.1 7777 Nick_Name
- esse aqui veio com um ip todo nada a ver: 127.12.34.56 e o nome veio o que tava na minha config (não o que eu mandie no cmd)

samp.exe 81.4.103.173 7777 Nick_Name
- por um milagre esse aqui acertou  o ip e a porta, mas o nome que é bom não trocou nada Sad veio de novo o da config
- e tbm tá dando wrong password (mesmo só samp.exe 81.4.103.173 7777 da wrong password)


RE: Criar um PC Client - Dr Editor - 13/12/2020

(13/12/2020 11:02)annety Escreveu: Como eu consigo ver os parametros, alguma documentação disso?
Só achei coisas do antigo fórum que tá off

Eu queria conectar

samp.exe -c -n Nick_Name -h 127.0.0.1 -p 7777
samp.exe -c -n Nick_Name -h 81.4.103.173 -p 7777
- conecta sem ip e sem nome, só acerta a porta pq deve ser padrão

samp.exe -h 127.0.0.1 -p 7777 -n Nick_Name
samp.exe -h 81.4.103.173 -p 7777 -n Nick_Name
- esse aqui foi com o nome que tava salvo na minha ultima configuração (não o que eu mandei no cmd), mas sem ip, sem porta

samp.exe 127.0.0.1 7777 Nick_Name
- esse aqui veio com um ip todo nada a ver: 127.12.34.56 e o nome veio o que tava na minha config (não o que eu mandie no cmd)

samp.exe 81.4.103.173 7777 Nick_Name
- por um milagre esse aqui acertou  o ip e a porta, mas o nome que é bom não trocou nada Sad veio de novo o da config
- e tbm tá dando wrong password (mesmo só samp.exe 81.4.103.173 7777 da wrong password)

Não tem documentação sobre isso, mas que eu saiba são 2 parâmetros apenas.
1 - ip:porta
2 - senha (não dê espaço para o segundo parâmetro caso NÃO tenha senha) >> o motivo do "wrong password"

Código:
samp.exe 127.0.0.1:7777 senha_se_tiver

O nick deverá ser alterado no registro o valor de PlayerName:
Código:
Computador\HKEY_CURRENT_USER\Software\SAMP

A lógica:
Ao clicar no botão altere o nome no registro.
Após alterar, abra o processo do samp.exe com os parâmetros.


RE: Criar um PC Client - annety - 14/12/2020

(13/12/2020 18:00)Dr Editor Escreveu:
(13/12/2020 11:02)annety Escreveu: Como eu consigo ver os parametros, alguma documentação disso?
Só achei coisas do antigo fórum que tá off

Eu queria conectar

samp.exe -c -n Nick_Name -h 127.0.0.1 -p 7777
samp.exe -c -n Nick_Name -h 81.4.103.173 -p 7777
- conecta sem ip e sem nome, só acerta a porta pq deve ser padrão

samp.exe -h 127.0.0.1 -p 7777 -n Nick_Name
samp.exe -h 81.4.103.173 -p 7777 -n Nick_Name
- esse aqui foi com o nome que tava salvo na minha ultima configuração (não o que eu mandei no cmd), mas sem ip, sem porta

samp.exe 127.0.0.1 7777 Nick_Name
- esse aqui veio com um ip todo nada a ver: 127.12.34.56 e o nome veio o que tava na minha config (não o que eu mandie no cmd)

samp.exe 81.4.103.173 7777 Nick_Name
- por um milagre esse aqui acertou  o ip e a porta, mas o nome que é bom não trocou nada Sad veio de novo o da config
- e tbm tá dando wrong password (mesmo só samp.exe 81.4.103.173 7777 da wrong password)

Não tem documentação sobre isso, mas que eu saiba são 2 parâmetros apenas.
1 - ip:porta
2 - senha (não dê espaço para o segundo parâmetro caso NÃO tenha senha) >> o motivo do "wrong password"

Código:
samp.exe 127.0.0.1:7777 senha_se_tiver

O nick deverá ser alterado no registro o valor de PlayerName:
Código:
Computador\HKEY_CURRENT_USER\Software\SAMP

A lógica:
Ao clicar no botão altere o nome no registro.
Após alterar, abra o processo do samp.exe com os parâmetros.


Sobre o SAMP.exe ->

samp.exe 127.0.0.1 7777
tá conectando em 127.12.34.56:7777 ?

samp.exe 81.4.103.173 7777

Tá dando wrong password?

Sendo que nem tem senha Sad




Sobre os registros ->

Os meus foram em:
My Computer -> HKEY_USERS -> S-1-5-21-0-0-0-1000 -> Software -> SAMP

Aí tem PlayerName com o nome do player
e gta_sa_exe com o caminho da pasta do GTA


Pq o meu tá diferente?
O que é isso de S-1-5-21-0-0-0-1000
O que muda? Será que é meu SO?

Pq se for vão ter que ter várias condicionais pra WIN_XP, 7, 8, 10...