Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Üzenetek - ZyZu.

Oldalak: 1 ... 317 318 [319] 320 321 ... 527
4771
Segítségkérés / Mysql mentés.
« Dátum: 2013. március 23. - 11:46:45 »
És le is menti neked + be is tölti?

4772
Segítségkérés / anti money hack
« Dátum: 2013. március 23. - 11:07:15 »
EnableStuntBonusForAll( false );

 
OnGameModeInit alá írd be és nem jelenik meg a bonúsz.

4773
Segítségkérés / Ismeretlen hiba
« Dátum: 2013. március 23. - 11:04:48 »
Ez a hiba a sscanf2.inc -ben van másold be a sscanf2.inc -ben található 240 sort és segítek..

4774
SA-MP: Szerverfejlesztés / Stunt HQ
« Dátum: 2013. március 23. - 08:59:14 »
Ezt ki venném a titulusból. Profi Mapper nekem nem tetszik.

4775
Segítségkérés / Mysql mentés.
« Dátum: 2013. március 23. - 08:24:45 »
minden meg van.

4776
Segítségkérés / Mysql mentés.
« Dátum: 2013. március 23. - 07:30:19 »
Sziasztok! Nos elkezdtem tanulni az mysqlt mivel van egy hostom a sunwellnél ezért sikeresen csatlakoztam az adatábzishoz. Olvastam pár leírást de úgy sem tudtam meg csinálni, hogy az adminisztrátor szintjét betöltse és elmentse amit használok az a kurta999 regisztrációs rendszer probáltam már mindent de nem jó nem tudom miért nem menti, valaki segítene, hogy hogyan kell menteni mysql -ban + betölteni? Mivel még csak most tapasztalom..  :confused:
 

// MySQL Regisztráció rendszer by kurta999
// Verzió: 2.0
// Last Update: 2012.10.29
#include <a_samp>
#tryinclude a_mysql_r7
       #if !defined _a_mysql_r7_included
           #include <a_mysql>
       #endif
     
#if defined mysql_fetch_int
       #error \"Frissítsd a MySQL (a_mysql.inc) függvénykönyvtárad az R7-re!\"
#endif
#include <zcmd> // http://forum.sa-mp.com/showthread.php?t=91354
#define             NINCS_REG_CSILLAG // Rakd a kommenttárba, ha a jelszót a játékosnak a regisztráció dialógusban csillagozni akarod.
// Szerintem ezt ajánlott így hagyni, mivel a regisztrációban könnyen félrhetírhatsz és nemjössz rá a hibára, mivel nem látod, hogy mit írtál..
// A hibára pedig csak akkor jössz rá, miután beregisztráltál.
#define ChangeNameDialog(%1) \\
  ShowPlayerDialog(%1, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, !\"{\" #XCOLOR_RED \"}Névváltás\", !\"{\" #XCOLOR_GREEN \"}Lentre írd be az új neved! \\nHa régóta játszol már, akkor a névváltás több másodpercig is eltarthat!\\n\\n{\" #XCOLOR_RED \"}Ahogy megváltoztattad, rögtön változtasd meg a neved a SAMP-ba!\", !\"Változtatás\", !\"Mégse\")
// gpci beágyazása
native gpci(playerid, const serial[], maxlen);
new
        year,
        month,
        day,
        hour,
        minute,
        second;
new // Direkt adok hozzá + 1 karaktert, mivel valahol a \\0 kraktert is tárolni kell. (Ez 4 karakter, de kell az 5. is, mivel ott tárolja a \\0-t! [\'a\', \'n\', \'y\', \'á\', \'d\', \'\\0\'])
        g_szQuery[512 +1],
        g_szDialogFormat[4096],
        i_str[128 +1],
        g_szIP[16 +1];
// Bit flagok
enum e_PLAYER_FLAGS (<<= 1)
{
        e_LOGGED_IN = 1,
        e_FIRST_SPAWN
}
new
        e_PLAYER_FLAGS:g_PlayerFlags[MAX_PLAYERS char];
new
        g_pQueryQueue[MAX_PLAYERS];
// MySQL beállítások, alapból ezek azok a wamp-nál, csak a tábla nevét módosítsd arra, amilyen néven létrehoztad, nekem itt a \'samp\'
#define MYSQL_HOST                              \"localhost\"
#define MYSQL_USER                              \"root\"
#define MYSQL_PASS                              \"\"
#define MYSQL_DB                                \"samp\"
// Üzenet, amit akkor ír ki, ha a lekérdezés befejezése elõtt lelép a játékos
#define QUERY_COLLISION(%0) \\
       printf(\"Query collision \\\" #%0 \\\"! PlayerID: %d, queue: %d, g_pQueryQueue: %d\", playerid, queue, g_pQueryQueue[playerid])
// RRGGBBAA
#define COLOR_GREEN                     0x33FF33AA
#define COLOR_RED                               0xFF0000AA
#define COLOR_YELLOW                    0xFF9900AA
#define COLOR_PINK                              0xFF66FFAA
// RRGGBB
#define XCOLOR_GREEN                    33FF33
#define XCOLOR_RED                              FF0000
#define XCOLOR_BLUE                             33CCFF
#define XCOLOR_YELLOW                   FF9900
#define XCOLOR_WHITE                    FFFFFF
// Dialóg ID
enum
{
        DIALOG_LOGIN = 20000,
        DIALOG_REGISTER,
        DIALOG_CHANGENAME,
        DIALOG_CHANGEPASS,
        DIALOG_FINDPLAYER
}
// isnull by Y_Less
#define isnull(%1) \\
       ((!(%1[0])) || (((%1[0]) == \'\\1\') && (!(%1[1]))))
public OnFilterScriptInit()
{
        // MySQL
        print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");
        mysql_debug(1); // Hosztos szerveren ajánlott kikapcsolni. (Ha bekapcsovla hagyod sem nagyon lesz semmi, mivel R7-ben nem ír annyi információt ki, mind a régebbiekben)
        mysql_connect(!MYSQL_HOST, !MYSQL_USER, !MYSQL_DB, !MYSQL_PASS);
        if(mysql_ping() != 1)
        {
                print(!\"MySQL: Kapcsolódás sikertelen! (\" MYSQL_HOST \")\");
                print(!\"MySQL: A mód kikapcsol! (\" MYSQL_HOST \")\");
                SendRconCommand(!\"exit\");
                return 1;
        }
        print(!\"MySQL: Kapcsolódás elfogadva!\" MYSQL_HOST \"\");
        print(!\"MySQL: Adatbázis \" MYSQL_DB \" kiválasztva!\");
        return 1;
}
public OnFilterScriptExit()
{
        mysql_close(); // Kapcsolat bezárása
        return 1;
}
public OnPlayerConnect(playerid)
{
        SetPlayerColor(playerid, (random(0xFFFFFF) << 8) | 0xFF); // GetPlayerColor() javítása
        g_pQueryQueue[playerid]++;
       
        format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
        mysql_function_query(1, g_szQuery, true, \"THREAD_OnPlayerConnect\", \"dd\", playerid, g_pQueryQueue[playerid]);
        return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
        g_pQueryQueue[playerid]++;
        return SavePlayer(playerid, GetPVarInt(playerid, \"RegID\"));
}
forward THREAD_OnPlayerConnect(playerid, queue);
public THREAD_OnPlayerConnect(playerid, queue)
{
        // Ha a játékos csatlakozik vagy lelép, akkor a \"g_pQueryQueue[playerid]\" értéke mindig növekedik.
        // Lekérdezésnél átvisszük ennek az értékét a \"queue\" nevû paraméterben, amit majd a lekérdezés lefutásánál ellenõrzünk.
        // Ha a játékos lelépett, akkor \"g_pQueryQueue[playerid]\" egyel több lett, tehát nem egyenlõ a \"queue\" paraméter értékével.
        // Ez esetben a lekérdezés nem fog lefutni, hanem egy figyelmezetõ üzenetet fog kiírni a konzolva, hogy \"query collision\".
        // Nagyon fontos ez, mivel ha van egy lekérdezés, ami lekérdez valami \"titkos\" adatot az adatbázisból,
        // közben belaggol a a mysql szerver, a lekérdezés eltart 5 másodpercig, feljön egy másik játékos és annak fogja kiírni az adatokat,
        // mivel a lekérdezés lefutása közben lelépett a játékos és egy másik jött a helyére. Erre van ez a védelem, így ettõl egyáltalán nem kell tartani.
        // Sima lekérdezéseknél (ház betöltés, egyéb betöltés, frissítés, stb.. sz*rságok) ilyen helyen nem szükséges ez a védelem.
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_OnPlayerConnect);
        new
                szFetch[12];
        cache_get_row(0, 0, szFetch);
        SetPVarInt(playerid, \"LineID\", strval(szFetch));
        // Ez itt egy \"átmeneti változó\", ami tárolja, hogy mi a reg id-je a játékosnak.
        // Ha nulla, akkor nincs regisztrálva (mivel az SQL 0-t ad vissza, ha nemlétezõ a sor), ellentétben pedig igen.
       
        g_PlayerFlags{playerid} = e_PLAYER_FLAGS:0; // Nullázuk az értékét, nem elég a nulla, kell elé a változó tagja is, különben figyelmeztet a fordító.
    if(!IsPlayerNPC(playerid)) // Csak játékosokra vonatkozik
        {
                SetPVarInt(playerid, \"RegID\", -1);
                GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
                gpci(playerid, i_str, sizeof(i_str));
                getdate(year, month, day);
                gettime(hour, minute, second);
                format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `connections`(id, name, ip, serial, time) VALUES(0, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pName(playerid), g_szIP, i_str, year, month, day, hour, minute, second);
                mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
                // Autologin
               
                // Leftuttatunk egy lekérdezést, ami ha befejezõdött, akkor meghívódik a \"THREAD_Autologin\" callback.
                // A régebbi pluginnal ez egy funkcióban ment, szóval ha a mysql szerver belaggolt és a lekérdezés eltartott 5 másodpercig,
                // akkor 5 másodpercig megfagyott a szerver.
                // Itt nem fog megfagyni semeddig a szerver, mivel létrehoz neki egy új szálat, és az a szál fagy meg míg nem fut le a lekérdezés.
                // Lefutás után pedig meghívja a \"THREAD_Autologin\" callbackot. Ez már logikus, hogy az alap szálon (main thread)-on fut.
                //
                // Fenti lekérdezéssel is szintén ez a helyzet, viszont ott nem vagyunk kiváncsi a kapott értékekre.
                // Az a lefutása során az \"OnQueryFinish\" callbackot hívja meg, viszont itt nem történik semmi.
                // Ugyanaz a helyzet az összes lekérdezéssel, ha kiváncsi lennék az értékére, akkor ugyanúgy a callback alá raknám a dolgokat, mint itt.
                format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `ip` = \'%s\'\", pName(playerid), g_szIP);
                mysql_function_query(1, g_szQuery, true, \"THREAD_Autologin\", \"dd\", playerid, g_pQueryQueue[playerid]);
        }
        return 1;
}
forward THREAD_Autologin(playerid, queue);
public THREAD_Autologin(playerid, queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Autologin);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(rows) // Ha a sor nem üres
        {
                LoginPlayer(playerid);
                SendClientMessage(playerid, COLOR_GREEN, \"Automatikusan bejelentkeztél!\");
        }
        return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
        if(IsPlayerNPC(playerid)) return 1;
   
    //printf(\"%d\", g_PlayerFlags{playerid} & e_LOGGED_IN);
        if(!(g_PlayerFlags{playerid} & e_LOGGED_IN)) // Felmutatjuk neki a megfelelõ dialógot
        {
                if(GetPVarInt(playerid, \"LineID\"))
                {
                        LoginDialog(playerid);
                }
                else
                {
                        RegisterDialog(playerid);
                }
        }
        return 1;
}
public OnPlayerRequestSpawn(playerid)
{
        if(IsPlayerNPC(playerid)) return 1;
        if(!(g_PlayerFlags{playerid} & e_LOGGED_IN)) // Felmutatjuk neki a megfelelõ dialógot
        {
                if(GetPVarInt(playerid, \"LineID\"))
                {
                        LoginDialog(playerid);
                }
                else
                {
                        RegisterDialog(playerid);
                }
        }
        return 1;
}
public OnPlayerSpawn(playerid)
{
        // Ha elõször spawnol, akkor odaadjuk neki a pénzt. Mivel skinválasztásnál nem lehet pénzt adni a játékosnak!
        if(!(g_PlayerFlags{playerid} & e_FIRST_SPAWN))
        {
                ResetPlayerMoney(playerid);
                GivePlayerMoney(playerid, GetPVarInt(playerid, \"Cash\"));
                DeletePVar(playerid, \"Cash\");
                g_PlayerFlags{playerid} |= e_FIRST_SPAWN;
        }
        // Ütésstílus beállítása
        SetPlayerFightingStyle(playerid, GetPVarInt(playerid, \"Style\"));
        return 1;
}
 
// Y_Less
NameCheck(const aname[])
{
    new
        i,
        ch;
    while ((ch = aname[i++]) && ((ch == \']\') || (ch == \'[\') || (ch == \'(\') || (ch == \')\') || (ch == \'_\') || (ch == \'$\') || (ch == \'@\') || (ch == \'.\') || (ch == \'=\') || (\'0\' <= ch <= \'9\') || ((ch |= 0x20) && (\'a\' <= ch <= \'z\')))) {}
    return !ch;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        switch(dialogid)
        {
                case DIALOG_LOGIN:
                {
                        if(!response)
                            return LoginDialog(playerid);
                        if(g_PlayerFlags{playerid} & e_LOGGED_IN)
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Már be vagy jelentkezve.\");
                                return 1;
                        }
                        if(isnull(inputtext))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem írtál be semilyen jelszót!\");
                                LoginDialog(playerid);
                                return 1;
                        }
                        if(!(3 <= strlen(inputtext) <= 20))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó hosszúság! 3 - 20\");
                                LoginDialog(playerid);
                                return 1;
                        }
                        new
                                szEscape[32];
                        mysql_real_escape_string(inputtext, szEscape); // Kiszûri az adatot, SQL injection elkerülése végett. Bõvebben itt olvashatsz róla: http://sampforum.hu/index.php?topic=9285.0
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `pass` COLLATE `utf8_bin` LIKE \'%s\'\", pName(playerid), szEscape);
                        mysql_function_query(1, g_szQuery, true, \"THREAD_DialogLogin\", \"dd\", playerid, g_pQueryQueue[playerid]);
                }
                case DIALOG_REGISTER:
                {
                        if(!response)
                                return RegisterDialog(playerid);
                        if(isnull(inputtext))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem írtál be semilyen jelszót!\");
                                RegisterDialog(playerid);
                                return 1;
                        }
                        if(!(3 <= strlen(inputtext) <= 20))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó hosszúság! 3 - 20\");
                                RegisterDialog(playerid);
                                return 1;
                        }
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
                        mysql_function_query(1, g_szQuery, true, \"THREAD_Register_1\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
                }
                case DIALOG_CHANGENAME:
                {
                        if(!response)
                                return 0;
                        if(!(3 <= strlen(inputtext) <= 20))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ hosszú a neved! 3 és 20 karakter között legyen!\");
                                ChangeNameDialog(playerid);
                                return 1;
                        }
                        if(!NameCheck(inputtext))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ név! Csak ezek a karakterek lehetnek benne: {\" #XCOLOR_GREEN \"}A-Z, 0-9, [], (), $, @. {\" #XCOLOR_RED \"}Ezenkívül helyet nem tartamlazhat!\");
                                ChangeNameDialog(playerid);
                                return 1;
                        }
                        if(!strcmp(inputtext, pName(playerid), true))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Jelenleg is ez a neved! Írj be egy másikat!\");
                                ChangeNameDialog(playerid);
                                return 1;
                        }
                        mysql_real_escape_string(inputtext, i_str);
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", i_str);
                        mysql_function_query(1, g_szQuery, true, \"THREAD_Changename\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
                }
                case DIALOG_CHANGEPASS:
                {
                        if(!response)
                                return 0;
                        if(!(3 <= strlen(inputtext) <= 20))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ hosszú a jelszavad! 3 és 20 karakter között legyen!\");
                                ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_INPUT, \"Jelszóváltás\", \"Lentre írd be az új jelszavad! \\n\\n\", \"Változtatás\", \"Mégse\");
                                return 1;
                        }
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT `pass` FROM `players` WHERE `reg_id` = %d\", GetPVarInt(playerid, \"RegID\"));
                        mysql_function_query(1, g_szQuery, true, \"THREAD_Changepass\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
                }
                case DIALOG_FINDPLAYER:
                {
                        if(!response)
                                return 0;
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\'\", inputtext);
                        mysql_function_query(1, g_szQuery, true, \"THREAD_Findplayer\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
                }
        }
        return 1;
}
forward THREAD_DialogLogin(playerid, queue);
public THREAD_DialogLogin(playerid, queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_DialogLogin);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(rows != 1)
        {
                SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó.\");
                LoginDialog(playerid);
                return 1;
        }
        LoginPlayer(playerid);
        GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
        format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `ip` = \'%s\' WHERE `reg_id` = %d\", g_szIP, GetPVarInt(playerid, \"RegID\"));
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        SendClientMessage(playerid, COLOR_GREEN, !\"Sikersen bejelentkeztél!\");
        return 1;
}
forward THREAD_Register_1(playerid, password[], queue);
public THREAD_Register_1(playerid, password[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Register_1);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(rows)
        {
                SendClientMessage(playerid, COLOR_RED, \"MySQL sorok száma nem 0, valami hiba történt a kiválasztás közben!\");
                SendClientMessage(playerid, COLOR_RED, \"Ezt a hibát jelezd a tulajdonosnak! Kickelve lettél, mert ebbõl hiba keletkezhet!\");
                printf(\"MySQL rosw > 1 (%d, %s)\", playerid, password);
                Kick(playerid);
                return 1;
        }
        new
                szEscape[21];
        getdate(year, month, day);
        gettime(hour, minute, second);
        GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
        mysql_real_escape_string(password, szEscape);
        format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `players`(reg_id, name, ip, pass, reg_date, laston) VALUES(0, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pName(playerid), g_szIP, szEscape, year, month, day, hour, minute, second, year, month, day, hour, minute, second);
        mysql_function_query(1, g_szQuery, false, \"THREAD_Register_2\", \"dsd\", playerid, password, g_pQueryQueue[playerid]);
        return 1;
}
forward THREAD_Register_2(playerid, password[], queue);
public THREAD_Register_2(playerid, password[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Register_2);
        new
                iRegID = mysql_insert_id();
        SetPVarInt(playerid, \"RegID\", iRegID); // Játékos Regisztrációs ID-jét beállítuk arra, amelyik sorba írtunk elõbb ( INSERT INTO )
        SetPVarInt(playerid, \"Style\", 4);
        g_PlayerFlags{playerid} |= e_LOGGED_IN;
        format(i_str, sizeof(i_str), \"Sikeresen regisztráltál! A jelszavad: {\" #XCOLOR_RED \"}%s. {\" #XCOLOR_GREEN \"}Felhasználó ID: {\" #XCOLOR_BLUE \"}%d\", password, iRegID);
       SendClientMessage(playerid, COLOR_GREEN, i_str);
        SendClientMessage(playerid, COLOR_PINK, \"Ennyi lenne a MySQL regisztáció {\" #XCOLOR_BLUE \"}:)\");
       return 1;
}
forward THREAD_Changename(playerid, inputtext[], queue);
public THREAD_Changename(playerid, inputtext[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Changename);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(rows)
        {
                SendClientMessage(playerid, COLOR_RED, \"HIBA: Ez a név már használatban van!\");
                SendClientMessage(playerid, COLOR_GREEN, \"Írj be egy más nevet, vagy menj a \'Mégse\' gombra!\");
                ChangeNameDialog(playerid);
                return 1;
        }
        new
                szOldName[MAX_PLAYER_NAME + 1],
                pRegID = GetPVarInt(playerid, \"RegID\");
        GetPlayerName(playerid, szOldName, sizeof(szOldName));
        if(SetPlayerName(playerid, inputtext) != 1)
        {
                SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ név! Írj be egy másikat!\");
                ChangeNameDialog(playerid);
                return 1;
        }
        getdate(year, month, day);
        gettime(hour, minute, second);
        format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `namechanges`(id, reg_id, oldname, newname, time) VALUES(0, %d, \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pRegID, szOldName, inputtext, year, month, day, hour, minute, second);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `name` = \'%s\' WHERE `reg_id` = %d\", inputtext, pRegID);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        format(i_str, sizeof(i_str), \"Sikeresen átváltottad a neved! Új neved: {\" #XCOLOR_WHITE \"}%s.\", inputtext);
       SendClientMessage(playerid, COLOR_YELLOW, i_str);
        return 1;
}
forward THREAD_Changepass(playerid, password[], queue);
public THREAD_Changepass(playerid, password[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Changepass);
        new
            szOldPass[21],
            szEscaped[21],
            pRegID = GetPVarInt(playerid, \"RegID\");
        cache_get_row(0, 0, szOldPass);
        mysql_real_escape_string(password, szEscaped);
        format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `pass` = \'%s\' WHERE `reg_id` = %d\", szEscaped, pRegID);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        getdate(year, month, day);
        gettime(hour, minute, second);
        format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `namechanges_p`(id, reg_id, name, oldpass, newpass, time) VALUES(0, %d, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pRegID, pName(playerid), szOldPass, szEscaped, year, month, day, hour, minute, second);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        format(i_str, sizeof(i_str), \"Sikeresen átállítotad a jelszavad! Új jelszavad: {\" #XCOLOR_GREEN \"}%s\", password);
       SendClientMessage(playerid, COLOR_YELLOW, i_str);
        return 1;
}
forward THREAD_Findplayer(playerid, inputtext[], queue);
public THREAD_Findplayer(playerid, inputtext[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Findplayer);
        new
                szFetch[12],
                szRegDate[24],
                szLaston[24],
                iData[6];
        cache_get_row(0, 0, szFetch); iData[0] = strval(szFetch); // regid
        cache_get_row(0, 4, szRegDate);
        cache_get_row(0, 5, szLaston);
        cache_get_row(0, 6, szFetch); iData[1] = strval(szFetch); // money
        cache_get_row(0, 7, szFetch); iData[2] = strval(szFetch); // score
        cache_get_row(0, 8, szFetch); iData[3] = strval(szFetch); // kills
        cache_get_row(0, 9, szFetch); iData[4] = strval(szFetch); // deaths
        cache_get_row(0, 10, szFetch); iData[5] = strval(szFetch); // style
        switch(iData[5])
        {
                case FIGHT_STYLE_NORMAL: szFetch = \"Normál\";
                case FIGHT_STYLE_BOXING: szFetch = \"Boxoló\";
                case FIGHT_STYLE_KUNGFU: szFetch = \"Kungfu\";
                case FIGHT_STYLE_KNEEHEAD: szFetch = \"Kneehead\";
                case FIGHT_STYLE_GRABKICK: szFetch = \"Grabkick\";
                case FIGHT_STYLE_ELBOW: szFetch = \"Elbow\";
        }
        // Üzenet elküldése
        format(i_str, sizeof(i_str), \"Név: %s, ID: %d, RegID: %d, Pénz: %d, Pont: %d\", inputtext, playerid, iData[0], iData[1], iData[2]);
        SendClientMessage(playerid, COLOR_RED, i_str);
        format(i_str, sizeof(i_str), \"Ölések: %d, Halálok: %d, Arány: %.2f, Ütés Stílus: %s\", iData[3], iData[4], (iData[3] && iData[4]) ? (floatdiv(iData[3], iData[4])) : (0.0), szFetch);
        SendClientMessage(playerid, COLOR_YELLOW, i_str);
        format(i_str, sizeof(i_str), \"Regisztáció ideje: {\" #XCOLOR_BLUE \"}%s{\" #XCOLOR_GREEN \"}, Utuljára a szerveren: {\" #XCOLOR_BLUE \"}%s\", szRegDate, szLaston);
       SendClientMessage(playerid, COLOR_GREEN, i_str);
        return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
        if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
        {
                SetPVarInt(killerid, \"Kills\", GetPVarInt(killerid, \"Kills\") + 1);
        }
        SetPVarInt(playerid, \"Deaths\", GetPVarInt(playerid, \"Deaths\") + 1);
        return 1;
}
// Statisztika felmutató
CMD:stats(playerid, params[])
{
        format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_date`, `laston` FROM `players` WHERE `reg_id` = %d\", GetPVarInt(playerid, \"RegID\")); // Kiválasztjuk a reg_date és a laston mezõt
        mysql_function_query(1, g_szQuery, true, \"THREAD_Stats\", \"dd\", playerid, g_pQueryQueue[playerid]);
        return 1;
}
forward THREAD_Stats(playerid, queue);
public THREAD_Stats(playerid, queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Stats);
        new
                RegDate[24],
                Laston[24],
                szStyle[24],
                Kills = GetPVarInt(playerid, \"Kills\"),
                Deaths = GetPVarInt(playerid, \"Deaths\");
        cache_get_row(0, 0, RegDate);
        cache_get_row(0, 1, Laston);
        switch(GetPlayerFightingStyle(playerid))
        {
                case FIGHT_STYLE_NORMAL: szStyle = \"Normál\";
                case FIGHT_STYLE_BOXING: szStyle = \"Boxoló\";
                case FIGHT_STYLE_KUNGFU: szStyle = \"Kungfu\";
                case FIGHT_STYLE_KNEEHEAD: szStyle = \"Kneehead\";
                case FIGHT_STYLE_GRABKICK: szStyle = \"Grabkick\";
                case FIGHT_STYLE_ELBOW: szStyle = \"Elbow\";
        }
        // Üzenet elküldése
        format(i_str, sizeof(i_str), \"Név: %s, ID: %d, RegID: %d, Pénz: %d, Pont: %d\", pName(playerid), playerid, GetPVarInt(playerid, \"RegID\"), GetPlayerMoney(playerid), GetPlayerScore(playerid));
        SendClientMessage(playerid, COLOR_RED, i_str);
        format(i_str, sizeof(i_str), \"Ölések: %d, Halálok: %d, Arány: %.2f, Ütés Stílus: %s\", Kills, Deaths, (Kills && Deaths) ? (floatdiv(Kills, Deaths)) : (0.0), szStyle);
        SendClientMessage(playerid, COLOR_YELLOW, i_str);
        format(i_str, sizeof(i_str), \"Regisztáció ideje: {\" #XCOLOR_BLUE \"}%s{\" #XCOLOR_GREEN \"}, Utuljára a szerveren: {\" #XCOLOR_BLUE \"}%s\", RegDate, Laston);
       SendClientMessage(playerid, COLOR_GREEN, i_str);
        return 1;
}
/*
CMD:kill(playerid, params[])
{
        SetPlayerHealth(playerid, 0.0);
        return 1;
}
CMD:flag(playerid, params[])
{
        format(i_str, 128, \"Logged: %d, FirstSpawn: %d\", g_PlayerFlags{playerid} & e_LOGGED_IN, g_PlayerFlags{playerid} & e_FIRST_SPAWN);
        SendClientMessage(playerid, -1, i_str);
        return 1;
}
*/
CMD:changename(playerid, params[])
{
        ChangeNameDialog(playerid);
        return 1;
}
CMD:changepass(playerid, params[])
{
        ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_PASSWORD, \"Jelszóváltás\", \"Lentre írd be az új jelszavad! \\n\\n\", \"Változtatás\", \"Mégse\");
        return 1;
}
CMD:findplayer(playerid, params[])
{
        if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, \"HASZNÁLAT: /findplayer <Játékos Névrészlet>\");
        if(strlen(params) > MAX_PLAYER_NAME) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Túl hosszú a részlet, maximum 24 karakter lehet!\");
        format(g_szQuery, sizeof(g_szQuery), \"SELECT `name` FROM `players` WHERE `name` LIKE \'%s%s%s\'\", \"%%\", params, \"%%\");
        mysql_function_query(1, g_szQuery, true, \"THREAD_FindplayerDialog\", \"dsd\", playerid, params, g_pQueryQueue[playerid]);
        return 1;
}
forward THREAD_FindplayerDialog(playerid, reszlet[], queue);
public THREAD_FindplayerDialog(playerid, reszlet[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_FindplayerDialog);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(!rows)
        {
                format(i_str, sizeof(i_str), \"Nincs találat a \'%s\' részletre!\", reszlet);
                SendClientMessage(playerid, COLOR_RED, i_str);
                return 1;
        }
        else if(rows > 180)
        {
                format(i_str, sizeof(i_str), \"A \'%s\' részletre több, mint 180 találad van! < %d >!\", reszlet, rows);
                SendClientMessage(playerid, COLOR_RED, i_str);
                return 1;
        }
        new
            x,
            szName[MAX_PLAYER_NAME];
        g_szDialogFormat[0] = EOS;
        for( ; x != rows; x++)
        {
                cache_get_row(x, 0, szName);
                strcat(g_szDialogFormat, szName);
                strcat(g_szDialogFormat, \"\\n\");
        }
        format(i_str, 128, \"Találatok a(z) \'%s\' részletre.. (%d)\", reszlet, x);
        ShowPlayerDialog(playerid, DIALOG_FINDPLAYER, DIALOG_STYLE_LIST, i_str, g_szDialogFormat, \"Megtekint\", \"Mégse\");
        return 1;
}
/////////////////////////////////////////
stock LoginDialog(playerid)
{
        format(i_str, sizeof(i_str), \"{\" #XCOLOR_WHITE \"}Bejelentkezés: {%06x}%s(%d)\", GetPlayerColor(playerid) >>> 8, pName(playerid), playerid);
       ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nTe már regisztálva vagy. Lentre írd be a jelszavad\", !\"Bejelentkezés\", !\"Mégse\");
       return 1;
}
stock RegisterDialog(playerid)
{
        format(i_str, sizeof(i_str), \"{\" #XCOLOR_WHITE \"}Regisztráció: {%06x}%s(%d)\", GetPlayerColor(playerid) >>> 8, pName(playerid), playerid);
        #if defined NINCS_REG_CSILLAG
               ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nItt még nem regisztráltál. Lentre írd be a jelszavad\", !\"Regisztáció\", !\"Mégse\");
       #else
               ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nItt még nem regisztráltál. Lentre írd be a jelszavad\", !\"Regisztáció\", !\"Mégse\");
       #endif
       return 1;
}
/* Bejelentkezés */
stock LoginPlayer(playerid)
{
        new
                iPVarSet[6],
                szFetch[12],
                iRegID = GetPVarInt(playerid, \"LineID\");
        // Ha a line ID 0, tehát a MySQL nem adott vissza sorokat, akkor semmiképp sem jelentkezhez be!
        // Ennek nem szabadna elõfordulnia, de biztonság kedvéért teszek rá védelmet.
        if(!iRegID) return printf(\"HIBA: Rossz reg ID! Játékos: %s(%d) (regid: %d)\", pName(playerid), playerid, iRegID);
   
        SetPVarInt(playerid, \"RegID\", iRegID); // RegID-t beállítjuk
        cache_get_row(0, 0, szFetch); iPVarSet[0] = strval(szFetch); // RegID
        cache_get_row(0, 6, szFetch); iPVarSet[1] = strval(szFetch); // Money
        cache_get_row(0, 7, szFetch); iPVarSet[2] = strval(szFetch); // Score
        cache_get_row(0, 8, szFetch); iPVarSet[3] = strval(szFetch); // Kills
        cache_get_row(0, 9, szFetch); iPVarSet[4] = strval(szFetch); // Deaths
        cache_get_row(0, 10, szFetch); iPVarSet[5] = strval(szFetch); // Fightingstyle
        SetPVarInt(playerid, \"Cash\", iPVarSet[1]); // A pénzét egy PVar-ban tároljuk, mert a skinválasztásnál nemlehet a játékos pénzét állítani.
        SetPlayerScore(playerid, iPVarSet[2]);
        SetPVarInt(playerid, \"Kills\", iPVarSet[3]);
        SetPVarInt(playerid, \"Deaths\", iPVarSet[4]);
        SetPVarInt(playerid, \"Style\", iPVarSet[5]);
        g_PlayerFlags{playerid} |= e_LOGGED_IN;
        return 1;
}
stock SavePlayer(playerid, regid)
{
        if(IsPlayerNPC(playerid)) return 1;
        // Ha nincs bejelentkezve és még nem spawnolt le, akkor nem mentjük. Ezt ajánlatos itthagyni, mivel ezmiatt nekem sok bug keletkezett!
        if(g_PlayerFlags{playerid} & (e_LOGGED_IN | e_FIRST_SPAWN) == (e_LOGGED_IN | e_FIRST_SPAWN))
        {
                getdate(year, month, day);
                gettime(hour, minute, second);
                format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `laston` = \'%02d.%02d.%02d/%02d.%02d.%02d\', `money` = %d, `score` = %d, `kills` = %d, `deaths` = %d, `fightingstyle` = \'%d\' WHERE `reg_id` = %d\",
                year, month, day, hour, minute, second, GetPlayerMoney(playerid), GetPlayerScore(playerid), GetPVarInt(playerid, \"Kills\"), GetPVarInt(playerid, \"Deaths\"), GetPlayerFightingStyle(playerid),
                regid);
                mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
                // %02d azt jelenti, hogyha a szám egyjegyû (1, 5, 7, stb... ), akkor tegyen elé egy 0-t. Pl: 05, 07.
                // Ezt általában idõre használják, mivel így \'érthetõbb\'.
                // Ez ugyanúgy mûködik %03d-vel %04d-vel, és így továb... ^
        }
        return 1;
}
stock pName(playerid)
{
        static // \"Helyi\" globális változó
                s_szName[MAX_PLAYER_NAME];
        GetPlayerName(playerid, s_szName, sizeof(s_szName));
        return s_szName;
}
forward OnQueryFinish();
public OnQueryFinish()
{
        return 1;
}
/* SQL Tábla */
/*
CREATE TABLE IF NOT EXISTS `connections` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(21) NOT NULL,
  `ip` varchar(16) NOT NULL,
  `serial` varchar(128) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `namechanges` (
  `id` smallint(5) NOT NULL AUTO_INCREMENT,
  `reg_id` mediumint(8) NOT NULL,
  `oldname` varchar(21) NOT NULL,
  `newname` varchar(21) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `reg_id` (`reg_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `namechanges_p` (
  `id` smallint(5) NOT NULL AUTO_INCREMENT,
  `reg_id` mediumint(8) NOT NULL,
  `name` varchar(24) NOT NULL,
  `oldpass` varchar(21) NOT NULL,
  `newpass` varchar(21) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `reg_id` (`reg_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `players` (
  `reg_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(24) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `ip` varchar(20) NOT NULL,
  `pass` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `reg_date` varchar(24) NOT NULL,
  `laston` varchar(24) NOT NULL,
  `money` int(11) NOT NULL DEFAULT \'0\',
  `score` int(11) NOT NULL DEFAULT \'0\',
  `kills` mediumint(11) unsigned NOT NULL DEFAULT \'0\',
  `deaths` mediumint(11) unsigned NOT NULL DEFAULT \'0\',
  `fightingstyle` enum(\'4\',\'5\',\'6\',\'7\',\'15\',\'16\') NOT NULL DEFAULT \'4\',
  PRIMARY KEY (`reg_id`),
  KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
CREATE TABLE IF NOT EXISTS `queryerrors` (
  `id` mediumint(7) NOT NULL AUTO_INCREMENT,
  `errorid` int(11) NOT NULL,
  `error` text NOT NULL,
  `resultid` mediumint(7) NOT NULL,
  `extraid` mediumint(7) NOT NULL,
  `callback` varchar(512) NOT NULL,
  `sql_query` varchar(512) NOT NULL,
  `connectionHandle` mediumint(7) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `errorid` (`errorid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
*/
 

4777
Egyébként megkaptam ha kell valakinek akkor :
 

// MySQL Regisztráció rendszer by kurta999
// Verzió: 2.0
// Last Update: 2012.10.29
#include <a_samp>
#tryinclude a_mysql_r7
        #if !defined _a_mysql_r7_included
            #include <a_mysql>
        #endif
       
#if defined mysql_fetch_int
        #error \"Frissítsd a MySQL (a_mysql.inc) függvénykönyvtárad az R7-re!\"
#endif
#include <zcmd> // http://forum.sa-mp.com/showthread.php?t=91354
#define             NINCS_REG_CSILLAG // Rakd a kommenttárba, ha a jelszót a játékosnak a regisztráció dialógusban csillagozni akarod.
// Szerintem ezt ajánlott így hagyni, mivel a regisztrációban könnyen félrhetírhatsz és nemjössz rá a hibára, mivel nem látod, hogy mit írtál..
// A hibára pedig csak akkor jössz rá, miután beregisztráltál.
#define ChangeNameDialog(%1) \\
   ShowPlayerDialog(%1, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, !\"{\" #XCOLOR_RED \"}Névváltás\", !\"{\" #XCOLOR_GREEN \"}Lentre írd be az új neved! \\nHa régóta játszol már, akkor a névváltás több másodpercig is eltarthat!\\n\\n{\" #XCOLOR_RED \"}Ahogy megváltoztattad, rögtön változtasd meg a neved a SAMP-ba!\", !\"Változtatás\", !\"Mégse\")
// gpci beágyazása
native gpci(playerid, const serial[], maxlen);
new
        year,
        month,
        day,
        hour,
        minute,
        second;
new // Direkt adok hozzá + 1 karaktert, mivel valahol a \\0 kraktert is tárolni kell. (Ez 4 karakter, de kell az 5. is, mivel ott tárolja a \\0-t! [\'a\', \'n\', \'y\', \'á\', \'d\', \'\\0\'])
        g_szQuery[512 +1],
        g_szDialogFormat[4096],
        i_str[128 +1],
        g_szIP[16 +1];
// Bit flagok
enum e_PLAYER_FLAGS (<<= 1)
{
        e_LOGGED_IN = 1,
        e_FIRST_SPAWN
}
new
        e_PLAYER_FLAGS:g_PlayerFlags[MAX_PLAYERS char];
new
        g_pQueryQueue[MAX_PLAYERS];
// MySQL beállítások, alapból ezek azok a wamp-nál, csak a tábla nevét módosítsd arra, amilyen néven létrehoztad, nekem itt a \'samp\'
#define MYSQL_HOST                              \"localhost\"
#define MYSQL_USER                              \"root\"
#define MYSQL_PASS                              \"\"
#define MYSQL_DB                                \"samp\"
// Üzenet, amit akkor ír ki, ha a lekérdezés befejezése elõtt lelép a játékos
#define QUERY_COLLISION(%0) \\
        printf(\"Query collision \\\" #%0 \\\"! PlayerID: %d, queue: %d, g_pQueryQueue: %d\", playerid, queue, g_pQueryQueue[playerid])
// RRGGBBAA
#define COLOR_GREEN                     0x33FF33AA
#define COLOR_RED                               0xFF0000AA
#define COLOR_YELLOW                    0xFF9900AA
#define COLOR_PINK                              0xFF66FFAA
// RRGGBB
#define XCOLOR_GREEN                    33FF33
#define XCOLOR_RED                              FF0000
#define XCOLOR_BLUE                             33CCFF
#define XCOLOR_YELLOW                   FF9900
#define XCOLOR_WHITE                    FFFFFF
// Dialóg ID
enum
{
        DIALOG_LOGIN = 20000,
        DIALOG_REGISTER,
        DIALOG_CHANGENAME,
        DIALOG_CHANGEPASS,
        DIALOG_FINDPLAYER
}
// isnull by Y_Less
#define isnull(%1) \\
        ((!(%1[0])) || (((%1[0]) == \'\\1\') && (!(%1[1]))))
public OnFilterScriptInit()
{
        // MySQL
        print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");
        mysql_debug(1); // Hosztos szerveren ajánlott kikapcsolni. (Ha bekapcsovla hagyod sem nagyon lesz semmi, mivel R7-ben nem ír annyi információt ki, mind a régebbiekben)
        mysql_connect(!MYSQL_HOST, !MYSQL_USER, !MYSQL_DB, !MYSQL_PASS);
        if(mysql_ping() != 1)
        {
                print(!\"MySQL: Kapcsolódás sikertelen! (\" MYSQL_HOST \")\");
                print(!\"MySQL: A mód kikapcsol! (\" MYSQL_HOST \")\");
                SendRconCommand(!\"exit\");
                return 1;
        }
        print(!\"MySQL: Kapcsolódás elfogadva!\" MYSQL_HOST \"\");
        print(!\"MySQL: Adatbázis \" MYSQL_DB \" kiválasztva!\");
        return 1;
}
public OnFilterScriptExit()
{
        mysql_close(); // Kapcsolat bezárása
        return 1;
}
public OnPlayerConnect(playerid)
{
        SetPlayerColor(playerid, (random(0xFFFFFF) << 8) | 0xFF); // GetPlayerColor() javítása
        g_pQueryQueue[playerid]++;
       
        format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
        mysql_function_query(1, g_szQuery, true, \"THREAD_OnPlayerConnect\", \"dd\", playerid, g_pQueryQueue[playerid]);
        return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
        g_pQueryQueue[playerid]++;
        return SavePlayer(playerid, GetPVarInt(playerid, \"RegID\"));
}
forward THREAD_OnPlayerConnect(playerid, queue);
public THREAD_OnPlayerConnect(playerid, queue)
{
        // Ha a játékos csatlakozik vagy lelép, akkor a \"g_pQueryQueue[playerid]\" értéke mindig növekedik.
        // Lekérdezésnél átvisszük ennek az értékét a \"queue\" nevû paraméterben, amit majd a lekérdezés lefutásánál ellenõrzünk.
        // Ha a játékos lelépett, akkor \"g_pQueryQueue[playerid]\" egyel több lett, tehát nem egyenlõ a \"queue\" paraméter értékével.
        // Ez esetben a lekérdezés nem fog lefutni, hanem egy figyelmezetõ üzenetet fog kiírni a konzolva, hogy \"query collision\".
        // Nagyon fontos ez, mivel ha van egy lekérdezés, ami lekérdez valami \"titkos\" adatot az adatbázisból,
        // közben belaggol a a mysql szerver, a lekérdezés eltart 5 másodpercig, feljön egy másik játékos és annak fogja kiírni az adatokat,
        // mivel a lekérdezés lefutása közben lelépett a játékos és egy másik jött a helyére. Erre van ez a védelem, így ettõl egyáltalán nem kell tartani.
        // Sima lekérdezéseknél (ház betöltés, egyéb betöltés, frissítés, stb.. sz*rságok) ilyen helyen nem szükséges ez a védelem.
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_OnPlayerConnect);
        new
                szFetch[12];
        cache_get_row(0, 0, szFetch);
        SetPVarInt(playerid, \"LineID\", strval(szFetch));
        // Ez itt egy \"átmeneti változó\", ami tárolja, hogy mi a reg id-je a játékosnak.
        // Ha nulla, akkor nincs regisztrálva (mivel az SQL 0-t ad vissza, ha nemlétezõ a sor), ellentétben pedig igen.
       
        g_PlayerFlags{playerid} = e_PLAYER_FLAGS:0; // Nullázuk az értékét, nem elég a nulla, kell elé a változó tagja is, különben figyelmeztet a fordító.
    if(!IsPlayerNPC(playerid)) // Csak játékosokra vonatkozik
        {
                SetPVarInt(playerid, \"RegID\", -1);
                GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
                gpci(playerid, i_str, sizeof(i_str));
                getdate(year, month, day);
                gettime(hour, minute, second);
                format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `connections`(id, name, ip, serial, time) VALUES(0, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pName(playerid), g_szIP, i_str, year, month, day, hour, minute, second);
                mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
                // Autologin
               
                // Leftuttatunk egy lekérdezést, ami ha befejezõdött, akkor meghívódik a \"THREAD_Autologin\" callback.
                // A régebbi pluginnal ez egy funkcióban ment, szóval ha a mysql szerver belaggolt és a lekérdezés eltartott 5 másodpercig,
                // akkor 5 másodpercig megfagyott a szerver.
                // Itt nem fog megfagyni semeddig a szerver, mivel létrehoz neki egy új szálat, és az a szál fagy meg míg nem fut le a lekérdezés.
                // Lefutás után pedig meghívja a \"THREAD_Autologin\" callbackot. Ez már logikus, hogy az alap szálon (main thread)-on fut.
                //
                // Fenti lekérdezéssel is szintén ez a helyzet, viszont ott nem vagyunk kiváncsi a kapott értékekre.
                // Az a lefutása során az \"OnQueryFinish\" callbackot hívja meg, viszont itt nem történik semmi.
                // Ugyanaz a helyzet az összes lekérdezéssel, ha kiváncsi lennék az értékére, akkor ugyanúgy a callback alá raknám a dolgokat, mint itt.
                format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `ip` = \'%s\'\", pName(playerid), g_szIP);
                mysql_function_query(1, g_szQuery, true, \"THREAD_Autologin\", \"dd\", playerid, g_pQueryQueue[playerid]);
        }
        return 1;
}
forward THREAD_Autologin(playerid, queue);
public THREAD_Autologin(playerid, queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Autologin);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(rows) // Ha a sor nem üres
        {
                LoginPlayer(playerid);
                SendClientMessage(playerid, COLOR_GREEN, \"Automatikusan bejelentkeztél!\");
        }
        return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
        if(IsPlayerNPC(playerid)) return 1;
   
    //printf(\"%d\", g_PlayerFlags{playerid} & e_LOGGED_IN);
        if(!(g_PlayerFlags{playerid} & e_LOGGED_IN)) // Felmutatjuk neki a megfelelõ dialógot
        {
                if(GetPVarInt(playerid, \"LineID\"))
                {
                        LoginDialog(playerid);
                }
                else
                {
                        RegisterDialog(playerid);
                }
        }
        return 1;
}
public OnPlayerRequestSpawn(playerid)
{
        if(IsPlayerNPC(playerid)) return 1;
        if(!(g_PlayerFlags{playerid} & e_LOGGED_IN)) // Felmutatjuk neki a megfelelõ dialógot
        {
                if(GetPVarInt(playerid, \"LineID\"))
                {
                        LoginDialog(playerid);
                }
                else
                {
                        RegisterDialog(playerid);
                }
        }
        return 1;
}
public OnPlayerSpawn(playerid)
{
        // Ha elõször spawnol, akkor odaadjuk neki a pénzt. Mivel skinválasztásnál nem lehet pénzt adni a játékosnak!
        if(!(g_PlayerFlags{playerid} & e_FIRST_SPAWN))
        {
                ResetPlayerMoney(playerid);
                GivePlayerMoney(playerid, GetPVarInt(playerid, \"Cash\"));
                DeletePVar(playerid, \"Cash\");
                g_PlayerFlags{playerid} |= e_FIRST_SPAWN;
        }
        // Ütésstílus beállítása
        SetPlayerFightingStyle(playerid, GetPVarInt(playerid, \"Style\"));
        return 1;
}
 
// Y_Less
NameCheck(const aname[])
{
    new
        i,
        ch;
    while ((ch = aname[i++]) && ((ch == \']\') || (ch == \'[\') || (ch == \'(\') || (ch == \')\') || (ch == \'_\') || (ch == \'$\') || (ch == \'@\') || (ch == \'.\') || (ch == \'=\') || (\'0\' <= ch <= \'9\') || ((ch |= 0x20) && (\'a\' <= ch <= \'z\')))) {}
    return !ch;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        switch(dialogid)
        {
                case DIALOG_LOGIN:
                {
                        if(!response)
                            return LoginDialog(playerid);
                        if(g_PlayerFlags{playerid} & e_LOGGED_IN)
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Már be vagy jelentkezve.\");
                                return 1;
                        }
                        if(isnull(inputtext))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem írtál be semilyen jelszót!\");
                                LoginDialog(playerid);
                                return 1;
                        }
                        if(!(3 <= strlen(inputtext) <= 20))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó hosszúság! 3 - 20\");
                                LoginDialog(playerid);
                                return 1;
                        }
                        new
                                szEscape[32];
                        mysql_real_escape_string(inputtext, szEscape); // Kiszûri az adatot, SQL injection elkerülése végett. Bõvebben itt olvashatsz róla: http://sampforum.hu/index.php?topic=9285.0
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `pass` COLLATE `utf8_bin` LIKE \'%s\'\", pName(playerid), szEscape);
                        mysql_function_query(1, g_szQuery, true, \"THREAD_DialogLogin\", \"dd\", playerid, g_pQueryQueue[playerid]);
                }
                case DIALOG_REGISTER:
                {
                        if(!response)
                                return RegisterDialog(playerid);
                        if(isnull(inputtext))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem írtál be semilyen jelszót!\");
                                RegisterDialog(playerid);
                                return 1;
                        }
                        if(!(3 <= strlen(inputtext) <= 20))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó hosszúság! 3 - 20\");
                                RegisterDialog(playerid);
                                return 1;
                        }
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
                        mysql_function_query(1, g_szQuery, true, \"THREAD_Register_1\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
                }
                case DIALOG_CHANGENAME:
                {
                        if(!response)
                                return 0;
                        if(!(3 <= strlen(inputtext) <= 20))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ hosszú a neved! 3 és 20 karakter között legyen!\");
                                ChangeNameDialog(playerid);
                                return 1;
                        }
                        if(!NameCheck(inputtext))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ név! Csak ezek a karakterek lehetnek benne: {\" #XCOLOR_GREEN \"}A-Z, 0-9, [], (), $, @. {\" #XCOLOR_RED \"}Ezenkívül helyet nem tartamlazhat!\");
                                ChangeNameDialog(playerid);
                                return 1;
                        }
                        if(!strcmp(inputtext, pName(playerid), true))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Jelenleg is ez a neved! Írj be egy másikat!\");
                                ChangeNameDialog(playerid);
                                return 1;
                        }
                        mysql_real_escape_string(inputtext, i_str);
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", i_str);
                        mysql_function_query(1, g_szQuery, true, \"THREAD_Changename\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
                }
                case DIALOG_CHANGEPASS:
                {
                        if(!response)
                                return 0;
                        if(!(3 <= strlen(inputtext) <= 20))
                        {
                                SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ hosszú a jelszavad! 3 és 20 karakter között legyen!\");
                                ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_INPUT, \"Jelszóváltás\", \"Lentre írd be az új jelszavad! \\n\\n\", \"Változtatás\", \"Mégse\");
                                return 1;
                        }
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT `pass` FROM `players` WHERE `reg_id` = %d\", GetPVarInt(playerid, \"RegID\"));
                        mysql_function_query(1, g_szQuery, true, \"THREAD_Changepass\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
                }
                case DIALOG_FINDPLAYER:
                {
                        if(!response)
                                return 0;
                        format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\'\", inputtext);
                        mysql_function_query(1, g_szQuery, true, \"THREAD_Findplayer\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
                }
        }
        return 1;
}
forward THREAD_DialogLogin(playerid, queue);
public THREAD_DialogLogin(playerid, queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_DialogLogin);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(rows != 1)
        {
                SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó.\");
                LoginDialog(playerid);
                return 1;
        }
        LoginPlayer(playerid);
        GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
        format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `ip` = \'%s\' WHERE `reg_id` = %d\", g_szIP, GetPVarInt(playerid, \"RegID\"));
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        SendClientMessage(playerid, COLOR_GREEN, !\"Sikersen bejelentkeztél!\");
        return 1;
}
forward THREAD_Register_1(playerid, password[], queue);
public THREAD_Register_1(playerid, password[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Register_1);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(rows)
        {
                SendClientMessage(playerid, COLOR_RED, \"MySQL sorok száma nem 0, valami hiba történt a kiválasztás közben!\");
                SendClientMessage(playerid, COLOR_RED, \"Ezt a hibát jelezd a tulajdonosnak! Kickelve lettél, mert ebbõl hiba keletkezhet!\");
                printf(\"MySQL rosw > 1 (%d, %s)\", playerid, password);
                Kick(playerid);
                return 1;
        }
        new
                szEscape[21];
        getdate(year, month, day);
        gettime(hour, minute, second);
        GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
        mysql_real_escape_string(password, szEscape);
        format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `players`(reg_id, name, ip, pass, reg_date, laston) VALUES(0, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pName(playerid), g_szIP, szEscape, year, month, day, hour, minute, second, year, month, day, hour, minute, second);
        mysql_function_query(1, g_szQuery, false, \"THREAD_Register_2\", \"dsd\", playerid, password, g_pQueryQueue[playerid]);
        return 1;
}
forward THREAD_Register_2(playerid, password[], queue);
public THREAD_Register_2(playerid, password[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Register_2);
        new
                iRegID = mysql_insert_id();
        SetPVarInt(playerid, \"RegID\", iRegID); // Játékos Regisztrációs ID-jét beállítuk arra, amelyik sorba írtunk elõbb ( INSERT INTO )
        SetPVarInt(playerid, \"Style\", 4);
        g_PlayerFlags{playerid} |= e_LOGGED_IN;
        format(i_str, sizeof(i_str), \"Sikeresen regisztráltál! A jelszavad: {\" #XCOLOR_RED \"}%s. {\" #XCOLOR_GREEN \"}Felhasználó ID: {\" #XCOLOR_BLUE \"}%d\", password, iRegID);
        SendClientMessage(playerid, COLOR_GREEN, i_str);
        SendClientMessage(playerid, COLOR_PINK, \"Ennyi lenne a MySQL regisztáció {\" #XCOLOR_BLUE \"}:)\");
        return 1;
}
forward THREAD_Changename(playerid, inputtext[], queue);
public THREAD_Changename(playerid, inputtext[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Changename);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(rows)
        {
                SendClientMessage(playerid, COLOR_RED, \"HIBA: Ez a név már használatban van!\");
                SendClientMessage(playerid, COLOR_GREEN, \"Írj be egy más nevet, vagy menj a \'Mégse\' gombra!\");
                ChangeNameDialog(playerid);
                return 1;
        }
        new
                szOldName[MAX_PLAYER_NAME + 1],
                pRegID = GetPVarInt(playerid, \"RegID\");
        GetPlayerName(playerid, szOldName, sizeof(szOldName));
        if(SetPlayerName(playerid, inputtext) != 1)
        {
                SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ név! Írj be egy másikat!\");
                ChangeNameDialog(playerid);
                return 1;
        }
        getdate(year, month, day);
        gettime(hour, minute, second);
        format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `namechanges`(id, reg_id, oldname, newname, time) VALUES(0, %d, \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pRegID, szOldName, inputtext, year, month, day, hour, minute, second);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `name` = \'%s\' WHERE `reg_id` = %d\", inputtext, pRegID);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        format(i_str, sizeof(i_str), \"Sikeresen átváltottad a neved! Új neved: {\" #XCOLOR_WHITE \"}%s.\", inputtext);
        SendClientMessage(playerid, COLOR_YELLOW, i_str);
        return 1;
}
forward THREAD_Changepass(playerid, password[], queue);
public THREAD_Changepass(playerid, password[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Changepass);
        new
            szOldPass[21],
            szEscaped[21],
            pRegID = GetPVarInt(playerid, \"RegID\");
        cache_get_row(0, 0, szOldPass);
        mysql_real_escape_string(password, szEscaped);
        format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `pass` = \'%s\' WHERE `reg_id` = %d\", szEscaped, pRegID);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        getdate(year, month, day);
        gettime(hour, minute, second);
        format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `namechanges_p`(id, reg_id, name, oldpass, newpass, time) VALUES(0, %d, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pRegID, pName(playerid), szOldPass, szEscaped, year, month, day, hour, minute, second);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        format(i_str, sizeof(i_str), \"Sikeresen átállítotad a jelszavad! Új jelszavad: {\" #XCOLOR_GREEN \"}%s\", password);
        SendClientMessage(playerid, COLOR_YELLOW, i_str);
        return 1;
}
forward THREAD_Findplayer(playerid, inputtext[], queue);
public THREAD_Findplayer(playerid, inputtext[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Findplayer);
        new
                szFetch[12],
                szRegDate[24],
                szLaston[24],
                iData[6];
        cache_get_row(0, 0, szFetch); iData[0] = strval(szFetch); // regid
        cache_get_row(0, 4, szRegDate);
        cache_get_row(0, 5, szLaston);
        cache_get_row(0, 6, szFetch); iData[1] = strval(szFetch); // money
        cache_get_row(0, 7, szFetch); iData[2] = strval(szFetch); // score
        cache_get_row(0, 8, szFetch); iData[3] = strval(szFetch); // kills
        cache_get_row(0, 9, szFetch); iData[4] = strval(szFetch); // deaths
        cache_get_row(0, 10, szFetch); iData[5] = strval(szFetch); // style
        switch(iData[5])
        {
                case FIGHT_STYLE_NORMAL: szFetch = \"Normál\";
                case FIGHT_STYLE_BOXING: szFetch = \"Boxoló\";
                case FIGHT_STYLE_KUNGFU: szFetch = \"Kungfu\";
                case FIGHT_STYLE_KNEEHEAD: szFetch = \"Kneehead\";
                case FIGHT_STYLE_GRABKICK: szFetch = \"Grabkick\";
                case FIGHT_STYLE_ELBOW: szFetch = \"Elbow\";
        }
        // Üzenet elküldése
        format(i_str, sizeof(i_str), \"Név: %s, ID: %d, RegID: %d, Pénz: %d, Pont: %d\", inputtext, playerid, iData[0], iData[1], iData[2]);
        SendClientMessage(playerid, COLOR_RED, i_str);
        format(i_str, sizeof(i_str), \"Ölések: %d, Halálok: %d, Arány: %.2f, Ütés Stílus: %s\", iData[3], iData[4], (iData[3] && iData[4]) ? (floatdiv(iData[3], iData[4])) : (0.0), szFetch);
        SendClientMessage(playerid, COLOR_YELLOW, i_str);
        format(i_str, sizeof(i_str), \"Regisztáció ideje: {\" #XCOLOR_BLUE \"}%s{\" #XCOLOR_GREEN \"}, Utuljára a szerveren: {\" #XCOLOR_BLUE \"}%s\", szRegDate, szLaston);
        SendClientMessage(playerid, COLOR_GREEN, i_str);
        return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
        if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
        {
                SetPVarInt(killerid, \"Kills\", GetPVarInt(killerid, \"Kills\") + 1);
        }
        SetPVarInt(playerid, \"Deaths\", GetPVarInt(playerid, \"Deaths\") + 1);
        return 1;
}
// Statisztika felmutató
CMD:stats(playerid, params[])
{
        format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_date`, `laston` FROM `players` WHERE `reg_id` = %d\", GetPVarInt(playerid, \"RegID\")); // Kiválasztjuk a reg_date és a laston mezõt
        mysql_function_query(1, g_szQuery, true, \"THREAD_Stats\", \"dd\", playerid, g_pQueryQueue[playerid]);
        return 1;
}
forward THREAD_Stats(playerid, queue);
public THREAD_Stats(playerid, queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Stats);
        new
                RegDate[24],
                Laston[24],
                szStyle[24],
                Kills = GetPVarInt(playerid, \"Kills\"),
                Deaths = GetPVarInt(playerid, \"Deaths\");
        cache_get_row(0, 0, RegDate);
        cache_get_row(0, 1, Laston);
        switch(GetPlayerFightingStyle(playerid))
        {
                case FIGHT_STYLE_NORMAL: szStyle = \"Normál\";
                case FIGHT_STYLE_BOXING: szStyle = \"Boxoló\";
                case FIGHT_STYLE_KUNGFU: szStyle = \"Kungfu\";
                case FIGHT_STYLE_KNEEHEAD: szStyle = \"Kneehead\";
                case FIGHT_STYLE_GRABKICK: szStyle = \"Grabkick\";
                case FIGHT_STYLE_ELBOW: szStyle = \"Elbow\";
        }
        // Üzenet elküldése
        format(i_str, sizeof(i_str), \"Név: %s, ID: %d, RegID: %d, Pénz: %d, Pont: %d\", pName(playerid), playerid, GetPVarInt(playerid, \"RegID\"), GetPlayerMoney(playerid), GetPlayerScore(playerid));
        SendClientMessage(playerid, COLOR_RED, i_str);
        format(i_str, sizeof(i_str), \"Ölések: %d, Halálok: %d, Arány: %.2f, Ütés Stílus: %s\", Kills, Deaths, (Kills && Deaths) ? (floatdiv(Kills, Deaths)) : (0.0), szStyle);
        SendClientMessage(playerid, COLOR_YELLOW, i_str);
        format(i_str, sizeof(i_str), \"Regisztáció ideje: {\" #XCOLOR_BLUE \"}%s{\" #XCOLOR_GREEN \"}, Utuljára a szerveren: {\" #XCOLOR_BLUE \"}%s\", RegDate, Laston);
        SendClientMessage(playerid, COLOR_GREEN, i_str);
        return 1;
}
/*
CMD:kill(playerid, params[])
{
        SetPlayerHealth(playerid, 0.0);
        return 1;
}
CMD:flag(playerid, params[])
{
        format(i_str, 128, \"Logged: %d, FirstSpawn: %d\", g_PlayerFlags{playerid} & e_LOGGED_IN, g_PlayerFlags{playerid} & e_FIRST_SPAWN);
        SendClientMessage(playerid, -1, i_str);
        return 1;
}
*/
CMD:changename(playerid, params[])
{
        ChangeNameDialog(playerid);
        return 1;
}
CMD:changepass(playerid, params[])
{
        ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_PASSWORD, \"Jelszóváltás\", \"Lentre írd be az új jelszavad! \\n\\n\", \"Változtatás\", \"Mégse\");
        return 1;
}
CMD:findplayer(playerid, params[])
{
        if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, \"HASZNÁLAT: /findplayer <Játékos Névrészlet>\");
        if(strlen(params) > MAX_PLAYER_NAME) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Túl hosszú a részlet, maximum 24 karakter lehet!\");
        format(g_szQuery, sizeof(g_szQuery), \"SELECT `name` FROM `players` WHERE `name` LIKE \'%s%s%s\'\", \"%%\", params, \"%%\");
        mysql_function_query(1, g_szQuery, true, \"THREAD_FindplayerDialog\", \"dsd\", playerid, params, g_pQueryQueue[playerid]);
        return 1;
}
forward THREAD_FindplayerDialog(playerid, reszlet[], queue);
public THREAD_FindplayerDialog(playerid, reszlet[], queue)
{
        if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_FindplayerDialog);
        new
            rows,
            fields;
        cache_get_data(rows, fields);
        if(!rows)
        {
                format(i_str, sizeof(i_str), \"Nincs találat a \'%s\' részletre!\", reszlet);
                SendClientMessage(playerid, COLOR_RED, i_str);
                return 1;
        }
        else if(rows > 180)
        {
                format(i_str, sizeof(i_str), \"A \'%s\' részletre több, mint 180 találad van! < %d >!\", reszlet, rows);
                SendClientMessage(playerid, COLOR_RED, i_str);
                return 1;
        }
        new
            x,
            szName[MAX_PLAYER_NAME];
        g_szDialogFormat[0] = EOS;
        for( ; x != rows; x++)
        {
                cache_get_row(x, 0, szName);
                strcat(g_szDialogFormat, szName);
                strcat(g_szDialogFormat, \"\\n\");
        }
        format(i_str, 128, \"Találatok a(z) \'%s\' részletre.. (%d)\", reszlet, x);
        ShowPlayerDialog(playerid, DIALOG_FINDPLAYER, DIALOG_STYLE_LIST, i_str, g_szDialogFormat, \"Megtekint\", \"Mégse\");
        return 1;
}
/////////////////////////////////////////
stock LoginDialog(playerid)
{
        format(i_str, sizeof(i_str), \"{\" #XCOLOR_WHITE \"}Bejelentkezés: {%06x}%s(%d)\", GetPlayerColor(playerid) >>> 8, pName(playerid), playerid);
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nTe már regisztálva vagy. Lentre írd be a jelszavad\", !\"Bejelentkezés\", !\"Mégse\");
        return 1;
}
stock RegisterDialog(playerid)
{
        format(i_str, sizeof(i_str), \"{\" #XCOLOR_WHITE \"}Regisztráció: {%06x}%s(%d)\", GetPlayerColor(playerid) >>> 8, pName(playerid), playerid);
        #if defined NINCS_REG_CSILLAG
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nItt még nem regisztráltál. Lentre írd be a jelszavad\", !\"Regisztáció\", !\"Mégse\");
        #else
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nItt még nem regisztráltál. Lentre írd be a jelszavad\", !\"Regisztáció\", !\"Mégse\");
        #endif
        return 1;
}
/* Bejelentkezés */
stock LoginPlayer(playerid)
{
        new
                iPVarSet[6],
                szFetch[12],
                iRegID = GetPVarInt(playerid, \"LineID\");
        // Ha a line ID 0, tehát a MySQL nem adott vissza sorokat, akkor semmiképp sem jelentkezhez be!
        // Ennek nem szabadna elõfordulnia, de biztonság kedvéért teszek rá védelmet.
        if(!iRegID) return printf(\"HIBA: Rossz reg ID! Játékos: %s(%d) (regid: %d)\", pName(playerid), playerid, iRegID);
   
        SetPVarInt(playerid, \"RegID\", iRegID); // RegID-t beállítjuk
        cache_get_row(0, 0, szFetch); iPVarSet[0] = strval(szFetch); // RegID
        cache_get_row(0, 6, szFetch); iPVarSet[1] = strval(szFetch); // Money
        cache_get_row(0, 7, szFetch); iPVarSet[2] = strval(szFetch); // Score
        cache_get_row(0, 8, szFetch); iPVarSet[3] = strval(szFetch); // Kills
        cache_get_row(0, 9, szFetch); iPVarSet[4] = strval(szFetch); // Deaths
        cache_get_row(0, 10, szFetch); iPVarSet[5] = strval(szFetch); // Fightingstyle
        SetPVarInt(playerid, \"Cash\", iPVarSet[1]); // A pénzét egy PVar-ban tároljuk, mert a skinválasztásnál nemlehet a játékos pénzét állítani.
        SetPlayerScore(playerid, iPVarSet[2]);
        SetPVarInt(playerid, \"Kills\", iPVarSet[3]);
        SetPVarInt(playerid, \"Deaths\", iPVarSet[4]);
        SetPVarInt(playerid, \"Style\", iPVarSet[5]);
        g_PlayerFlags{playerid} |= e_LOGGED_IN;
        return 1;
}
stock SavePlayer(playerid, regid)
{
        if(IsPlayerNPC(playerid)) return 1;
        // Ha nincs bejelentkezve és még nem spawnolt le, akkor nem mentjük. Ezt ajánlatos itthagyni, mivel ezmiatt nekem sok bug keletkezett!
        if(g_PlayerFlags{playerid} & (e_LOGGED_IN | e_FIRST_SPAWN) == (e_LOGGED_IN | e_FIRST_SPAWN))
        {
                getdate(year, month, day);
                gettime(hour, minute, second);
                format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `laston` = \'%02d.%02d.%02d/%02d.%02d.%02d\', `money` = %d, `score` = %d, `kills` = %d, `deaths` = %d, `fightingstyle` = \'%d\' WHERE `reg_id` = %d\",
                year, month, day, hour, minute, second, GetPlayerMoney(playerid), GetPlayerScore(playerid), GetPVarInt(playerid, \"Kills\"), GetPVarInt(playerid, \"Deaths\"), GetPlayerFightingStyle(playerid),
                regid);
                mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
                // %02d azt jelenti, hogyha a szám egyjegyû (1, 5, 7, stb... ), akkor tegyen elé egy 0-t. Pl: 05, 07.
                // Ezt általában idõre használják, mivel így \'érthetõbb\'.
                // Ez ugyanúgy mûködik %03d-vel %04d-vel, és így továb... ^
        }
        return 1;
}
stock pName(playerid)
{
        static // \"Helyi\" globális változó
                s_szName[MAX_PLAYER_NAME];
        GetPlayerName(playerid, s_szName, sizeof(s_szName));
        return s_szName;
}
forward OnQueryFinish();
public OnQueryFinish()
{
        return 1;
}
/* SQL Tábla */
/*
CREATE TABLE IF NOT EXISTS `connections` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(21) NOT NULL,
  `ip` varchar(16) NOT NULL,
  `serial` varchar(128) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `namechanges` (
  `id` smallint(5) NOT NULL AUTO_INCREMENT,
  `reg_id` mediumint(8) NOT NULL,
  `oldname` varchar(21) NOT NULL,
  `newname` varchar(21) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `reg_id` (`reg_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `namechanges_p` (
  `id` smallint(5) NOT NULL AUTO_INCREMENT,
  `reg_id` mediumint(8) NOT NULL,
  `name` varchar(24) NOT NULL,
  `oldpass` varchar(21) NOT NULL,
  `newpass` varchar(21) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `reg_id` (`reg_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `players` (
  `reg_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(24) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `ip` varchar(20) NOT NULL,
  `pass` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `reg_date` varchar(24) NOT NULL,
  `laston` varchar(24) NOT NULL,
  `money` int(11) NOT NULL DEFAULT \'0\',
  `score` int(11) NOT NULL DEFAULT \'0\',
  `kills` mediumint(11) unsigned NOT NULL DEFAULT \'0\',
  `deaths` mediumint(11) unsigned NOT NULL DEFAULT \'0\',
  `fightingstyle` enum(\'4\',\'5\',\'6\',\'7\',\'15\',\'16\') NOT NULL DEFAULT \'4\',
  PRIMARY KEY (`reg_id`),
  KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
CREATE TABLE IF NOT EXISTS `queryerrors` (
  `id` mediumint(7) NOT NULL AUTO_INCREMENT,
  `errorid` int(11) NOT NULL,
  `error` text NOT NULL,
  `resultid` mediumint(7) NOT NULL,
  `extraid` mediumint(7) NOT NULL,
  `callback` varchar(512) NOT NULL,
  `sql_query` varchar(512) NOT NULL,
  `connectionHandle` mediumint(7) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `errorid` (`errorid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
*/

4778
Bocsi az offért de nem jó a letöltési link.. kérlek módosísd!

4779
Segítségkérés / Kurta999 regisztrációs rendszer kérése..
« Dátum: 2013. március 22. - 16:01:49 »
Sziasztok! Le szeretném venni a kurta regisztrációs szkriptjét de sajnos nem tudom mert nem jó a letöltési link valaki nem tudná ide adni? Kérem..  :hmmm:

4780
Segítségkérés / 0.3x plugins
« Dátum: 2013. március 21. - 18:34:39 »
sscanf helyett sscanf2 kell írni a pawnoba úgy csináltad? Vagyis lehet neked így van a módban:
#include < sscanf >
helyett ezt írd be:
#include < sscanf2 >

4781
Segítségkérés / 0.3x plugins
« Dátum: 2013. március 21. - 11:13:44 »

4782
Archívum / [HUN][0.3x]MiniGames Szerver v2.0
« Dátum: 2013. március 18. - 21:48:13 »
MiniGames Szerver
 

87.229.103.144:8022
 

Weboldal: www.gw-fs.tk
 
A szervert 2013.03.15 kezdtem editelni amikor megtaláltam az interneten. Egy tejesen tiszta ideges nyelven volt amit lefordítottam és editeltem minél jobb és több cuccokkal mentésekkel és más szórakozásokkal. Mit lehet csinálni egy ilyen szerveren? Ez a szerver egy minigame szerver minden féle pályák vannak amiket lehet játszani sokféle ugratók és több más pályák amik vannak :D A szervert elégé üres volt de tökéletes volt számomra egy kezdõ szervert inditani belõle a játékosoknak, hogy tudjanak többet játszani ameddig én írom a saját egyedi módomat. Ez a mód az elsõ szerver lesz(remélem) Magyarországon ahol csak ilyen játékok lesznek rajta és sok pénz persze amit fell lehet használni hasznosabb és haszonsabb dolgokra mint példáúl VIP jogok vagy más dolgok.
 
Pénz Szerzése
 
A szerveren vannak írásbeli rekaciók feladványok, matematikai számítások és több más feladatok amiket a szerver elment ha megoldjátok. A statisztikában elmenti, hogy hányszor nyertünk meg egy reakciót melyik idõpontban nyeremények lehetnek, pénz, score, dilidó, nitró, javítás, kocsiváltás. A szerveren lottó rendszer is van amiben számokat tehetsz fell a nyerésért, hogy minél több pénz legyen neked a vásárlásokért!  :)
 
Szerver adatai
 
 
Mentés: DOF2
Pluginok: sscanf, streamer, xml, crashdetect
Objectek: Dynamic Object
Parancsok Száma: 22
Admin Parancsok Száma: 30
Rekeakció Szkriptek Száma: 3
MiniGame Pályák: 132
Szerver Slot Száma: 60
Mód Sorainak Száma: 4000
 

Pályák
 
A szerveren megtalálható 132 pálya ezek közül lehetnek:
Stunt Pályák - Parkour Pályák - Drift Pályák - Verseny Pályák - DM Pályák - DeathDrive Pályák - Derby Pályák - Fallout Pályák - Hay Pályák ezeken a pályákon kivül még található több ugratós pálya és több más olyan fajta pályák amiket még én se tudok :D
 
Szavazási Rendszer
 
A szerveren található szavazási rendszer is ezzel lehet megszavazni azokat a pályákat amelyiket szeretnék, hogy legyen. Minden egyes szavazat számit mivel ez dönti el, hogy milyen játék lesz a szerveren. Hogyan lehet szavazni? Te nem kell csinálj semmit csak egy szavazatot meg kell nyomjál amelyik pálya szimpatikus neked és amelyik tetszik ha mindenki arra szavazz akkor mindenkinek az a pálya lesz ha mindenki külön szavazatokat csinált más pályára akkor újra índul a szavazatok száma és újra lehet szavazni amelyik kapja a legjöbbet az a pálya fog elkezdödni :)
 
Extra Funkciók
 
A szerveren található egy úgynevezetett Extra Funkció is. Mi is lenne ez? Nem kell a kocsidat parancsokkal javítani vagy nitrót hozzáadni mivel egy pickup segítségével beleméssz ebbe a funkcióba és autómatikusan megjavítja neked a kocsidat ez lehet bármelyik kocsi infernus, random kocsik, elegy, buffalo, elegy, nrg stb.. A szerveren még kocsi pickupok vannak ha beleméssz ezeketbe akkor a kocsikat is lecserélheted.. Ezek lehetnek: Elegy, Sanchez, Infernus, Nrg stb.. :)
 
Kiesés és megfigyelés
 
A szerveren található egy kiesés rendszer is ennek a lényege az, hogy egy adott játékos vizbe esik akkor kiesik a játékból és egy megfeigyelõ módba kerül ahol az egész játékosokat látja akik még játszanak a szerveren minigamet. Amikor az egyik játékos megnyerte akkor újra tudsz szavazni és újra lehet játszani ameddig ki nem essel újra a pályáról. A nyertes 50000$ és +10 Scoret kap jutalmúl!
 
Admin Rendszer
 
A szerveren egyedi admin rendszer és regisztráció rendszer található! Mivel volt a módban de nekem nem tetszik az mySQL ezért módosítottam DOF2 mentésre. A szerveren a regisztrációnál be lehet állítani a nyelvet ami lehet angol vagy magyar ezt el is menti vagyis kilépéskor nem kell újra megadjad ezt, hogy magyar vagy vagy angol nyelvet szeretnél. A szerveren van egy kidolgozott egyedi admin rendszer is ez azért kell mert van sok olyan gyerek amelyik nem szeretne játszani úgy ahogyan kéne csak hack programokkal. A szerveren megtalálható a következõ admin parancsok:
/ban - /kick - /slap - /burn - /jail - /freeze - /mute - /unfreeze - /unmute - /nextmap - /votemap - /fix - /repair - /flip - /stats - /akill
 
VIP vásárlása
 
A szerveren lehet vipet vásárolni ez lehet következõ rangú vipek: Bronz, Ezüst, Arany.
A bronz VIP vásárlás 1000000$
Az Ezüst VIP vásárlás 2000000$
Az Arany VIP vásárlás 3000000$
Ez még semmi! A szerveren ha vettél VIP jogot akkor egy adminisztrátornak jelenteni kell, hogy a weboldalon szeretnél -e VIP rangot vagy sem. Mivel ha a szerveren is meg van a VIP rang akkor legyen meg a weboldalunkon is. A jelentést megtehetitek a /weboldalvip parancssal! Amikor egy adminisztrátor elolvassa ezt a kérvényt és megtalál a weboldalon az adatbázisunkban akkor autómatikusan beraknak VIP rangá! FIGYELEM: Csak azok kapják meg a weboldali rangot akik megfelelõek erre a munkára a VIP rang olyan mint a Globális Moderátori rang mint ezen a fórumon!
 
Szerver Szabályzatok
 
 
[1]. Tilos a szerveren a külsõ vagy belsõ programok használata! Büntetés: BAN
[2]. Tilos a szerveren floodolni egy bízonyos szót vagy mondatot! Büntetés: MUTE
[3]. Tilos a szerveren káromkodni vagy más trágár szavakat használni! Büntetés: MUTE
[4]. Tilos a szerveren anyázni vagy apázni ezekér súlyos büntetést osztunk ki! Büntetés: MUTE(Örök) - WARN
[5]. Tilos a szerveren a bugokat kihasználni vagy elmondani más játékosnak! Inkább jelensd( /bug )! Büntetés: BAN
[6]. Tilos a szerveren Weapon Hacket használni ha használsz is akkor autómatikusan bannolva leszel a rendszer által! Büntetés: BAN
[7]. Tilos a szerveren autómatikus kocsi javítást használni vagyis hack programot mivel van javítási funkció! Büntetés: BAN-WARN
[8]. Tilos a szerveren a speed hack! Büntetés: BAN-WARN
[9]. Tilos a szerveren a rasszizmús mint példáúl(nigger, csöves)! Büntetése: BAN
[10]. Tilos a szerveren pornó dolgokról vagy más hasonló dolgokról beszélni mivel ezt más játékos sértésnek és zavarónak találja! Büntetés: MUTE
[11]. Tilos más weboldalakat vagy más IP címet hírdetni a szerveren! Büntetés: BAN
 

A SZERVEREN HA BANNOLTAK AKKOR AZ UNBAN KÉRELEZÉST ITT ÍRHATSZ: www.gw-fs.tk
 

Szerver Elérhetõsége
 


HostName: [HUN][0.3x]MiniGame Szerver v2.0
Address:  87.229.103.144:8022
Players:  X / 60
Ping:     X
Mode:     MiniGames v21.0.1
Map:      San Andreas
 
 
A szerver megnyilt gyere fell te is a szerverre! És tapasztald a sok játékokat amelyik a szerveren van! Jó játékot kivánok nektek!  ;) A szerveren lehet venni neont a kocsira be lehet állítani a skineket és a saját idõd és az idõjárásodat. Mégpedig van egy cpanelünk ahol be lehet állítani ezeket a dolgokat mégpedig a színed vagy más kisebb vagy nagyobb dolgokat! Van egy egyedi kidolgozott toplistánk, hogy kinek van a szerveren a legtöbb pontja ezt egy dialogban kiírja!  :)
 
Tulajok: András, ZyZu.

4783
Segítségkérés / Like rendszer
« Dátum: 2013. március 18. - 18:36:04 »
Tessék ez kell neked minden épp úgy kell ahogyan leírtam + menti dini mentésben! Link: http://sampforum.hu/index.php?topic=4044.0

4784
Archívum / [HUN][0.3x]MiniGames Szerver v2.0
« Dátum: 2013. március 18. - 15:10:37 »
Szerintem ha lenne egy ilyen szerver itt is a mi szervereink között akkor lennének rajta szerintem sokan.. de majd mindenki ebbõl nyitja majd mert látják, hogy ezen vannak :D Egyébként Köszönöm! Megprobálom kihozni amit tudok belõle! :)
Ha minden összejön akkor lehet ma nyitás!

4785
Segítségkérés / Kell nekem ez az RPG mód...
« Dátum: 2013. március 17. - 16:35:16 »
Idézetet írta: donking11 date=1363534396\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"35022\" data-ipsquote-contentclass=\"forums_Topic
Már bocs,de minek kell egy megírt mod már megint ?? :OO Inkább írj/irass egyet!!
 
Nem ezt volt a kérdése. Egyébként ha jól tudom nem szabad, hogy leírják a letöltési linket mivel tilos publikálni a módot.. nekem régen megvolt de már nincsen meg.

Oldalak: 1 ... 317 318 [319] 320 321 ... 527
SimplePortal 2.3.7 © 2008-2025, SimplePortal