format(Query ,100, \"SELECT * FROM players WHERE name=\'ember\' AND pass=\'lolxD24\'\");
public OnPlayerCommandText(playerid, cmdtext[]){new index, cmd[20];cmd = strtok(cmdtext, index);if (strcmp(cmd, \"/teszt\", true) == 0){new tmp[20];tmp = strtok(cmdtext, index);new line[128], MyRegID, Pass[64];new query[128];format(query, sizeof(query), \"SELECT * FROM `players` WHERE `name` = \'%s\'\", pName(playerid));mysql_query(query);mysql_store_result();mysql_fetch_row(line);mysql_free_result();sscanf(line, \"p<|>d{s[24]s[20]}s[30]{s[30]s[30]d}\", MyRegID, Pass);SetPVarInt(playerid, \"RegID\", MyRegID);if(Egyezik(strval(tmp), Pass)){ //LoginPlayer(playerid, Pass);}else { SendClientMessage(playerid, -1, \"HIBA: Rossz jelszó.\"); return 1;} return 1;}return 0;}
D:\\samp0.3x repack\\gamemodes\\mysql_test.pwn(30) : error 047: array sizes do not match, or destination array is too smallD:\\samp0.3x repack\\gamemodes\\mysql_test.pwn(35) : error 047: array sizes do not match, or destination array is too smallD:\\samp0.3x repack\\gamemodes\\mysql_test.pwn(47) : error 035: argument type mismatch (argument 1)Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 3 Errors.
format(Query ,100, \"SELECT * FROM players WHERE name=\'ember\' AND pass=\'lolxD24\'\"); http://sampforum.hu/index.php?topic=9285r7 a legjobb plugin de a nagyon nehéz.. probáltam én is megtanulni már azokat a dolgokat de nekem sem ment valami fényesen ezért mentem lejebb a verzióval.. inkább ha mySQL -t tanulsz kezdjél bele az r6 tanulásába sokkal jobban megérted.. linkeltem egy leírást az r6 leírást azt ha tanulod megérted.
#include <a_samp>#include <a_mysql>#include <sscanf2> #define MYSQL_HOST \"127.0.0.1\"#define MYSQL_USER \"root\"#define MYSQL_PASS \"\"#define MYSQL_DB \"samp\" public OnGameModeInit(){mysql_debug(1);mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PASS); return 1;}public OnGameModeExit(){mysql_close(); return 1;}public OnPlayerSpawn(playerid){new line[128], MyRegID, Pass[64];new query[128];format(query, sizeof(query), \"SELECT * FROM `accounts` WHERE `name` = \'%s\'\", pName(playerid));mysql_query(query);mysql_store_result();mysql_fetch_row(line);mysql_free_result();sscanf(line, \"p<|>d{s[24]s[20]}s[30]{s[30]s[30]d}\", MyRegID, Pass);SetPVarInt(playerid, \"RegID\", MyRegID);if(Egyezik(\"123456\", Pass)){ new string[100]; format(string, 100, \"Megegyezett Pass és RegID:\", Pass, MyRegID);SendClientMessage(playerid, -1, \"\");}else {SendClientMessage(playerid, -1, \"HIBA: Rossz jelszó.\");return 1;}return 1;}stock pName(pid){new name[64];GetPlayerName(pid, name, sizeof(name));return name;}stock Egyezik(comp[], with[]){new LenghtComp = strlen(comp);new LenghtWith = strlen(with);new Character;if( LenghtComp != LenghtWith ) return false;for( new i; i < LenghtComp; i++ ){ if( comp == with ) { Character++;}}if( LenghtComp == Character ) return true;return false;}
sscanf(line, \"p<|>d{s[24]s[20]}s[30]{s[30]s[30]d}\", MyRegID, Pass);
SELECT * FROM accounts WHERE name=\'anorennia\' AND password=\'1234\'
#include <a_samp>#define FILTERSCRIPT#include <zcmd>new DB:USERDB;enumenum_pInfo{Money,Score,Float:Health};newPlayerInfo[MAX_PLAYERS][enum_pInfo];public OnFilterScriptInit( ){ USERDB = db_open(\"users.db\"); // Adatbázis megnyítása// Arra figyelj hogy csak egy adatsort hozz létre ugyanazzal a felhasználó névvel illetve jelszóval!!!!!// db_query(USERDB, \"CREATE TABLE `accounts` (name TEXT, pass TEXT, Money NUMERIC, Score NUMERIC, Health FLOAT)\"); // Adattábla szerkezet létrehozás// db_query(USERDB, \"INSERT INTO `accounts` (name, pass, Money, Score, Health) VALUES (\'anorennia\', \'1234\', 3500, 201, 80.65)\"); // Egyetlen adatsor beszúrása// Teszt:cmd_login(0, \"1234\"); return 1;}publicOnFilterScriptExit(){db_close(USERDB);return 1;}CMD:login(playerid, params[]){if(isnull(params)) SendClientMessage(playerid, -1, \"Használat: /login password\");else{new string[128], DBResult:qresult;// GetPlayerName(playerid, string, 128);string = \"anorennia\";printf(\"Felhasználó név:%s Jelszó:%s\", string, params);format(string, sizeof string, \"SELECT * FROM accounts WHERE name=\'%s\' AND pass=\'%s\'\", string, params);qresult = db_query(USERDB, string); if(db_num_rows(qresult) == 1) // Ellenõrzés létezik-e adatsor{ db_get_field_assoc(qresult, \"Money\", string, 128); PlayerInfo[playerid][Money] = strval(string); db_get_field_assoc(qresult, \"Score\", string, 128); PlayerInfo[playerid][score] = strval(string); db_get_field_assoc(qresult, \"Health\", string, 128); PlayerInfo[playerid][Health] = floatstr(string); print(\" \"); printf(\"DB teszt: Money: %d, Score: %d Health: %f\", PlayerInfo[playerid][Money], PlayerInfo[playerid][score], PlayerInfo[playerid][Health]); print(\" \");} else { print(\"Nincs ilyen adatsor\");// SendClientMessage(playerid, -1, \"Nem vagy regisztrálva, vagy rossz jelszót adtál meg\");}db_free_result(qresult);}return 1;}
Abban tudnál segíteni, hogy kiolvasok DB-bõl egy sort \"SELECT * FROM accounts WHERE password=\'1234\'\"[/quote]Edit:Amúgy mire gondoltál akkor?