[Ajuda] Erro no comando /Anunciar
#1

@ignorem essa parte em vermelho
Criei esse comando de /anunciar [Anuncio], sу que quando eu digito "/anunciar joaozinho" ao inves de aparecer o texto aparece a mensagem de erro " | ERRO | Digite: /Anunciar [Seu Anuncio]"

pawn Код:
CMD:anunciar(playerid, params[])    {
    new Anuncio[124], formato[124];
    if(sscanf(params, "str[124]", Anuncio)) return SendClientMessage(playerid, -1, "| ERRO | Digite: /Anunciar [Seu Anuncio]");
    format(formato, sizeof(formato), "Anuncio %s", Anuncio);
    SendClientMessageToAll(-1, formato);
    return 1;
}
@ignorem a parte de cima


@EDIT
Pra nгo criar vбrios tуpicos estou reativando esse.


Vi o tutorial de MYSQL do brodi @Cleyson, e tive alguns, vбrios... na verdade foi erro pra cacete e eu sу consegui consertar alguns entгo se alguйm puder me ajudar agradeзo.

coloquei os cуdigos no pastebin por ser um pouquinho extenso, me desculpem por escrever um livro mas eu sу tenho vocкs pra me ajudar.

as linhas dos erros estгo comentadas


pawn Код:
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(35) : error 021: symbol already defined: "mysql_query"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(49) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(50) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(52) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(67) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(84) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(85) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(89) : error 010: invalid function or declaration
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(96) : error 017: undefined symbol "cache_get_field_content"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(288 -- 289) : error 029: invalid expression, assumed zero
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(295) : error 035: argument type mismatch (argument 3)
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(298) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(299) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(299) : error 035: argument type mismatch (argument 3)
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(307) : error 035: argument type mismatch (argument 3)
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(310 -- 311) : error 029: invalid expression, assumed zero
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(316) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(317) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(320) : error 035: argument type mismatch (argument 3)
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(338) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(339) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(340) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(341) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(342) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(343) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(344) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(376) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(384) : warning 213: tag mismatch
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


16 Errors.
https://pastebin.com/EJ3zfcmF
Reply
#2

@Edit

Cycle jб respondeu sua dъvida! Nгo tinha visto.
Reply
#3

Testei e continua a mesma coisa ;-;
Reply
#4

Entгo coloca assim:

PHP код:
CMD:anunciar(playeridparams[]) 

    new 
anuncio[124], str[124]; 
    if(
sscanf(params"s"anuncio)) 
        return 
SendClientMessage(playerid, -1"| ERRO | Digite: /Anunciar [Seu Anuncio]"); 
    
format(strsizeof(str), "Anuncio - %s"anuncio); 
    
SendClientMessageToAll(-1str); 
    return 
1

Reply
#5

Quote:
Originally Posted by Cycle
Посмотреть сообщение
Entгo coloca assim:

PHP код:
CMD:anunciar(playeridparams[]) 

    new 
anuncio[124], str[124]; 
    if(
sscanf(params"s"anuncio)) 
        return 
SendClientMessage(playerid, -1"| ERRO | Digite: /Anunciar [Seu Anuncio]"); 
    
format(strsizeof(str), "Anuncio - %s"anuncio); 
    
SendClientMessageToAll(-1str); 
    return 
1

Agora sim, valeu irmгozinho <3
Reply
#6

@Errei
Reply
#7

Quote:
Originally Posted by Misael
Посмотреть сообщение
@ignorem essa parte em vermelho
Criei esse comando de /anunciar [Anuncio], sу que quando eu digito "/anunciar joaozinho" ao inves de aparecer o texto aparece a mensagem de erro " | ERRO | Digite: /Anunciar [Seu Anuncio]"

pawn Код:
CMD:anunciar(playerid, params[])    {
    new Anuncio[124], formato[124];
    if(sscanf(params, "str[124]", Anuncio)) return SendClientMessage(playerid, -1, "| ERRO | Digite: /Anunciar [Seu Anuncio]");
    format(formato, sizeof(formato), "Anuncio %s", Anuncio);
    SendClientMessageToAll(-1, formato);
    return 1;
}
@ignorem a parte de cima


@EDIT
Pra nгo criar vбrios tуpicos estou reativando esse.


Vi o tutorial de MYSQL do brodi @Cleyson, e tive alguns, vбrios... na verdade foi erro pra cacete e eu sу consegui consertar alguns entгo se alguйm puder me ajudar agradeзo.

coloquei os cуdigos no pastebin por ser um pouquinho extenso, me desculpem por escrever um livro mas eu sу tenho vocкs pra me ajudar.

as linhas dos erros estгo comentadas


pawn Код:
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(35) : error 021: symbol already defined: "mysql_query"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(49) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(50) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(52) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(67) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(84) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(85) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(89) : error 010: invalid function or declaration
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(96) : error 017: undefined symbol "cache_get_field_content"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(288 -- 289) : error 029: invalid expression, assumed zero
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(295) : error 035: argument type mismatch (argument 3)
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(298) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(299) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(299) : error 035: argument type mismatch (argument 3)
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(307) : error 035: argument type mismatch (argument 3)
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(310 -- 311) : error 029: invalid expression, assumed zero
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(316) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(317) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(320) : error 035: argument type mismatch (argument 3)
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(338) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(339) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(340) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(341) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(342) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(343) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(344) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(376) : warning 213: tag mismatch
C:\Users\dade\Desktop\Gamemode levado a sйrio\gamemodes\GTANOVAVIDA.pwn(384) : warning 213: tag mismatch
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


16 Errors.
https://pastebin.com/EJ3zfcmF
Usa a versгo r33 download, pois foi oque eu criei o tutorial, a versгo mais nova irei atualizar o topico assim que der tempo.
Bom, sobre os erros, olhei o cуdigo que vocк postou no pastebin la estб faltando varias coisas e cуdigos no lugar errado. De uma revisada:

PHP код:
#include <a_samp>
#include <a_mysql>
#define DIALOG_REGISTRO     1
#define DIALOG_LOGIN     2
new IDConexao// Variavel responsavel pela ID da conexгo com o host
enum pInfo // enumerador com variaveis necessarias para nosso salvamento.
{
    
pID,
    
pNome[24],
    
pIP[26],
    
pSenha[20],
    
pLevel,
    
pDinheiro,
    
pSkin,
    
pMatou,
    
pMorreu,
    
pAdmin,
     
bool:pLogado
};
new 
PlayerInfo[MAX_PLAYERS][pInfo];
#define HOST      "localhost" // IP de acesso ao phpmyadmin no caso se voce estiver hospedando no pc deixei localhost
#define USUARIO   "root" // Usuario por padrгo й root
#define DATABASE  "samp" // nome da database que voce criou.. como explicao no video acima
#define SENHA     ""   // nгo possue senha caso tenha usado o wamp
main()
{
    print(
"\n----------------------------------");
    print(
" Gamemode carregado 100%");
    print(
"----------------------------------\n");
}
public 
OnGameModeInit()
{
    
// Don't use these lines if it's a filterscript
    
SetGameModeText("Blank Script");
    
AddPlayerClass(01958.37831343.157215.3746269.1425000000);
    
IDConexao mysql_connect(HOSTUSUARIODATABASESENHA); // faremos a conexгo ao host com as informaзхes definidas acima
    
    
mysql_query(IDConexao"CREATE TABLE IF NOT EXISTS `Contas`(`ID`int AUTO_INCREMENT PRIMARY KEY, `Nome`varchar(24) NOT NULL,`Senha` varchar(20) NOT NULL,`Level` int(20) NOT NULL,`Matou` int(10) NOT NULL,`Morreu` int(10) NOT NULL)");
    if(
mysql_errno(IDConexao) != 0// Ultilizo essa maneira para saber se a conexгo foi bem sucedida ou nгo
    
{
        print(
"Falha na conexгo ao banco de dados Mysql");
        } else {
        print(
"Conexгo ao banco de dado Mysql efetuada com sucesso");
    }
    return 
1;
}
public 
OnGameModeExit()
{
    for(new 
0MAX_PLAYERSi++) SalvarDados(i); // Realizamos um loop na funзгo Funзгo SalvarDados para q salve todas as contas numa posivel queda do servidor
    
mysql_close(IDConexao); // Aqui fechamos a conexгo com o host
    
return 1;
}
public 
OnPlayerConnect(playerid)
{
    
GetPlayerName(playeridPlayerInfo[playerid][pNome], 24); // Pegamos o nome do player somente uma vez quando se conectar e formatamos na variavel.
    
GetPlayerIp(playeridPlayerInfo[playerid][pIP], 26); // Mesma coisa no IP
    
new Query[80]; // criamos uma variavel com 80 celulas
    
mysql_format(IDConexaoQuerysizeof(Query), "SELECT `Senha`, `ID` FROM `Contas` WHERE `Nome`='%s'"PlayerInfo[playerid][pNome]); // formatamos a Query selecionando SENHA e ID referente a tabela Contas Linha (NOME)
    
mysql_tquery(IDConexaoQuery"VerificarContas""i"playerid); // Faremos a consulta se a linha "Nome" existe sim ou nгo
    // Usaremos mysql_tquery para realizar a consulta na tabela e enviar o resultado para a callback.
    // o resultado sera enviado para callback VerificarContas
    
return 1;
}
forward VerificarContas(playerid);
public 
VerificarContas(playerid)
{
    new 
Dialog[240]; // Variavel para as dialogs com 240 celulas necessarias
    
if(cache_get_row_count(IDConexao) == 1// aqui o resultado da consulta da OnPlayerConnect
    
// /\ Se a linha existir ira chamar a dialog de login
        
new tmp[20];
        
// criamos para pegar a senha e formatala na variavel pSenha, que sera necessaria para o login
        
cache_get_field_content(0"Senha"tmp); format(PlayerInfo[playerid][pSenha], 20"%s"tmp);
        
format(Dialogsizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк ja tem uma Conta registrada\n\nDigite sua senha para Logar\n\nStatus: {1E90FF}Registrado{F8F8FF}\n\nIP: {058AFF}%s"PlayerInfo[playerid][pNome], PlayerInfo[playerid][pIP]);
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Registro"Dialog"Logar""Cancelar");
        } else { 
// ou nгo
        // sera chamada a dialog de registro
        
format(Dialogsizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк nгo tem uma Conta registrada\n\nDigite uma senha para Registrar\n\nStatus: {058AFF}N/A Registrado{F8F8FF}\n\nIP: {058AFF}%s"PlayerInfo[playerid][pNome], PlayerInfo[playerid][pIP]);
        
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Registro"Dialog"Registrar""Cancelar");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
SalvarDados(playerid); // Chamamos a funзгo para salvar a conta do player que desconectar
    
PlayerInfo[playerid][pLevel] = 0// resetamos as variaveis.
    
PlayerInfo[playerid][pAdmin] = 0;
    
PlayerInfo[playerid][pMatou] = 0;
    
PlayerInfo[playerid][pMorreu] = 0;
    
PlayerInfo[playerid][pDinheiro] = 0;
    
PlayerInfo[playerid][pLogado] = false;
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    
PlayerInfo[playerid][pMorreu]++; // se o player morrer ira acrescentar +1 na variavel de morte
    
PlayerInfo[killerid][pMatou]++; // se o player matar ira acrescentar +1 ...
    
return 1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch(
dialogid// usaremos um switch para as dialogs
    
{
        case 
DIALOG_REGISTRO:
        {
            if(!
response) return Kick(playerid); // se clicar em cancelar na dialog registro ira kickar o jogador
            
if(strlen(inputtext) < || strlen(inputtext) > 20// se a senha tiver menos de 4 ou mais de 20 caracteres ira retornar a dialog
            
{
                new 
Dialog[240]; // variavel da dialog registro
                
format(Dialogsizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк nгo tem uma Conta registrada\n\nDigite uma senha para Registrar\n\nStatus: {058AFF}N/A Registrado{F8F8FF}\n\nIP: {058AFF}%s"PlayerInfo[playerid][pNome], PlayerInfo[playerid][pIP]);
                
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Registro"Dialog"Registrar""Cancelar");
                new 
Query[100]; // variavel com 100 celulas para inserir as informaзхes de registro na tabela
                
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `Contas`(`Nome`, `Senha`) VALUES ('%s', '%s')"PlayerInfo[playerid][pNome], inputtext); // formatamos a query para inserir na tabela do banco de dados
                
mysql_tquery(IDConexaoQuery"DadosRegistrados""i"playerid); // fazemos a consulta e enviamos o resultado para a callback DadosRegistrados
                // enviamos para a callback DadosRegistrados para fazer uma especia de  DEBUG, e tambem para darmos uma ID para a conta no banco de dados
                
RegistrarDados(playerid); // chamamos a funзгo RegistrarDados para adicionar os valores nas variaveis do player
                
} else { // se nгo conter entre 4 e 20 caracteres ira retornar ao registro
                
SendClientMessage(playerid, -1"ERRO:{FFFFFF} A senha deve conter de 4 a 20 caracteres!");
                new 
Dialog[240]; // variavel da dialog registro
                
format(Dialogsizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк nгo tem uma Conta registrada\n\nDigite uma senha para Registrar\n\nStatus: {058AFF}N/A Registrado{F8F8FF}\n\nIP: {058AFF}%s"PlayerInfo[playerid][pNome], PlayerInfo[playerid][pIP]);
                
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Registro"Dialog"Registrar""Cancelar");
            }
        }
        case 
DIALOG_LOGIN:
        {
            if(!
response) return Kick(playerid); // se clicar em cancelar na dialog login ira kickar o jogador
            
if(!strcmp(PlayerInfo[playerid][pSenha], inputtexttrue20)) //comparamos a variavel coma senha do player com a senha digitada
            
// se a comparaзгo for correta vamos realizar a consulta para adicionar os valores contidos na tabela para as variaveis do player.
                
new Query[70];
                
mysql_format(IDConexaoQuerysizeof(Query), "SELECT * FROM `Contas` WHERE Nome='%s'"PlayerInfo[playerid][pNome]);
                
mysql_tquery(IDConexaoQuery"CarregarContas""d"playerid);
                
// Formatamos a Query realizamos a consulta e enviamos o resultado para a callback CarregarContas
                
} else {
                
// comparaзгo sem sucesso ::
                
SendClientMessage(playerid, -1"ERRO:{FFFFFF} Senha incorreta !");
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Digite sua senha:""Digite sua senha abaixo para logar-se""Logar""Voltar");
            }
        }
    }
    return 
1;
}
forward DadosRegistrados(playerid);
public 
DadosRegistrados(playerid)
{
    
PlayerInfo[playerid][pID] = cache_insert_id(); // Adicionamos o ID da conta do player
    
printf("-> Nova conta registrada ID: %d"PlayerInfo[playerid][pID]); // Printf no samp server para informar que a conta foi registrada com sucesso
    
return 1;
}
forward CarregarContas(playerid);
public 
CarregarContas(playerid)
// Resultado da consulta do login, adicionamos os valores contidos na tabela para as variaveis do player
    
PlayerInfo[playerid][pID] = cache_get_field_content_int(0"ID");
    
PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0"Admin");
    
PlayerInfo[playerid][pLevel] = cache_get_field_content_int(0"Level");
    
PlayerInfo[playerid][pMatou] = cache_get_field_content_int(0"Matou");
    
PlayerInfo[playerid][pMorreu] = cache_get_field_content_int(0"Morreu");
    
PlayerInfo[playerid][pSkin] = cache_get_field_content_int(0"Skin");
    
PlayerInfo[playerid][pDinheiro] = cache_get_field_content_int(0"Dinheiro");
    
CarregarDados(playerid); // chamamos a funзгo CarregarDados
    
return 1;
}
stock RegistrarDados(playerid)
{  
//Aqui adicionaremos os valores das variaveis que o player ira inicio no servidor
    
PlayerInfo[playerid][pDinheiro] = 5000// ou seja comeзara com 5000 reais
    
PlayerInfo[playerid][pAdmin] = 0// sem nivel de admin
    
PlayerInfo[playerid][pLevel] = 1// 1 level
    
PlayerInfo[playerid][pSkin] = 299// skin 299
    
PlayerInfo[playerid][pMorreu] = 0// ....
    
PlayerInfo[playerid][pMatou] = 0// ....
    
CarregarDados(playerid); //chamamos a funзгo CarregarDados
    
return 1;
}
stock CarregarDados(playerid)
// aqui carregaremos os ultimos dados das variaveis
    
PlayerInfo[playerid][pLogado] = true;
    
SetPlayerScore(playeridPlayerInfo[playerid][pLevel]); // setamos o level
    
GivePlayerMoney(playeridPlayerInfo[playerid][pDinheiro]); // o dinheiro
    
SetSpawnInfo(playerid0PlayerInfo[playerid][pSkin], 1958.331343.1215.36269.1500000);
    
SpawnPlayer(playerid); // forзamos o player a spawnar nas cordenas acima com as infos setadas nas variaveis
    
return 1;
}
stock SalvarDados(playerid)
{
    if(
PlayerInfo[playerid][pLogado] == false) return 1// se o player nao estiver logado nгo ira salvar nada
    
PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
    new 
Query[300]; // variavel com 300 celulas para salvamento
    
mysql_format(IDConexaoQuerysizeof(Query), "UPDATE `Contas` SET `Nome`='%s', `Level`=%d, `Admin`=%d, `Skin`=%d, `Matou`=%d, `Morreu`=%d, `Dinheiro`=%d WHERE `ID`=%d",
    
PlayerInfo[playerid][pNome],
    
PlayerInfo[playerid][pLevel],
    
PlayerInfo[playerid][pAdmin],
    
PlayerInfo[playerid][pSkin],
    
PlayerInfo[playerid][pMatou],
    
PlayerInfo[playerid][pMorreu],
    
PlayerInfo[playerid][pDinheiro],
    
PlayerInfo[playerid][pID]);
    
// formatamos a Query referente a ID da conta (WHERE `ID`=%d) e realizaremos a consulta para atualizar os dados no banco de dados
    
mysql_tquery(IDConexaoQuery,"DadosSalvos","d"playerid); // consulta, e enviamos o resultado para a callback DadosSalvos para um DEBUG
    
return 1;
}
forward DadosSalvos(playerid);
public 
DadosSalvos(playerid) return printf("-> Conta salva ID: %d"PlayerInfo[playerid][pID]); 
Reply
#8

Erros Resolvidos, mas Quando eu logo no jogo e coloco uma senha acima de 4 caracteres volta pra dialog de registro, e se eu digito menos ele spawna mas a dialog de registro continua aberta
Reply
#9

Acho que editei com um pastebin de um membro que me mandou no pm e nгo corrigi.

Quote:
Originally Posted by Misael
Посмотреть сообщение
Erros Resolvidos, mas Quando eu logo no jogo e coloco uma senha acima de 4 caracteres volta pra dialog de registro, e se eu digito menos ele spawna mas a dialog de registro continua aberta
PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch(
dialogid// usaremos um switch para as dialogs
    
{
        case 
DIALOG_REGISTRO:
        {
            if(!
response) return Kick(playerid); // se clicar em cancelar na dialog registro ira kickar o jogador
            
if(strlen(inputtext) < || strlen(inputtext) > 20// se a senha tiver menos de 4 ou mais de 20 caracteres ira retornar a dialog
            
{
                
SendClientMessage(playerid, -1"ERRO:{FFFFFF} A senha deve conter de 4 a 20 caracteres!");
                
                new 
Dialog[240]; // variavel da dialog registro
                
format(Dialogsizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк nгo tem uma Conta registrada\n\nDigite uma senha para Registrar\n\nStatus: {058AFF}N/A Registrado{F8F8FF}\n\nIP: {058AFF}%s"PlayerInfo[playerid][pNome], PlayerInfo[playerid][pIP]);
                
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Registro"Dialog"Registrar""Cancelar");
                } else { 
// se nгo, ira registrar
                
new Query[100]; // variavel com 100 celulas para inserir as informaзхes de registro na tabela
                
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `Contas`(`Nome`, `Senha`) VALUES ('%s', '%s')"PlayerInfo[playerid][pNome], inputtext); // formatamos a query para inserir na tabela do banco de dados
                
mysql_tquery(IDConexaoQuery"DadosRegistrados""i"playerid); // fazemos a consulta e enviamos o resultado para a callback DadosRegistrados
                // enviamos para a callback DadosRegistrados para fazer uma especia de  DEBUG, e tambem para darmos uma ID para a conta no banco de dados
                
RegistrarDados(playerid); // chamamos a funзгo RegistrarDados para adicionar os valores nas variaveis do player
            
}
        }
        case 
DIALOG_LOGIN:
        {
            if(!
response) return Kick(playerid); // se clicar em cancelar na dialog login ira kickar o jogador
            
if(!strcmp(PlayerInfo[playerid][pSenha], inputtexttrue20)) //comparamos a variavel coma senha do player com a senha digitada
            
// se a comparaзгo for correta vamos realizar a consulta para adicionar os valores contidos na tabela para as variaveis do player.
                
new Query[70];
                
mysql_format(IDConexaoQuerysizeof(Query), "SELECT * FROM `Contas` WHERE Nome='%s'"PlayerInfo[playerid][pNome]);
                
mysql_tquery(IDConexaoQuery"CarregarContas""d"playerid);
                
// Formatamos a Query realizamos a consulta e enviamos o resultado para a callback CarregarContas
                
} else {
                
// comparaзгo sem sucesso ::
                
SendClientMessage(playerid, -1"ERRO:{FFFFFF} Senha incorreta !");
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Digite sua senha:""Digite sua senha abaixo para logar-se""Logar""Voltar");
            }
        }
    }
    return 
1;

Reply
#10

Hoje nгo й meu dia de sorte =\
agora da pra logar mas com dois problemas:
1є Caso eu jб registre uma senha com mais de 4 caracteres ele loga mas a cвmera fica travada
2єCaso eu coloque uma com menos de 4 caracteres e depois uma com mais de 4 ele loga, mas nenhum registro й feito.

jб ta me desanimando essa bagaзa.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)