public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
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) < 4 || 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(Dialog, sizeof(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(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", Dialog, "Registrar", "Cancelar");
} else { // se nгo conter entre 4 e 20 caracteres ira retornar ao registro
new Query[100]; // variavel com 100 celulas para inserir as informaзхes de registro na tabela
mysql_format(IDConexao, Query, sizeof(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(IDConexao, Query, "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
ShowPlayerDialog(playerid, DIALOG_SEXO, DIALOG_STYLE_MSGBOX,"[City Of Paradise] - Sexo","Qual й seu sexo?","Masculino","Feminino");
}
}
case DIALOG_SEXO:
{
if(response)
{
PlayerInfo[playerid][pSkin]=154;
cache_get_value_name_int(0, "pSkin", PlayerInfo[playerid][pSkin]);
PlayerInfo[playerid][pSexo] = HOMEM;
PlayerInfo[playerid][pSexo] = 1;
cache_get_value_name_int(0, "pSexo", PlayerInfo[playerid][pSkin]);
RegistrarDados(playerid);
SendClientMessage(playerid,-1,"Vocк й homem.");
}
else if(!response)
{
SendClientMessage(playerid,-1,"Vocк й mulher.");
PlayerInfo[playerid][pSexo] = MULHER;
PlayerInfo[playerid][pSexo] = 2;
SetPlayerSkin(playerid, 56);
RegistrarDados(playerid);
}
// ShowPlayerDialog(playerid, DIALOG_IDADE, DIALOG_STYLE_INPUT,"[NomeSv] - Idade","Quantos anos vocк tem?","Pronto","");
return 1;
}
case DIALOG_LOGIN:
{
if(!response) return Kick(playerid); // se clicar em cancelar na dialog login ira kickar o jogador
if(!strlen(inputtext)) // se nгo digitar nada ira retornar.
{
SendClientMessage(playerid, -1, "ERRO:{FFFFFF} Vocк nгo digitou a senha !");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Digite sua senha:", "Digite sua senha abaixo para logar-se", "Logar", "Voltar");
return 1;
}
if(!strcmp(PlayerInfo[playerid][pSenha], inputtext, true, 20)) //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(IDConexao, Query, sizeof(Query), "SELECT * FROM `Contas` WHERE Nome='%s'", PlayerInfo[playerid][pNome]);
mysql_tquery(IDConexao, Query, "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(playerid, DIALOG_LOGIN, DIALOG_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
cache_get_value_int(0, "ID", PlayerInfo[playerid][pID]);
cache_get_value_int(0, "Admin", PlayerInfo[playerid][pAdmin]);
cache_get_value_int(0, "Level", PlayerInfo[playerid][pLevel]);
cache_get_value_int(0, "Sexo", PlayerInfo[playerid][pSexo]);
cache_get_value_int(0, "Morreu", PlayerInfo[playerid][pMorreu]);
cache_get_value_int(0, "Skin", PlayerInfo[playerid][pSkin]);
cache_get_value_int(0, "Dinheiro", PlayerInfo[playerid][pDinheiro]);
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] = 0; // skin 0 CJ
PlayerInfo[playerid][pMorreu] = 0; // ....
PlayerInfo[playerid][pSexo] = 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(playerid, PlayerInfo[playerid][pLevel]); // setamos o level
GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]); // o dinheiro
GetPlayerSkin(playerid);
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], 1958.33, 1343.12, 15.36, 269.15);
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[350]; // variavel com 350 celulas para salvamento
mysql_format(IDConexao, Query, sizeof(Query), "UPDATE `Contas` SET `Nome`='%s', `Level`=%d, `Admin`=%d, `Skin`=%d, `Sexo`=%d, `Morreu`=%d, `Dinheiro`=%d WHERE `ID`=%d",
PlayerInfo[playerid][pNome],
PlayerInfo[playerid][pLevel],
PlayerInfo[playerid][pAdmin],
PlayerInfo[playerid][pSkin],
PlayerInfo[playerid][pSexo],
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(IDConexao, Query, "DadosSalvos","d", playerid); // consulta, e enviamos o resultado para a callback DadosSalvos para um DEBUG
PlayerInfo[playerid][pLevel] = 0; // resetamos as variaveis.
PlayerInfo[playerid][pAdmin] = 0;
PlayerInfo[playerid][pSexo] = 0;
PlayerInfo[playerid][pMorreu] = 0;
PlayerInfo[playerid][pDinheiro] = 0;
PlayerInfo[playerid][pLogado] = false;
return 1;
}
forward DadosSalvos(playerid);
public DadosSalvos(playerid) return printf("-> Conta salva ID: %d", PlayerInfo[playerid][pID]);
enum pInfo // enumerador com variaveis necessarias para nosso salvamento.
{
pID,
pNome[24],
pIP[26],
pSexo,
pSenha[20],
pLevel,
pDinheiro,
pSkin,
pMatou,
pMorreu,
pAdmin,
bool:pLogado
};
if(response)
{
PlayerInfo[playerid][pSkin]=154;
cache_get_value_name_int(0, "pSkin", PlayerInfo[playerid][pSkin]);
PlayerInfo[playerid][pSexo] = HOMEM;
PlayerInfo[playerid][pSexo] = 1;
cache_get_value_name_int(0, "pSexo", PlayerInfo[playerid][pSkin]);
RegistrarDados(playerid);
SendClientMessage(playerid,-1,"Vocк й homem.");
}
else if(!response)
{
SendClientMessage(playerid,-1,"Vocк й mulher.");
PlayerInfo[playerid][pSexo] = MULHER;
PlayerInfo[playerid][pSexo] = 2;
SetPlayerSkin(playerid, 56);
RegistrarDados(playerid);
}
if(response)
{
PlayerInfo[playerid][pSexo] = 1;
PlayerInfo[playerid][pSkin]=154;
SendClientMessage(playerid,-1,"Vocк й homem.");
}
else if(!response)
{
PlayerInfo[playerid][pSexo] = 2;
PlayerInfo[playerid][pSkin] = 56;
SendClientMessage(playerid,-1,"Vocк й mulher.");
}
RegistrarDados(playerid);
stock CarregarDados(playerid)
{ // aqui carregaremos os ultimos dados das variaveis
PlayerInfo[playerid][pLogado] = true;
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]); // setamos o level
GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]); // o dinheiro
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], 1958.33, 1343.12, 15.36, 269.15);
SpawnPlayer(playerid); // forзamos o player a spawnar nas cordenas acima com as infos setadas nas
variaveis
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
return 1;
}
PlayerInfo[playerid][pSexo] = 0; |
troque isso
PHP Code:
PHP Code:
PHP Code:
da stock registrar dados acho que й isso, ver ai. |
troque isso
PHP Code:
PHP Code:
PHP Code:
da stock registrar dados acho que й isso, ver ai. |
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], 1958.33, 1343.12, 15.36, 269.15);
stock CarregarDados(playerid)
{
PlayerInfo[playerid][pLogado] = true;
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]);
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], 1958.33, 1343.12, 15.36, 269.15);
SpawnPlayer(playerid);
return 1;
}
if(response) { PlayerInfo[playerid][pSexo] = 1; PlayerInfo[playerid][pSkin]=154; <<< SendClientMessage(playerid,-1,"Vocк й homem."); } else if(!response) { PlayerInfo[playerid][pSexo] = 2; PlayerInfo[playerid][pSkin] = 56; <<<< SendClientMessage(playerid,-1,"Vocк й mulher."); } RegistrarDados(playerid); |
forward CarregarContas(playerid); public CarregarContas(playerid) { // Resultado da consulta do login, adicionamos os valores contidos na tabela para as variaveis do player cache_get_value_int(0, "ID", PlayerInfo[playerid][pID]); cache_get_value_int(0, "Admin", PlayerInfo[playerid][pAdmin]); cache_get_value_int(0, "Level", PlayerInfo[playerid][pLevel]); cache_get_value_int(0, "Sexo", PlayerInfo[playerid][pSexo]); cache_get_value_int(0, "Morreu", PlayerInfo[playerid][pMorreu]); cache_get_value_int(0, "Skin", PlayerInfo[playerid][pSkin]); <<< cache_get_value_int(0, "Dinheiro", PlayerInfo[playerid][pDinheiro]); CarregarDados(playerid); // chamamos a funзгo CarregarDados return 1; } |
faz assim:
PHP Code:
ou |
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], 1958.33, 1343.12, 15.36, 269.15);
SetSpawnInfo(playerid, 0, etc ....
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
playerid, team, skin, Float, Float:y, Float:z, Float:rotation, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo |
Tenta por um
PHP Code:
|
CMD:setarskin(playerid,params[])
{
SetPlayerSkin(playerid, 240);
}
C:\Users\Ryuzaki\Desktop\City Of Paradise\mod\marlon.pwn(87) : warning 213: tag mismatch C:\Users\Ryuzaki\Desktop\City Of Paradise\mod\marlon.pwn(91) : error 075: input line too long (after substitutions) C:\Users\Ryuzaki\Desktop\City Of Paradise\mod\marlon.pwn(92) : error 037: invalid string (possibly non-terminated string) C:\Users\Ryuzaki\Desktop\City Of Paradise\mod\marlon.pwn(92) : error 017: undefined symbol "CREATE" C:\Users\Ryuzaki\Desktop\City Of Paradise\mod\marlon.pwn(92) : error 017: undefined symbol "TABLE" C:\Users\Ryuzaki\Desktop\City Of Paradise\mod\marlon.pwn(92) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 5 Errors. |
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], 1958.33, 1343.12, 15.36, 269.15);
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
como que ta sua tabela mysql? se possivel mandar print.
a stock SalvarDados esta sendo chamada em que parte da GM? |
Faz um teste por favor, troca essa linha
pawn Code:
pawn Code:
|
This function can be used to change the spawn information of a specific player. It allows you to automatically set someone's spawn weapons, their team, skin and spawn position, normally used in case of minigames or automatic-spawn systems. This function is more crash-safe then using SetPlayerSkin in OnPlayerSpawn and/or OnPlayerRequestClass, even though this has been fixed in 0.2.