02.04.2017, 19:50
Olб pessoal, boa tarde, preciso de ajuda, meu sistema, salva a skin do jogador no banco de dados, porem quando o jogador loga no server, ela nгo й setada, vou colocar o cуdigo inteiro que eu estou usando de testes.
Код:
new mysql; forward saveAll(); public saveAll() { new query[128], name[MAX_PLAYER_NAME]; for(new a=0; a<MAX_PLAYERS; a++) { if(IsPlayerConnected(a)) { GetPlayerName(a, name, MAX_PLAYER_NAME); format(query, sizeof(query), "UPDATE `contas` SET `skin` = '%d' WHERE `usuario` = '%s'", GetPlayerSkin(a), name); mysql_function_query(mysql, query, false, "", ""); } } } main() { } public OnGameModeInit() { mysql_debug(1); mysql = mysql_connect("127.0.0.1", "user", "sampserver", "senha"); SetTimer("saveAll", 5000, true); return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { return 1; } public OnPlayerConnect(playerid) { new nome[MAX_PLAYER_NAME], query[1024]; GetPlayerName(playerid, nome, MAX_PLAYER_NAME); format(query, sizeof(query), "SELECT * FROM `contas` WHERE usuario = '%s'", nome); mysql_function_query(mysql, query, true, "q_loginRequest", "d", playerid); return 1; } forward q_loginRequest(playerid); public q_loginRequest(playerid) { new rows, fields, tmp[64], skn; cache_get_data(rows, fields); if(rows) { cache_get_field_content(0, "skin", tmp); skn = strval(tmp); SetSpawnInfo(playerid, 0, skn, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); ShowPlayerDialog(playerid, DIALOG01, DIALOG_STYLE_PASSWORD, "Seja Bem-vindo ao servidor !", "Digite sua senha", "Login", "Kick"); //Usuario Existe } else { ShowPlayerDialog(playerid, DIALOG02, DIALOG_STYLE_PASSWORD, "Voce nгo tem uma conta", "Primeira vez? Registre-se", "Registrar", "Kick"); //Usuario Nгo existe ! } return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid){ case DIALOG01: { new query[1024], nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, nome, MAX_PLAYER_NAME); format(query, sizeof(query), "SELECT * FROM `contas` WHERE (usuario) = '%s' AND (senha) = '%s'", nome, inputtext); mysql_function_query(mysql, query, true, "q_verify_Pass", "d", playerid); SpawnPlayer(playerid); } // Usuario nгo existe ! case DIALOG02: { if(strlen(inputtext) < 5) { ShowPlayerDialog(playerid, DIALOG02, DIALOG_STYLE_PASSWORD, "Voce nгo tem uma conta", "{ff0000}Insira uma senha maior que 5 digitos !", "Registrar", "Kick"); } else { new query[1024], nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, nome, MAX_PLAYER_NAME); format(query, sizeof(query), "INSERT INTO `contas` (usuario, senha) VALUES ('%s', '%s')", nome, inputtext); mysql_function_query(mysql, query, false, "", ""); //Spawn SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); SpawnPlayer(playerid); return 1; } } } return 1; } forward q_verify_Pass(playerid); public q_verify_Pass(playerid) { new rows, fields, tmp[64], skin; cache_get_data(rows, fields); if(rows) { cache_get_field_content(0, "skin", tmp); skin = strval(tmp); SetSpawnInfo(playerid, 0, skin, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); SpawnPlayer(playerid); // Senha correta } else { ShowPlayerDialog(playerid, DIALOG01, DIALOG_STYLE_PASSWORD, "Seja Bem-vindo ao servidor !", "{fff700}Senha invalida", "Login", "Kick"); // Senha errada } }