GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: kurta999 - 2010. Október 15. - 22:22:34

Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2010. Október 15. - 22:22:34
                                                                                               
<div style=\"text-align:center;\"><strong>MySQL Regisztráció rendszer</strong>
 
Ez a regisztrációs rendszer nem éppen a kezdõknek való.
Akik az alapokat nem értik magában a PAWN nyelvben, azok <strong>NE</strong> kezdjenek MySQL-be.
<strong>Tartalma:</strong>
 
<ul><li>Automatikus bejelentkezés.</li>
<li>Pénz, Pont, Ölések, Halálok és ütésstílus megjegyzése. </li>
<li>InGame névváltás és jelszóváltás</li>
<li>InGame játékosok név szerinti keresése, és az adatai megtekintése.</li>
<li>A jelszavak nincsenek titkosítva. ( Direkt )</li>
<li>Minden lekérdezés más szálon fut és gyorsítótárat használ</li>
</ul>
<strong>Frissítések:</strong>
<strong>@3.0 </strong>
 
<ul><li>Frissítve az R38-as pluginhoz + korszerûsítve a régi megoldások az új plugin által nyújtott funkciókhoz</li></ul>
<strong>@2.0 </strong>
 
<ul><li>Minden lekérdezés más szálon fut, tehát nem laggosítják a szervert.</li>
<li>Race Condition elleni védelem minden lekérdezésre</li>
<li>Újra szerepelhet a | karakter az adatbázisba mentett karakterláncokban.</li>
<li>Pár apró hiba javítva és optimalizálva pár apróság.</li>
</ul>
<strong>@1.0 </strong>
 
<ul><li>Több mindent ment, mint régen. ( Pont, Ütés Stílus, Ölések & Halálok )</li>
<li>Tábla szerkezete optimalizálva.</li>
<li>Névváltás + jelszóváltás lehetõség.</li>
<li>Játékosok keresése név szerint az adatbázisba és adatainak megtekintése.</li>
<li>Jó pár optimalizálás + hibajavítás, amit már régen meg kellett volna.</li>
<li>0.3d csillagozás támogatás</li>
</ul>
<strong>@0.3 </strong>
 
<ul><li>Pár bug javítva és az egész optimalizálva. Az elõzõ verziókat NE használjátok.</li>
<li>connections tábla hozzáadva, ide menti a felcsatlakozásokat. ( + <a href=\"http://sampforum.hu/index.php?topic=10452.0\" rel=\"external nofollow\">gpci</a> )</li>
<li>queryerrors tábla hozzáadva, ide menti a hibás query-ket.</li>
<li>Színezés hozzáadva.</li>
<li>Bejelentkezés optimalizálva. Kösz ChuckNorris-nak.</li>
<li>Regisztrációnál a | karakter nem szerepelhet a jelszóban, mivel ez a MySQL elválasztó.</li>
</ul>
<strong>@0.2 </strong>
 
<ul><li>mysql_reconnect() függvény használata javítva.</li>
<li>mysql_num_rows() rosszul használata kijavítva.</li>
<li>Rögtönformázott üzenet eltüntetve hibássága miatt.</li>
</ul>
<strong>@0.1 </strong>
 
<ul><li>Elsõ kiadás</li></ul>
<strong>Letöltés:</strong>
                                      
https://github.com/kurta999/MySQL-Register-Login-SaveStats
Tábla struktúra az nem változott, csak a scriptet és a plugint kell frissíteni.
sscanf pedig nemkell hozzá.
<a href=\"http://www.mfrserver.tk/SAMP/SQL_1.0.txt\" rel=\"external nofollow\"><strong>Szkript 1.0</strong></a>                
<a href=\"http://www.mfrserver.tk/SQL.txt\" rel=\"external nofollow\"><strong>Szkript öreg</strong></a>
<a href=\"http://files.g-stylezzz.com/libmySQL.dll\" rel=\"external nofollow\"><strong>libmySQL.dll</strong>*</a>
<a href=\"http://forum.sa-mp.com/showthread.php?t=56564\" rel=\"external nofollow\">MySQL Plugin**</a>
<a href=\"http://forum.sa-mp.com/showthread.php?t=91354\" rel=\"external nofollow\">zcmd</a>
<strong>SQL Szerverek:</strong>
<a href=\"http://netcologne.dl.sourceforge.net/project/wampserver/WampServer%202/WampServer%202.0/WampServer2.0i.exe\" rel=\"external nofollow\">Wamp Server</a>
<a href=\"http://www.apachefriends.org/en/xampp.html\" rel=\"external nofollow\"><strong>XAMPP</strong></a>
* A libmySQL.dll-et a szervermappában helyezd el, ahol a samp-server.exe található. Ha ez nincs ott, ez nélkül nemfog menni a script.
** A MySQL Pluginból az R7-es verziót szedd le! Az örögebb verziónak más a felépítése, azokat hiába szeded le, nemfog vele menni.
<strong>Képek:</strong>
<img src=\"width=500%20height=375\" class=\"ipsImage\" alt=\"width=500 height=375\" /><a href=\"http://www.mfrserver.net/SAMP/MySQL_1.jpg\" rel=\"external nofollow\">http://www.mfrserver.net/SAMP/MySQL_1.jpg</a>[/img]
<strong>Bejelentkezés jelszó csillagozással</strong>
<img src=\"width=500%20height=375\" class=\"ipsImage\" alt=\"width=500 height=375\" /><a href=\"http://www.mfrserver.net//SAMP/MySQL_2.jpg\" rel=\"external nofollow\">http://www.mfrserver.net//SAMP/MySQL_2.jpg</a>[/img]
<strong>Statisztika</strong>
<img src=\"width=500%20height=375\" class=\"ipsImage\" alt=\"width=500 height=375\" /><a href=\"http://www.mfrserver.net/SAMP/MySQL_3.jpg\" rel=\"external nofollow\">http://www.mfrserver.net/SAMP/MySQL_3.jpg</a>[/img]
<strong>Játékosok keresése a /findplayer parancsal</strong>
<strong>Tábla szerkezete:</strong>
<strong>Ha teljesen új adatokkal indulsz:</strong>
Az a SET SQL_MODE az az, hogy ne legyen emelkedõ érték a 0-n. Azt elég csak egyszer beleírni.
 
<pre class=\"ipsCode\">
SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\";
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;
</pre>
 
<strong>Ha csak frissíteni akarod a táblát:</strong>
Ezt akkor ajánlatos használni, amikor az elõzõ verziót használod és firssíteni akarod a tábla struktúráját az adatok elvesztése nélkül.
Ha értesz hozzá, akkor erre nincs nagyon szükséged, de mégis egyszerûbb, mert ezt csak bekell másolnod az SQL fülbe és nemkell gondolkozni, hogy mit hogyan csinálsz.
<strong>Mielõtt lefuttatnád a következõ lekérdezést </strong><strong>MINDEKÉPP</strong><strong> csinálj biztonsági mentést a \'</strong><strong><em>players</em></strong><strong>\' tábláról!</strong>
 
<pre class=\"ipsCode\">
ALTER TABLE `players` CHANGE `reg_id` `reg_id` MEDIUMINT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `players` CHANGE `name` `name` VARCHAR( 24 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
ALTER TABLE `players` CHANGE `pass` `pass` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;
ALTER TABLE `players` CHANGE `money` `money` INT( 11 ) NOT NULL DEFAULT \'0\';
ALTER TABLE `players` ADD `score` INT( 11 ) NOT NULL DEFAULT \'0\' AFTER `money` ,
ADD `kills` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT \'0\' AFTER `score` ,
ADD `deaths` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT \'0\' AFTER `kills` ,
ADD `fightingstyle` ENUM( \'4\', \'5\', \'6\', \'7\', \'15\', \'16\' ) NOT NULL DEFAULT \'4\' AFTER `deaths`
 
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;
</pre>
 

<div style=\"text-align:center;\"><strong>Kommenteket várom!</strong>
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: KDDomi - 2010. Október 15. - 22:44:19
Jo script Grat! ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2010. Október 15. - 22:47:37
Idézetet írta: KDDomi date=1287175459\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Jo script Grat! ;)
 
Lepróbátad ? xD
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: KDDomi - 2010. Október 15. - 23:03:29
Igen müködik minden
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ChuckNorris - 2010. Október 16. - 13:28:43
Mindjárt meglesem a szkriptet,de én inkább a XAMPP-ot ajánlom,énis ezt használom és nagyon jó.(WAMP helyett)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2010. Október 16. - 14:43:53
Idézetet írta: ChuckNorris date=1287228523\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Mindjárt meglesem a szkriptet,de én inkább a XAMPP-ot ajánlom,énis ezt használom és nagyon jó.(WAMP helyett)
 
Akkor majd kipróbálom, de neked pedig a wamp menni szokott. Mostmeg nem akar online állpotba menni.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ChuckNorris - 2010. Október 16. - 15:27:17
Én egyszer próbáltam a WAMPot,amikor még nagyon kezdõ voltam,(Még nem is SMAPoztam),de nemsikerült beálítanom,aztán egyszer egy barátom ajánlotta a XAMPPot,ami egybõl bejött. :D
Azóta is azt használom. ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Popec16 - 2010. Október 16. - 21:38:32
Gyönyörû szkript lesz ez ! :D
Gratula!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: nyE - 2010. Október 16. - 21:39:29
Szép!
Csak nekem még mindíg bonyolult :\'(
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2010. December 23. - 10:38:18
A régi az hibás volt, nem ment.  A BETA verzió, a 0.1-es az ment!
De javítottam, teszteltem, a mostani verzió mûködik!
Felújítva
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ChuckNorris - 2010. December 23. - 22:47:41
És ezt az új gépemen meg is tudom nézni  :D
( Amint vége a filmemnek az RTL-en  :P )
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Zsoma - 2011. Január 27. - 14:21:51
Hali :)
Wampot használok sikeresen beépítettem a scriptet a mode-ba,
de sajnos, mikor beregelek utánna relogolok, nem tölti be a pénzt. És utánna
már nem is menti el. Csak a regisztráció pillanatában. És annyi. Mi a hiba? :)
zsomaa
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Március 20. - 22:40:29
Felújítva az egész!
Ez a verzió ( v0.3 ) totál bugmentes.
Használjátok egészséggel :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Epsilon - 2011. Március 21. - 15:56:55
Fasza, hogy nem kell leszedni a forrásért.  :D
Átnéztem és az alábbi korrigálni valókkal találkoztam (ezek többnyire gyorsító jellegûek)
Ahogyan a \"FristSpawn\"-nál, úgy a LoggedIn-nél is alkalmazhatod a \"type-os\" trükköt.
Ha azt akarod ellenõrizni, hogy van-e beírt szöveg nem kell használnod az strlen funkciót, elég ha azt ellenõrzöd, hogy a legelsõ karakter nullkarakter. Ha igen akkor a karakterlánc üres.
 
         if(!inputtext[0])
   {
      SendClientMessage(playerid, COLOR_RED, \"Nem írtál be semilyen jelszót!\");
      LoginDialog(playerid);
      return 1;
   }

 
Mivel a SavePlayer funkció ad vissza értéket visszatérhetsz azzal is. (itt alkalmazhatod a hármas operátor-t)
 
public OnPlayerDisconnect(playerid, reason) return (GetPVarType(playerid, \"LoggedIn\")) ? SavePlayer(playerid) : 1;

 
Ezeken kívül neked már annyira mániáid lettek a globális karakterláncok, hogy megfeledkezel arról, hogy ha csak egyetlen funkcióban használod a name-t akkor felesleges globálisan létrehozni.
A 24 helyett pedig a definíciót használd, hogy a késõbbi verziókkal is biztosan kompatibilis legyen!
Ezt ne szarkazmusnak vedd, azért írtam le ezeket, mert tudom, hogy te ezekbõl tanulsz és ha kijavítod, ez megfelelõ példaszkript lesz azok számára kik efféle adatbázis-kezeléssel foglalkoznának SA:MP terén.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Március 21. - 18:12:37
Kösz, hogy kijavítottál az ilyen helyeken. Az csak jó lehet ha kritizálod azokat amikre van jobb megoldás és én nem azt használom :)
Amúgy a globális stingeket azér használtam mer azt írták pár helyen, \'hogy nemfoglalnak mindig memóriát\'. De amióta elkezdtem egy C++ könyvet olvasni, kicsit más a véleményem :D
A name-t itt egyhelyen használom, de máshol nem.
Kiadtam egy újabb verziót, javítottam ezeket.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Epsilon - 2011. Március 21. - 18:27:16
Idézetet írta: kurta999 date=1300727557\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
A name-t itt egyhelyen használom, de máshol nem.
 
Én is ezt mondom, ezért felesleges globálisan létrehozni elég a függvényben deklarálni. (pName(playerid))
Amúgy most már tényleg kapós, használathoz én is ezt ajánlom.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: herban - 2011. Március 21. - 21:32:28
Hiba.
Azt írja mikor elakarom indítani a servert, hogy hiányzik a libmysql.dll fájl
pedig  bent van a pluginsba
és a mysql plugin betöltés pedig sikertelen
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Március 21. - 21:33:19
Ezt a szervermappádba húzd, ne a pluginsba.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Zsolesszka - 2011. Március 21. - 21:39:31
Idézetet írta: kurta999 date=1300739599\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Ezt a szervermappádba húzd, ne a pluginsba.
 
Ha ott se lenne jó akkor próbáld ki úgy ha ide másolod:
C:\\Windows\\system
vagy
C:\\Windows\\System32
nálam az elsõben van és mûködik.
Amúgy grat lehetne még mit javítani rajt (mint általában mindenen:D), de hát majd a következõ kiadott verzió még jobb lesz.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: herban - 2011. Március 21. - 21:40:00
most nem írja ki, de pár másodperc múlva leállítja a servert és ezt írja a logba
 
[21:42:07] CMySQLHandler::CMySQLHandler() - Connecting to \"localhost\" | DB: \"samp\" | Username: \"root\" ...
[21:42:07] CMySQLHandler::Connect() - Unknown database \'samp\' (Error ID: 1049)
[21:42:07] >> mysql_ping( Connection handle: 0 )
[21:42:07] >> mysql_ping() - Invalid connection handle. (You set: 0, Highest connection handle ID is 1).

 
Pontosabban: Nem sikerült kapcsolodni a local szerverhez
[21:42:07] >> mysql_close( Connection handle: 0 )
[21:42:07] >> mysql_close() - Invalid connection handle. (You set: 0, Highest connection handle ID is 1).[/code]
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Március 21. - 22:03:03
Nemlétezik a samp adatbázisod.
Hozd létre wamp-al.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: herban - 2011. Március 21. - 22:23:02
el tudnád magyarázni ?
Az oldal-t se értem mert furcsa nyelven van ::|
PLS segíts!!!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Március 25. - 20:31:34
Felrakod a wampot, aztán jobb klik rá a tálcán és phpmyadmin.
Létrehozod a dolgokat, és megy.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: herban - 2011. Március 25. - 22:39:53
rá mentem és utána találtam egy olyat, hogy PHP
bejött de azon kiigazodni...
Elöször létrehoztam egy samp nevü adatbázist utána meg valami tábla nevet kér
Oda mit írjak?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Március 26. - 00:03:18
Létrehozod, ott van az SQL felület fent. Oda beírod azt a kódot, amit itt írok, hogy a MySQL tábla.
 

SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\";
CREATE TABLE IF NOT EXISTS `players` (
  `reg_id` smallint(7) NOT NULL auto_increment,
  `name` varchar(24) NOT NULL,
  `ip` varchar(20) NOT NULL,
  `pass` varchar(20) NOT NULL,
  `reg_date` varchar(24) NOT NULL,
  `laston` varchar(24) NOT NULL,
  `money` int(20) NOT NULL default \'0\',
  PRIMARY KEY  (`reg_id`),
  KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
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 `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;
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. Március 31. - 14:37:27
Nekem sem jó valami létrehoztam az adatbázist,elindítottam a samp-server-t és kiírta ezt:
 
A program nem indult el,mert MSVCR100.dll hiányzik a számítógépérõl.
A probléma megoldásához próbálja meg újratelepíteni a programot.

 
jó ez nem volt probléma felmentem a dllfiles.com-ra és letöltöttem,beraktam.....
Majd kijött egy új hiba:
 
A program nem indult el,mert MSVCP100.dll hiányzik a számítógépérõl.
A probléma megoldásához próbálja meg újratelepíteni a programot.

 
Jó megcsináltam ugyan ezt....
ezután megint egy error:
 
Az eljárás belépési pontja(_invaild_parameter_noinfo_noreturn)nem található a DLL-ben (MSVCR100.dll).

 
Vajon mi lehet a baj? :o
Szerk:
Lehet az a baj ,hogy nem a 2.0-ás .Letöltöm....
Szerk2:
Már fent van!
Szerk3:
Már sikerült elindítani!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. Március 31. - 18:31:34
Hogy átláthatóbb és jobban észrevehetõbb legyen,nyitottam egy új választ,remélem nem baj,na de térjünk a lényegre!A Filterscriptben kidob nekem egy error-t mégpedig ezt:
 
MySQL.pwn(297) : error 025: function heading differs from prototype

 
És itt vajon mi lehet a baj?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Április 03. - 17:39:55
Idézetet írta: kadaradam date=1301589094\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Hogy átláthatóbb és jobban észrevehetõbb legyen,nyitottam egy új választ,remélem nem baj,na de térjünk a lényegre!A Filterscriptben kidob nekem egy error-t mégpedig ezt:
 
MySQL.pwn(297) : error 025: function heading differs from prototype

 
És itt vajon mi lehet a baj?
 
A callback sql_query paraméterjét írd át arra, ami neked van az inc-ben. ( Asszem query )
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. Április 03. - 18:03:07
Idézetet írta: kurta999 date=1301845195\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic


Hogy átláthatóbb és jobban észrevehetõbb legyen,nyitottam egy új választ,remélem nem baj,na de térjünk a lényegre!A Filterscriptben kidob nekem egy error-t mégpedig ezt:
 
MySQL.pwn(297) : error 025: function heading differs from prototype

 
És itt vajon mi lehet a baj?
 
A callback sql_query paraméterjét írd át arra, ami neked van az inc-ben. ( Asszem query )
 
[/quote]
Milyen inc az a_mysql?
De az annyira nem lényeges,nincs sok szerepe,vagy igen,csak mert kihúztam?
De igazából az érdekelne hogy host-n hogy lehet ezt elindítani,hol tudom megnézni a mysql felhasználómat,mert sehol sem találom?!
Vagy tán a config.inc.php-ben van,mert már ezt is próbáltam de nem jó!?
Szerk:
A felhasználó megvan,csak annyit kell hogy?
 
#define MYSQL_HOST             \"91.82.84.205:7781\"//hostos szerverem IP-je
#define MYSQL_USER             \"sajátfelhasználónév\"//felhasználó nevem
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Április 03. - 22:13:03
OnQueryError az annyit csinált, ha egy hibás query volt, akkor azt beleírta a queryerrors táblába. Lényegébe nem olyan fontos.
Azt kell megadnod, amivel a MySQL Adatabázisra csatlakozol a hosthoz.
Host-hoz az IP-t kell és a többihez meg az adataidat.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. Április 04. - 13:56:38
Idézetet írta: kurta999 date=1301861583\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
OnQueryError az annyit csinált, ha egy hibás query volt, akkor azt beleírta a queryerrors táblába. Lényegébe nem olyan fontos.
Azt kell megadnod, amivel a MySQL Adatabázisra csatlakozol a hosthoz.
Host-hoz az IP-t kell és a többihez meg az adataidat.
 
Oda gondoltam az IP-t,csak nem tudtam 100%-osan,de már tudom! :D
Ide:
#define MYSQL_USER             \"root\"

 meg ezt a felhasználónevet kell ugye?
\"kep_www.kepfeltoltes.hu_.png\"
A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu
A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu[/url]
(Csak mert már így is próbáltam és nem volt jó,de ha igen,akkor letesztelem még1X)
Bocs hogy ilyen hülyeségeket kérdezek,csak most ismerkedtem meg a MySQL-al,meg a hostoson sem olyan könnyû beállítani számomra!
(Házi-n mûködik az egész!)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Április 04. - 15:13:36
Ide a felhasználót, amivel csatlakozol. A hostos szerón nem root, nemtom mi, amit adtak  ;D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. Április 04. - 15:27:36
Idézetet írta: kurta999 date=1301922816\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Ide a felhasználót, amivel csatlakozol. A hostos szerón nem root, nemtom mi, amit adtak  ;D
 
Adnak MySQl felhasználót? :O
Vagy csak amivel bereggeltem skyhostingra?
Szerk:
Itt van egy olyan is:
\"Az FTP jelszavad alaphelyzetben megegyezik a webadmin jelszavaddal.\"
Ez kellene?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Sheet - 2011. Április 04. - 15:33:44
Idézetet írta: kadaradam date=1301923656\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic


Ide a felhasználót, amivel csatlakozol. A hostos szerón nem root, nemtom mi, amit adtak  ;D
 
Adnak MySQl felhasználót? :O
Vagy csak amivel bereggeltem skyhostingra?
Szerk:
Itt van egy olyan is:
\"Az FTP jelszavad alaphelyzetben megegyezik a webadmin jelszavaddal.\"
Ez kellene?
 
[/quote]
Skyhosting nem ad SQL-t
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. Április 04. - 15:35:49
Skyhosting nem ad SQL-t[/quote]
És akkor hogy csináljam meg?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Sheet - 2011. Április 04. - 15:39:06
Idézetet írta: kadaradam date=1301924149\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic

Skyhosting nem ad SQL-t
És akkor hogy csináljam meg?
 
[/quote]
www.clans.hu -- Itt kapsz :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. Április 04. - 15:40:40
www.clans.hu -- Itt kapsz :D[/quote]
Jah,jó köszi xD  ;D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. Április 04. - 16:02:02
OFF:Amúgy a tulaj bunkó volt,kérdezgettem róla a MySQL-ról,próbáltam tõle segítséget kérni,igaz lehet hülyeségeket is kérdeztem,de igazán mondhatta volna hogy nem adnak MySQl-t.Kérdeztem hogy melyik az,de csak azt mondta hogy a MySQL felhasználót kell oda írni,de nem értettem hogy melyiket!:D
De így már értem!
Aztán egszercsak ezt írta xD:
                                         \"NE MÁR
                                         Te most szórakozol velem?
                                         tudom ám hogy április elseje van
.Igaz,hogy csak hülyeségeket kérdeztem,de azért rámondhatta volna hogy nem adnak,meg elvégre az a dolga hogy segítsen!
Legszívesebben host-t váltanék,de akkor más lenne az IP-je a szerónak!
                             
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Sheet - 2011. Április 04. - 16:05:44
Idézetet írta: kadaradam date=1301925722\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
OFF:Amúgy a tulaj bunkó volt,kérdezgettem róla a MySQL-ról,próbáltam tõle segítséget kérni,igaz lehet hülyeségeket is kérdeztem,de igazán mondhatta volna hogy nem adnak MySQl-t.Kérdeztem hogy melyik az,de csak azt mondta hogy a MySQL felhasználót kell oda írni,de nem értettem hogy melyiket!:D
De így már értem!
Aztán egszercsak ezt írta xD:
                                         \"NE MÁR
                                         Te most szórakozol velem?
                                         tudom ám hogy április elseje van
.Igaz,hogy csak hülyeségeket kérdeztem,de azért rámondhatta volna hogy nem adnak,meg elvégre az a dolga hogy segítsen!
Legszívesebben host-t váltanék,de akkor más lenne az IP-je a szerónak!
                             
 
Egy ip váltás szerintem megér egy normális hostot...
Clans.hu:
A minõségre az már garancia, hogy ha tõlünk bérelsz, Magyarország legnagyobb cégétõl bérelsz szervert.
Mit nyújtunk még ezen kívül:
a szervered minõsége mindig kiváló lesz
tisztában vagyunk vele, hogy a kezdõknek segíteni kell, és mi mindenben segítünk
tudjuk, hogy vannak problémák, de mi a Clans.hu-nál úgy gondoljuk, hogy a problémák azért vannak, hogy megoldjuk!
nagyobb csapatoknak egyedi kedvezményt biztosítunk, emailben kérj árajánlatot
ingyen kaphatsz szervert, ha 3 általad ajánlott ember tõlünk bérel szervert
Nálunk minden ügyfél egyedi, tudjuk mik a csapatok valós igényei
csak nálunk egyedi fragmoviet / pályát / modelleket / honlapot csinálunk a csapatodnak
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ChuckNorris - 2011. Április 04. - 18:10:05
OFF vége,innentõl repkednek a warnok. Sheet hostot CSAK a hostingok fórumban/aláírásban lehet reklámozni...
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: anorennia - 2011. Július 10. - 22:17:08
Egy olyat kérdeznék, hoy azt nem csinálnád meg, hogy az üléseket, halálokat, pontokat(score) is mentse el?nagyon meg köszönném:)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. Július 12. - 11:18:41
Megcsiálhatom, ha lesz rá idõm :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Zsolesszka - 2011. Július 12. - 23:16:34
Idézetet írta: anorennia date=1310329028\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Egy olyat kérdeznék, hoy azt nem csinálnád meg, hogy az üléseket, halálokat, pontokat(score) is mentse el?nagyon meg köszönném:)
 

Megcsiálhatom, ha lesz rá idõm :D
 
[/quote]
Annak biztosan örülni fognak, de akkor inkább az ölések számát mentse és ne az ülésekét. :laugh:
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: anorennia - 2011. Július 26. - 19:04:30
Öléseket sry:$
mjad iej v pm ha megcsinálod:)

Dupla hozzászólás automatikusan összefûzve. ( 2011. Július 26. - 19:06:21 )

bocsi a dupla HSZért de sietnem kell, úgy hogy azt akartam kérdezni, hogy ezt tudom GM-nek használni?:)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Erik3333 - 2011. Szeptember 03. - 09:05:15
Helló!
Beraktam és amikor felmentem a szerverre, akkor eltûnt az admin szintem és nem is tudom berakni magam, mert azt írja, hogy Be kell jelentkezned a parancs használatához. Ladmin4v2-t használok
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Zsolesszka - 2011. Szeptember 03. - 10:45:51
Idézetet írta: Erik3333 date=1315033515\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Helló!
Beraktam és amikor felmentem a szerverre, akkor eltûnt az admin szintem és nem is tudom berakni magam, mert azt írja, hogy Be kell jelentkezned a parancs használatához. Ladmin4v2-t használok
 
Ezen nincs mit csodálkozni mivel ez egy regisztrációs filterscript és az Ladmin is tartalmaz egy regisztrációs rendszert így neked kettõ lett.
De csak egyre van szükséged. Az ladmin dini féle adatkezelést használ míg ez korszerûbb mysql-t. Ezért gondolom ki kellene venned az ladminból a benne lévõt és ezzel helyettesíteni. Még mielõtt kérded, nem csinálom meg. Ezt neked kell, nem egyszerû a dolog. Ha ilyen apróságon fennakadtál, gondolom nem is fog menni kapásból, a javaslatom próbálj ki valamilyen másik admin fs-t ami mysql-re épül ha azt akarsz használni onnan könnyebb elindulni, nem tudok adni linket keresgélj hivatalos fórumon.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 08. - 21:42:49
Még ezen a héten várható az 1.0-s verzió!
 

Esetleg ha valakinek még kéne bele valami, akkor az írjon.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: b4zsY - 2011. November 09. - 06:23:54
Nagyon jólett!  ;)
Én ezt használom, és sokat segített elindulni a MySQL-es pályán. Már építettem ki mellé adminrendszert is.  ;D
10/10  8)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ^.^CoCaCoLa^.^ - 2011. November 09. - 07:34:00
Nagyon jó lett!!!10/10  8) 8) 8) :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: |‾xɐʇuA - 2011. November 09. - 12:15:17
Jó lett tetszik (Wampserver)befigyel :D használni fogom új projectembe
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Pedró - 2011. November 09. - 16:15:57
Ennyi erõvel admin rendszerré is bõvíthetnéd. : )
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 09. - 16:24:39
Idézetet írta: nagyon. date=1320851757\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Ennyi erõvel admin rendszerré is bõvíthetnéd. : )
 
Azt majd megcsinálja az, akinek szüksége van rá :)
Ez marad csak sima regisztrációs rendszer pár speciális dolgokkal.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: |‾xɐʇuA - 2011. November 10. - 13:02:14
Letöltöttem be is tettem minden wamp ra is rácsatlakoztattam felmegyek a szerverre és azt írja Automatikusan bejelentkezve és még 1 szer sem írtam be a jelszabam meg semmi nem is regiztem ez miért van?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 10. - 14:34:40
Táblákat létrehoztad ?
Amúgy nem tudom, ha nem a fent említett miatt, akkor valahol máshol a probléma.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: |‾xɐʇuA - 2011. November 10. - 14:53:05
Idézetet írta: kurta999 date=1320932080\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Táblákat létrehoztad ?
Amúgy nem tudom, ha nem a fent említett miatt, akkor valahol máshol a probléma.
 
õõ azokat nem hoztam létre :S
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 10. - 15:14:45
Húúh, most fellélegeztem. ^^
Akkor még szép, hogy ott a hiba, mivel hiába próbál kiolvasni vagy írni valamit, nemtud hova/honna.
Erre megpróbálok majd valami védelmet csinálni, csak nincs rá sok tippem, hogy hogyan.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: |‾xɐʇuA - 2011. November 10. - 15:17:43
Idézetet írta: kurta999 date=1320934485\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Húúh, most fellélegeztem. ^^
Akkor még szép, hogy ott a hiba, mivel hiába próbál kiolvasni vagy írni valamit, nemtud hova/honna.
Erre megpróbálok majd valami védelmet csinálni, csak nincs rá sok tippem, hogy hogyan.
 
de milyen táblákat kel létrehozni? mert az Adatbázis megvan de akkor is ezt írja az Adatbázisba milyen táblákat hozzak létre?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 10. - 15:26:27
Ottvan lent az elsõ HSZ-emben, hogy Tábla.
Azt beírod az adatbázisban az SQL fülbe, aztán lefuttatod.
Ennyi!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: |‾xɐʇuA - 2011. November 10. - 15:46:45
Tökéletes megy minden :D köszi a segítséget
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 10. - 19:28:03
Nincs mit :D
1.0 verzió elérhetõ!
Én teszteltem, megy minden. De szerintem még hibák elõfordulhatnak.
Ezenkívül nagyon köszönöm a két következõ személy tippét:
Zsolesszka
ChuckNorris
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: |‾xɐʇuA - 2011. November 10. - 19:30:35
na ak frissítek de ma má nem majd hnap
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: The - 2011. November 10. - 19:44:55
Nem rossz.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [sdc]skyline - 2011. November 11. - 22:22:36
kurta egy dologt nem értek, ezt hogy kell meg csinálni pl a tarhely.biz mysql adatbázison?
Nagyon köszi ha le írod!
Szerk: És ilyenkor Ladmin ból ki kell törölni a reg rendszert? Ha igen azt hogy kell?
elõre is köszi!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 11. - 23:33:53
Engedélyzed a külsõ kapcsolatot, CPanel-ben a MySQL résznél. Oda beírod a bejövõ kapcsolat IP címét. Jelen esetben a szervergépét, vagy a sajátodét. Ha változik az IP-d, akkor szarban vagy, mivel mindig írhatod. De ha csinálsz neki hoszt nevet, akkor nem.
------------------
Kitöltöd a csatlakozási adatokat megfelelõen és fel is csatlakozik.
Amúgy a Tarhely.biz szervergépének IP címe: 46.4.26.51
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [sdc]skyline - 2011. November 12. - 08:55:42
köszi
de ladminból ha ki kell törölni a reg rendszert azt hogyan?
szerk: és egy utolsó kérdés a mysql adatbázison létre kell hozni egy új adat bázist meg táblát vagy táblát azt nem kell?

Dupla hozzászólás automatikusan összefûzve. ( 2011. November 12. - 09:16:49 )

Meg most nézem nekem ezt írja:
[pawn]x:\\xxxxxxx\\xxxxx\\xxxxx\\mysql reg rendszer\\mysql.pwn(647) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"
x:\\xxxxxxxx\\xxxxxx\\xxxxx\\mysql reg rendszer\\mysql.pwn(703) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"[/pawn]
és nem jövök rá miért
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. November 12. - 09:20:14
skyline\" post=\"192753\" timestamp=\"1321084542\"]
Meg most nézem nekem ezt írja:
[pawn]x:\\xxxxxxx\\xxxxx\\xxxxx\\mysql reg rendszer\\mysql.pwn(647) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"
x:\\xxxxxxxx\\xxxxxx\\xxxxx\\mysql reg rendszer\\mysql.pwn(703) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"[/pawn]
és nem jövök rá miért
 
[/quote]
kurta 0.3d-re írta,ahol már támogatva van az elrejtett jelszó
írd át:
[pawn]DIALOG_STYLE_INPUT [/pawn]-ra
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [sdc]skyline - 2011. November 12. - 09:38:59
ok köszi
szerk:
ezt hova kell tenni libmySQL.dll?
mert ezt írja a log ba:
[pawn][09:42:52]   Loaded.
[09:42:52]  Loading plugin: mysql.so
[09:42:52]   Failed (/lib/libmysqlclient_r.so.16: version `libmysqlclient_16\' not found (required by plugins/mysql.so))[/pawn]
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. November 12. - 09:56:05
szervered mappájába(ahol van a samp-server.exe)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [sdc]skyline - 2011. November 12. - 09:57:06
linux esetén is? mert hosztos
be raktam de a dialogot nem hozza be még mindig :S és még egy ilyenem is van:
libmysqlclient.so.15 (ezt nem tom hova rakjam)
még midnig ugyan az a hiba:
[pawn][09:58:15]  Loading plugin: mysql.so
[09:58:15]   Failed (/lib/libmysqlclient_r.so.16: version `libmysqlclient_16\' not found (required by plugins/mysql.so))[/pawn]
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. November 12. - 10:36:18
Szerintem rakd be a szervered mappájába!
Ha nem megy nem tudom,linuxhoz nem értek!
Kérdezd meg a hostot!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ALT - 2011. November 12. - 10:50:52
Hogyan tudok User Control Panelt csinálni evel? :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Light557 - 2011. November 12. - 10:53:45
@skyline:
Töltsd le innen a plugin \"threadsafe\" verziójú módját, mivel az amit te használsz a szerveren tárolt külsõ adatkönyvtárakat próbál elérni, ami valószínûleg a biztonság miatt le van tiltva a szervergépen.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 12. - 11:20:45
Esetleg innen.
Ezt akkor ajánlom, ha jelentkezik az libstdc++.so.5 error, vagy milyen error volt az.
De értemesebb szólni a hostnak, hogy rakják fel a szervergépbe.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [sdc]skyline - 2011. November 12. - 11:59:18
Idézetet írta: APC date=1321091625\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
@skyline:
Töltsd le innen a plugin \"threadsafe\" verziójú módját, mivel az amit te használsz a szerveren tárolt külsõ adatkönyvtárakat próbál elérni, ami valószínûleg a biztonság miatt le van tiltva a szervergépen.
 
ezt használom de nem jó :S
kurta nem töltenéd fel nekem azt amit te használsz és privátba elküldöd?
Nagyon meg köszönném
és kurta ezt hova rakjam?
[pawn]libmysqlclient.so.15[/pawn]
mert valami iylet kér:
[pawn]/lib/libmysqlclient_r.so.16 //de ezt se tom hova kéne rakni :S[/pawn]
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 12. - 12:32:50
Én a legújabb verziót használom, de elõször nekem se ment. ( Nem a Threadsafe-t, hanem a rendeset, ami ottvan a letöltéseknél [R6-2] )
Beszélj a host tulajdonossal, hogy csinálja meg.
Elõször nekem is volt ilyen problémám, aztán írtam egy üzenetet sunwell tulajdonosára és megcsinálta.
Egyébként próbáld meg ezt a \'libmysqlclient_r.so.16\' nevû fájlot a fõ mappába tenni, ahol van a szerver indítófájl is.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [sdc]skyline - 2011. November 12. - 12:52:19
ok de egy bajom van nekem iylen fájlom van:
libmysqlclient.so.15
vagy az nem lehet h a ladmin reg rendszer zavarja?
és van egy Debug.txt iylen mysql es izékal és ez az error:
Error ID: 1045
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 13. - 11:56:53
Ha jól találtam, akkor az 1045 az az \"Access denied for user\".
Ha ez a hiba jelentkezik, akkor a kapcsolat IP címét, ahonnan csatlakozol, nem adtad hozzá a tarhely.biz-nél a külsõ kapcsolathoz.
\"KulsoKapcsolat.jpg\"
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2011. November 15. - 18:57:13

F:\\Server\\filterscripts\\reg.pwn(92) : error 001: expected token: \"-string end-\", but found \"-identifier-\"
F:\\Server\\filterscripts\\reg.pwn(92) : error 017: undefined symbol \"felhaszn\"
F:\\Server\\filterscripts\\reg.pwn(92) : error 029: invalid expression, assumed zero
F:\\Server\\filterscripts\\reg.pwn(92) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
4 Errors.

 
ez mitõl van?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: BoOy - 2011. November 15. - 19:11:27
Mutasd a 92. sort   :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2011. November 15. - 19:14:39
Idézetet írta: BoOy date=1321380687\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Mutasd a 92. sort   :)
 
ez ugy van ahogy kurta feltöltötte
 
print(\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevu\" felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");

 
már rájöttem
---------------------------------------------------------
most meg olyan problémám van hogy nem adja be a regisztrációs ablakot, olyan mintha a be se lenne töltve
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 16. - 16:54:43
Hát ebbõl nagyon sok mindenre tudok következtetni..
Plugin be van töltve ?
libmySQL.dll a szervermappában van ? ( Ez csak windows esetén )
Másold be, amit a server_log.txt-be ír, aztán esetleg tudok valamit segíteni.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2011. November 16. - 17:05:16
Idézetet írta: kurta999 date=1321458883\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Hát ebbõl nagyon sok mindenre tudok következtetni..
Plugin be van töltve ?
libmySQL.dll a szervermappában van ? ( Ez csak windows esetén )
Másold be, amit a server_log.txt-be ír, aztán esetleg tudok valamit segíteni.
 
ezen kívül mást nem ír
 
17:05:37] 
[17:05:37] Server Plugins
[17:05:37] --------------
[17:05:37]  Loading plugin: mysql.so
[17:05:37]  SA:MP MySQL Plugin v2.1.1 Loaded.
[17:05:37]   Loaded.
[17:05:37]  Loading plugin: streamer.so
[17:05:37]
*** Streamer Plugin v2.5.2 by Incognito loaded ***
[17:05:37]   Loaded.
[17:05:37]  Loading plugin: sscanf.so
[17:05:37]
[17:05:37]  ===============================
[17:05:37]       sscanf plugin loaded.     
[17:05:37]    (c) 2009 Alex \"Y_Less\" Cole
[17:05:37]  ===============================
[17:05:37]   Loaded.
[17:05:37]  Loaded 3 plugins.
[17:05:37] [MySQL] Thread running. Threadsafe: Yes.
[17:05:37]
[17:05:37] Filter Scripts
[17:05:37] ---------------
[17:05:37]   Loading filter script \'reg.amx\'...
[17:05:37]   Loaded 1 filter scripts.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 16. - 17:39:35
Haha, megvan a hiba :D
Azt a MySQL Plugint rakd be, ami ottvan az elsõ üzenetben a fõoldalon. Mivel te Ethan ( StrickenKid ) MySQL pluginját raktad be, ez pedig nem arra van megírva.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2011. November 16. - 17:53:41
Idézetet írta: kurta999 date=1321461575\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Haha, megvan a hiba :D
Azt a MySQL Plugint rakd be, ami ottvan az elsõ üzenetben a fõoldalon. Mivel te Ethan ( StrickenKid ) MySQL pluginját raktad be, ez pedig nem arra van megírva.
 
nah ez megvan.
de van még 1 dolog
 

F:\\Server\\filterscripts\\reg.pwn(649) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"
F:\\Server\\filterscripts\\reg.pwn(705) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"
F:\\Server\\filterscripts\\reg.pwn(716) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
3 Errors.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2011. November 16. - 17:56:31
Idézetet írta: kadaradam date=1321086014\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic

skyline link=topic=7449.msg192753#msg192753 date=1321084542]
Meg most nézem nekem ezt írja:
[pawn]x:\\xxxxxxx\\xxxxx\\xxxxx\\mysql reg rendszer\\mysql.pwn(647) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"
x:\\xxxxxxxx\\xxxxxx\\xxxxx\\mysql reg rendszer\\mysql.pwn(703) : error 017: undefined symbol \"DIALOG_STYLE_PASSWORD\"[/pawn]
és nem jövök rá miért
 
kurta 0.3d-re írta,ahol már támogatva van az elrejtett jelszó
írd át:
[pawn]DIALOG_STYLE_INPUT [/pawn]-ra
 
[/quote]
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2011. November 16. - 18:01:55
fúú baszus pedig olvastamis..
na már jó kösz
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: JackBronson - 2011. November 16. - 19:00:03
Végre sikerült nekem is megcsinálni :D
Nagyon jó lett ment a +
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2011. November 18. - 21:58:28
Egy nagyon kicsi újítás, de nagyon hasznos dolog.
Mostmár a NameCheck() nem tér vissza hamis értékkel, ha a névben \'(\' vagy \')\' jelet talál.
Még a mai nap folyamán hozzáírom, hogy a táblát hogyan kell frissíteni.
Ezért kb. fél óra múlva nézzetek vissza.
R3: print() és SendRconCommand()-nál csomagolt stringek használva.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Január 29. - 19:20:03
Csá!
Ezek az errook vannak:   E:\\SAMPSZ~1\\MYSQLR~1.PWN(386) : error 025: function heading differs from prototype
E:\\SAMPSZ~1\\MYSQLR~1.PWN(652) : warning 219: local variable \"ip\" shadows a variable at a preceding level
E:\\SAMPSZ~1\\MYSQLR~1.PWN(811) : error 017: undefined symbol \"NameCheck\"
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
2 Errors.
Nem értem mi a baja, pedig 0.3d R2-es függvénytár van. Pls Help!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: csont - 2012. Január 29. - 20:23:08
Grat! Király kis script !  ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: xTomiX - 2012. Február 04. - 11:33:11
Nalam a script a sscanf2 inc-et warningolja nemtudom miert.
De mikor betoltom a scriptet akkor bejon a samp-server.exe es utana eltunik. a server mappaba akkor letrejon egy debug.txt es ezeket irja benne
UI:Mostmar jo nincs hiba.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Február 04. - 12:22:45
Milyen tipusú táblákat kell létrehozni?? Vagy a táblák infóit pls valaki leírja? Mert phpmyadminba errorozik, ha létre akarom hozni a táblákat.
Köszi
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Norby - 2012. Február 04. - 12:59:28
Idézetet írta: Gabor.. date=1328354565\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Milyen tipusú táblákat kell létrehozni?? Vagy a táblák infóit pls valaki leírja? Mert phpmyadminba errorozik, ha létre akarom hozni a táblákat.
Köszi
 
Ott van a SQL a script alján.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Február 04. - 15:35:53
Beleírtam az SQL lekérdezésekbe és létre is hozta a táblákat, de nem ment el semmit, se a reg-et, se stat-ot. Mi baja lehet?
Bocsi, hogy ennyi problem van, de még csak most kezdtem a mysql-el foglalkozni
Köszi
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: DriftBoY - 2012. Február 05. - 09:36:10
szép munka
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Február 05. - 10:03:23
Megoldottam! Tökéletesen megy minden! :D Am Grat kurta jó reg rendszer lett!  ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Pedró - 2012. Február 05. - 13:13:49
kurta, engem 1 dolog érdekelne....
felpróbáltam használni a /findplayer-es parancsod minden oké beraktam tuti minden
deha beirom hogy pedro akkor már a Pedro -t nem jelzi ki.. szóval az megoldható lenne hogy kis és nagy karaktereket ne külömböztesse meg?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: meszimark - 2012. Február 11. - 10:48:46
Nekem ilyen hibám lett.
C:\\Documents and Settings\\*****\\Asztal\\*****\\mysql.pwn(551) : warning 235: public function lacks forward declaration (symbol \"OnQueryError\")
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
1 Warning.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: lackos888 - 2012. Február 11. - 10:50:50
Idézetet írta: Pedro date=1328444029\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
kurta, engem 1 dolog érdekelne....
felpróbáltam használni a /findplayer-es parancsod minden oké beraktam tuti minden
deha beirom hogy pedro akkor már a Pedro -t nem jelzi ki.. szóval az megoldható lenne hogy kis és nagy karaktereket ne külömböztesse meg?
 
Küld be ide a scripted, és megcsinálom:D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Február 11. - 20:43:33
Idézetet írta: Pedro date=1328444029\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
kurta, engem 1 dolog érdekelne....
felpróbáltam használni a /findplayer-es parancsod minden oké beraktam tuti minden
deha beirom hogy pedro akkor már a Pedro -t nem jelzi ki.. szóval az megoldható lenne hogy kis és nagy karaktereket ne külömböztesse meg?
 
Meg.
A `players` tábla struktúrájában állítsd át a `name` string típusát \'latin1_swedish_ci\'-re.
Az uft8_bin-ben külömböznek a kis és nagy karakterek, a fent leírtban pedig nem.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: spearox - 2012. Február 22. - 22:33:04
Sziasztok, elõször is elég kezdõ vagyok mysql-be betettem minden mindent letöltöttem mi linkelve van mindent a helyére tettem de egy hibát kapok. Ezt hogy tudom orvosolni?
C:\\Users\\Laco\\Desktop\\SAMP\\pawno\\include\\sscanf2.inc(100) : warning 219: local variable \"name\" shadows a variable at a preceding level
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
1 Warning.
Igazából nem zavarna a warning csak az a baj, hogy mikor fellépek a szerverre és regisztrálók a felhasználó nem lesz elmentve és lehet e probléma miatt van ez. Ha nem kérlek segítsetek, hogy mi más gond lehet vele.
Elõre is köszi.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Február 22. - 23:20:33
Van már a módodban egy \"name\" nevû változó.


A jövõ hónapban várható az új verzió, ami az R7-es plugint fogja támogatni. (Tehát többszálon fog futni)
Az R7-es pluginban gyorsabb az egész, nekem a házakat 8x olyan gyorsan tölti be, mint az R6-2
Ráadásul a többszálás mód automatikusan újracsatlakozik, ha kiesik a kapcsolat, úgyhogy még egy gondal kevesebb.
Ezenkívül a hülye elnevezéseket is javítom, hogy egy globális stringnek ne \"name\" és \"ip\" neve legyen, hanem \"g_szName\" és \"g_szIP\"
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kadaradam - 2012. Február 25. - 12:18:01
files.g-stylezzz.com/mysql/R7/mysql.dll  ;)
R7 server plugin
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Február 25. - 12:29:37
Idézetet írta: kadaradam date=1330168681\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
files.g-stylezzz.com/mysql/R7/mysql.dll  ;)
R7 server plugin
 
Na végre.
Bár én lebuildoztam magamnak :D
Linux pedig: http://sf-se.net/dev/mysql_r7_centos.so
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: spearox - 2012. Február 26. - 16:46:55
amúgy csak nem jó :S pedig full alap mode és nincs name változóm mindenbõl azt használom amit te linkeltél.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Február 26. - 18:44:13
Próbáld ki ezt, bár ebben még elõfordulhatnak hibák, nem teszteltem..
 

// MySQL Regisztrációs rendszer By kurta999
// Verzió: 1.0 R4
// Last Update: 2012.02.24
#include <a_samp>
#include <a_mysql> // http://forum.sa-mp.com/showthread.php?t=56564
#include <sscanf2> // http://forum.sa-mp.com/showthread.php?t=120356
#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_szLine[128 +1],
i_str[128 +1],
tmp[128 +1],
g_szName[24 +1],
g_szIP[16 +1];
// MySQL regisztrációs rendszer By kurta999
/*  Forrás: Wiki
mysql_query               Egy megadott \'parancs\' elküldése
mysql_store_result         Ez akkor kell, ha tárolni szertnénk azokat az adatokat, amiket a lekérdedés visszadott.  (SELECT, stb.. )
mysql_free_result()         Ez a store_result után kell, felszabadítja a memóriát, amit a store_result() lefoglalt.
mysql_num_rows            Az SQL sorok számával tér vissza (SELECT & SHOW)
mysql_affected_rows         Az SQL sorok számával tér vissza (INSERT, UPDATE, REPLACE & DELETE)
mysql_fetch_row            A kiválasztott sort beleírjuk egy megadott karakterláncba, egy megadott elválasztóval, alapból ez: |
mysql_insert_id            INSTER INTO után visszatér a sor azonosítójával (Csak akkor, ha az auto_increment)
*/
// 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\"
#define COLOR_GREY             0x375FFFFF
#define COLOR_GREEN          0x33FF33AA
#define COLOR_RED             0xFF0000AA
#define COLOR_YELLOW         0xFF9900AA
#define COLOR_WHITE          0xFFFFFFAA
#define COLOR_BLUE             0x33CCFFAA
#define COLOR_LIGHTBLUE       0x33CCFFAA
#define COLOR_BASIC          0x0066FFAA
#define COLOR_SYSTEM          0xEFEFF7AA
#define COLOR_LIGHTBLUE       0x33CCFFAA
#define COLOR_PINK             0xFF66FFAA
#define XCOLOR_GREEN          33FF33
#define XCOLOR_RED             FF0000
#define XCOLOR_BLUE            33CCFF
#define XCOLOR_YELLOW         FF9900
#define XCOLOR_WHITE         FFFFFF
// Dialóg ID-k
#define DIALOG_LOGIN         16770
#define DIALOG_REGISTER         16771
#define DIALOG_CHANGENAME      16772
#define DIALOG_CHANGEPASS      16773
#define DIALOG_FINDPLAYER      16774
// 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); // Ha élesbe futtatod, akkor ezt SEMMIKÉPP se hagy bekapcsolva! Ez az egész rendszer sebességét kb. ötszörösére csökkenti, ha nem tízszeresére..
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!\");
mysql_reconnect(); // Újrakapcsolódás engedélyezése
     return 1;
}
public OnFilterScriptExit()
{
mysql_close();
return 1;
}
public OnPlayerConnect(playerid)
{
// Automatikus bejelentkezés
if(!IsPlayerNPC(playerid)) // Csak játékosokra vonatkozik
{
SetPVarInt(playerid, \"RegID\", -1);
SetPVarInt(playerid, \"FristSpawn\", 1);
new
   iRegID;
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_query(g_szQuery);
// Autologin
format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `ip` = \'%s\'\", pName(playerid), g_szIP);
mysql_query(g_szQuery);
mysql_store_result();
if(mysql_num_rows() != 0) // Ha a sor nem üres
{
   mysql_fetch_row(g_szLine);
   mysql_free_result();
   sscanf(g_szLine, \"p<|>d{s[24]s[16]s[30]s[24]s[24]ddddd}\", iRegID);
   SetPVarInt(playerid, \"RegID\", iRegID);
   // printf(\"%d\", iRegID);
   LoginPlayer(playerid, g_szLine);
   SendClientMessage(playerid, COLOR_GREEN, \"Automatikusan bejelentkeztél!\");
}
else // Ha üres, akkor itt lesz free_result, mer az elõzõ részünk akkor nem fut le és nem lesz neki ott free_result..
{
   mysql_free_result();
}
        SetPlayerColor(playerid, (random(0xFFFFFF) << 8) | 0xFF); // GetPlayerColor() javítása
}
     return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return (GetPVarType(playerid, \"LoggedIn\")) ? (SavePlayer(playerid)) : (1);
}
public OnPlayerRequestClass(playerid, classid)
{
    if(!GetPVarType(playerid, \"LoggedIn\")) // Ha nincs bejelentkezve, ez a lekérés ide nagyon fontos mert minden gobnyomásnál felmutatná a skiválasztóban.
    {
format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\'\", pName(playerid)); // Kiválasztjuk, a játékos nevét
mysql_query(g_szQuery);
mysql_store_result();
if(mysql_num_rows() != 0) // Ha a sorok száma nem 0 ( nem üres )
{
   LoginDialog(playerid); // Akkor login
}
else // Ellentétben
{
   RegisterDialog(playerid); // Register
}
mysql_free_result();
}
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
if(!IsPlayerNPC(playerid))
{
if(!GetPVarType(playerid, \"LoggedIn\"))
    {
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
   mysql_query(g_szQuery);
   mysql_store_result();
   if(mysql_num_rows() != 0)
   {
      LoginDialog(playerid);
   }
   else
   {
      RegisterDialog(playerid);
   }
   mysql_free_result();
   return 0;
}
}
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(GetPVarType(playerid, \"FristSpawn\"))
{
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, GetPVarInt(playerid, \"Cash\"));
DeletePVar(playerid, \"FristSpawn\");
DeletePVar(playerid, \"Cash\");
}
// Ü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(GetPVarType(playerid, \"LoggedIn\"))
   {
      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;
   }
   mysql_real_escape_string(inputtext, tmp); // \"Átvisszzük a karaktereket MySQL formába, hogy nemhogy hiba lesz\"... ( lol, ez aztán kurva értelmes :P )
   format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `pass` COLLATE `utf8_bin` LIKE \'%s\'\", pName(playerid), tmp);
   mysql_query(g_szQuery);
   mysql_store_result();
   if(mysql_num_rows() != 1)
   {
                mysql_free_result();
               
      SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó.\");
      LoginDialog(playerid);
      return 1;
   }
   else
   {
      new
         iRegID;
      mysql_fetch_row(g_szLine);
      mysql_free_result();
      sscanf(g_szLine, \"p<|>d{s[24]s[16]s[30]s[24]s[24]ddddd}\", iRegID);
      SetPVarInt(playerid, \"RegID\", iRegID);
      LoginPlayer(playerid, g_szLine);
   }
   // Az IP-t beállítjuk a jelenlegi IP-re, hogy az autologin menjen. A GetPlayerIp OnPlayerDisconnect-nél nem mûködik! (255.255.255.255-el tér mindig vissza..)
   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_query(g_szQuery);
   SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen bejelentkeztél!\");
}
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;
   }
            new
                len = strlen(inputtext);
   if(!(3 <= len <= 20))
   {
      SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó hosszúság! 3 - 20\");
      RegisterDialog(playerid);
      return 1;
   }
   for(new i; i < len; i++)
    {
      if(inputtext == \'|\') return SendClientMessage(playerid, COLOR_RED, \"Ezt a jelet {\" #XCOLOR_BLUE \"}| {\" #XCOLOR_RED \"}nem használhatod, mert ez a MySQL elválasztó!\");
   }
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
   mysql_query(g_szQuery);
   mysql_store_result();
   if(mysql_num_rows() != 0)
   {
                mysql_free_result();
               
      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!\");
      Kick(playerid);
      return 1;
   }
   mysql_free_result();
   getdate(year, month, day);
   gettime(hour, minute, second);
   GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
   mysql_real_escape_string(inputtext, tmp); // Ez arra van, hogy ha speciális karatereket tartalmaz, akk azt átcsinálja az SQL-nek érthetõre
   // A jeszavak nincsenek titkosítva...
   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, tmp, year, month, day, hour, minute, second, year, month, day, hour, minute, second);
   mysql_query(g_szQuery);
   SetPVarInt(playerid, \"RegID\", mysql_insert_id()); // Játékos Regisztrációs ID-jét beállítuk arra, ameik sorba írtunk elõbb ( INSERT INTO )
   SetPVarInt(playerid, \"LoggedIn\", 1);
   format(i_str, sizeof(i_str), \"Sikeresen regisztráltál! A jelszavad: {\" #XCOLOR_RED \"}%s. {\" #XCOLOR_GREEN \"}Felhasználó ID: {\" #XCOLOR_BLUE \"}%d\", tmp, GetPVarInt(playerid, \"RegID\"));
   SendClientMessage(playerid, COLOR_GREEN, i_str);
   SendClientMessage(playerid, COLOR_PINK, \"Ennyi lenne a MySQL regisztáció {\" #XCOLOR_BLUE \"}:)\");
}
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;
            }
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", inputtext);
   mysql_query(g_szQuery);
   mysql_store_result();
   if(mysql_num_rows() != 0)
   {
                mysql_free_result();
               
      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;
   }
   else
   {
      mysql_free_result();
   }
   new
      pname[MAX_PLAYER_NAME + 1],
      pRegID = GetPVarInt(playerid, \"RegID\");
   GetPlayerName(playerid, pname, sizeof(pname));
   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, pname, inputtext, year, month, day, hour, minute, second);
   mysql_query(g_szQuery);
   format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `name` = \'%s\' WHERE `reg_id` = %d\", inputtext, pRegID);
   mysql_query(g_szQuery);
   format(i_str, sizeof(i_str), \"Sikeresen átváltottad a neved! Új neved: {\" #XCOLOR_WHITE \"}%s.\", inputtext);
            SendClientMessage(playerid, COLOR_YELLOW, i_str);
}
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;
   }
   new
       pRegID = GetPVarInt(playerid, \"RegID\");
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `pass` FROM `players` WHERE `reg_id` = %d\", pRegID);
   mysql_query(g_szQuery);
   mysql_store_result();
   mysql_fetch_row(i_str);
   mysql_free_result();
   mysql_real_escape_string(inputtext, tmp);
   format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `pass` = \'%s\' WHERE `reg_id` = %d\", tmp, pRegID);
   mysql_query(g_szQuery);
   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), i_str, tmp, year, month, day, hour, minute, second);
   mysql_query(g_szQuery);
   format(i_str, sizeof(i_str), \"Sikeresen átállítotad a jelszavad! Új jelszavad: {\" #XCOLOR_GREEN \"}%s\", tmp);
            SendClientMessage(playerid, COLOR_YELLOW, i_str);
}
case DIALOG_FINDPLAYER:
{
   if(!response)
      return 0;
   format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\'\", inputtext);
   mysql_query(g_szQuery);
   mysql_store_result();
   mysql_fetch_row(g_szLine);
   mysql_free_result();
   new
       pRegID,
      RegDate[24],
      Laston[24],
      Cash,
      Score,
      Kills,
      Deaths,
      Style,
      Float:Ratio,
      Changes[2];
   sscanf(g_szLine, \"p<|>d{s[24]s[16]s[30]}s[24]s[24]ddddd\", pRegID, RegDate, Laston, Cash, Score, Kills, Deaths, Style);
   // Arány kiszámítása
   if(Deaths && Kills) // Ha az ölések és a halálok száma nem nulla, mivel a 0-val való osztásnak nincs értelme és bebugol a format()
   {
      Ratio = floatdiv(Kills, Deaths);
   }
   else
   {
      Ratio = 0.0;
   }
   switch(GetPlayerFightingStyle(playerid))
   {
       case FIGHT_STYLE_NORMAL: tmp = \"Normál\";
         case FIGHT_STYLE_BOXING: tmp = \"Boxoló\";
         case FIGHT_STYLE_KUNGFU: tmp = \"Kungfu\";
      case FIGHT_STYLE_KNEEHEAD: tmp = \"Kneehead\";
      case FIGHT_STYLE_GRABKICK: tmp = \"Grabkick\";
      case FIGHT_STYLE_ELBOW: tmp = \"Elbow\";
   }
   // Megszámlálás
   format(g_szQuery, sizeof(g_szQuery), \"SELECT COUNT( reg_id ) FROM `namechanges` WHERE `reg_id` = %d\", pRegID);
   mysql_query(g_szQuery);
   mysql_store_result();
   Changes[0] = mysql_fetch_int();
   mysql_free_result();
   format(g_szQuery, sizeof(g_szQuery), \"SELECT COUNT( reg_id ) FROM `namechanges_p` WHERE `reg_id` = %d\", pRegID);
   mysql_query(g_szQuery);
   mysql_store_result();
   Changes[1] = mysql_fetch_int();
   mysql_free_result();
   // Üzenet elküldése
   format(i_str, sizeof(i_str), \"Név: %s, ID: %d, RegID: %d, Pénz: %d, Pont: %d\", inputtext, playerid, pRegID, Cash, Score);
   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, Ratio, tmp);
   SendClientMessage(playerid, COLOR_YELLOW, i_str);
   format(i_str, sizeof(i_str), \"Névváltások: %d, Jelszóváltások: %d\", Changes[0], Changes[1]);
   SendClientMessage(playerid, COLOR_PINK, 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;
}
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;
}
public OnQueryError(errorid, error[], resultid, extraid, callback[], sql_query[], connectionHandle)
{
print(sql_query);
}
// Statisztika felmutató
CMD:stats(playerid, params[])
{
new
RegDate[24],
Laston[24],
Kills = GetPVarInt(playerid, \"Kills\"),
Deaths = GetPVarInt(playerid, \"Deaths\"),
Float:Ratio,
Changes[2],
pRegID = GetPVarInt(playerid, \"RegID\");
format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_date`, `laston` FROM `players` WHERE `reg_id` = %d\", pRegID); // Kiválasztjuk a reg_date és a laston mezõt
mysql_query(g_szQuery);
mysql_store_result();
mysql_fetch_row(g_szLine); // Beleírjuk a \"g_szLine\" karakterláncba
mysql_free_result();
sscanf(g_szLine, \"p<|>s[24]s[24]\", RegDate, Laston);
// Arány kiszámítása
if(Deaths && Kills) // Ha az ölések és a halálok száma nem nulla, mivel a 0-val való osztásnak nincs értelme és bebugol a format()
{
Ratio = floatdiv(Kills, Deaths);
}
else
{
Ratio = 0.0;
}
switch(GetPlayerFightingStyle(playerid))
{
    case FIGHT_STYLE_NORMAL: tmp = \"Normál\";
      case FIGHT_STYLE_BOXING: tmp = \"Boxoló\";
      case FIGHT_STYLE_KUNGFU: tmp = \"Kungfu\";
case FIGHT_STYLE_KNEEHEAD: tmp = \"Kneehead\";
case FIGHT_STYLE_GRABKICK: tmp = \"Grabkick\";
case FIGHT_STYLE_ELBOW: tmp = \"Elbow\";
}
// Megszámlálás
format(g_szQuery, sizeof(g_szQuery), \"SELECT COUNT( reg_id ) FROM `namechanges` WHERE `reg_id` = %d\", pRegID);
mysql_query(g_szQuery);
mysql_store_result();
Changes[0] = mysql_fetch_int();
mysql_free_result();
format(g_szQuery, sizeof(g_szQuery), \"SELECT COUNT( reg_id ) FROM `namechanges_p` WHERE `reg_id` = %d\", pRegID);
mysql_query(g_szQuery);
mysql_store_result();
Changes[1] = mysql_fetch_int();
mysql_free_result();
// Ü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, Ratio, tmp);
SendClientMessage(playerid, COLOR_YELLOW, i_str);
format(i_str, sizeof(i_str), \"Névváltások: %d, Jelszóváltások: %d\", Changes[0], Changes[1]);
SendClientMessage(playerid, COLOR_PINK, 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: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[])
{
new
    count;
if(sscanf(params, \"s[128]\", i_str)) return SendClientMessage(playerid, COLOR_RED, \"HASZNÁLAT: /findplayer <Játékos Névrészlet>\");
//                                                                              format() trükk, bele kell írni valahogy a százalékot ( % ) is
format(g_szQuery, sizeof(g_szQuery), \"SELECT `name` FROM `players` WHERE `name` LIKE \'%s%s%s\'\", \"%%\", i_str, \"%%\");
mysql_query(g_szQuery);
mysql_store_result();
count = mysql_num_rows();
if(!count)
{
mysql_free_result();
format(i_str, sizeof(i_str), \"Nincs találat a \'%s\' részletre!\", i_str);
SendClientMessage(playerid, COLOR_RED, i_str);
return 1;
}
else if(count > 130)
{
mysql_free_result();
format(i_str, sizeof(i_str), \"A \'%s\' részletre több, mint 130 találad van! < %d >!\", i_str, count);
SendClientMessage(playerid, COLOR_RED, i_str);
return 1;
}
g_szQuery[0] = EOS; // Kiûrítjük a karakterláncot
while(mysql_fetch_row(g_szName))
{
strcat(g_szQuery, g_szName); // Hozzáadjuk a \"g_szQuery\" karakterlánchoz a \"g_szName\" karakterláncot.
strcat(g_szQuery, \"\\n\"); // Hozzáadjuk a \"g_szQuery\" karakterlánchoz az \"\\n\" karaktert. Ez eredményezi az új sort.
}
    mysql_free_result();
format(tmp, 128, \"Találatok a(z) \'%s\' részletre..\", i_str);
ShowPlayerDialog(playerid, DIALOG_FINDPLAYER, DIALOG_STYLE_LIST, tmp, g_szQuery, \"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, sor[])
{
new
PVarSet[5];
sscanf(sor,   \"p<|>{ds[24]s[16]s[30]s[24]s[24]}ddddd\", PVarSet[0], PVarSet[1], PVarSet[2], PVarSet[3], PVarSet[4]);
// printf(\"Cash: %d\", PVarSet[0]);
SetPVarInt(playerid, \"Cash\", PVarSet[0]); // 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, PVarSet[1]);
SetPVarInt(playerid, \"Kills\", PVarSet[2]);
SetPVarInt(playerid, \"Deaths\", PVarSet[3]);
SetPVarInt(playerid, \"Style\", PVarSet[4]);
SetPVarInt(playerid, \"LoggedIn\", 1);
return 1;
}
SavePlayer(playerid)
{
if(!IsPlayerNPC(playerid))
{
          if(!GetPVarType(playerid, \"LoggedIn\")) return 0; // Ha nincs bejelentkezve, akkor nem mentjük. Ezt ajánlatos itthagyni, mivel ezmiatt nekem sok bug keletkezett!
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),
GetPVarInt(playerid, \"RegID\"));
mysql_query(g_szQuery);
// %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)
{
GetPlayerName(playerid, g_szName, sizeof(g_szName));
return g_szName;
}
/* 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;
*/
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: spearox - 2012. Február 27. - 08:15:33
Köszi szépen, lefutott még nem teszteltem de remélem minden jó lesz.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [sdc]skyline - 2012. Március 18. - 20:56:39
Nekem annyi  aproblémám, hogy a samp-server.exe be kií rja hogy beloadolta a scriptet. De ha be lépek nem nyitja ki a dialogot.
Elõre is ksözönöm!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Március 19. - 06:44:54
Ha csak simán azt írja, hogy \"Filterscript %s loaded\", és a következõ sort nem \"print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");\", akkor nemjó!
Valamelyik pluginod hiányzik ebben az esetben.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [sdc]skyline - 2012. Március 19. - 07:43:07
Akkor biztos a plugin.  Köszönöm!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Április 21. - 18:11:53
Pls Kurta frissítsd már a reg rendszert, mert így nem tudom írni a modot...
és még azt is írd már le, hogy
 

így lelehet kérdezni a sorban lévõ dolgokat, és akkor azt kell használni, hogy mysql_function_query(1, query, false, \"OnQueryFinish\", \"\");
mysql_num_rows()
while(mysql_fetch_row(Line))
muszáj ezt használni, amit írtál elõzõ topicba...:
cache_get_data(rows, fields); // Lekérjük a lekérdezés után kapott értékeket. Sorok és a mezõk számát.
for(new i; i < rows; i++) // Minden sorra vonatkozik.
{
cache_get_row(i, 0, szMusicName); // Lekérjük azt a sort, ami az \"i\" változó értéke, ebben a sorban pedig a nulladik mezõt. Ezt bele a \"szMusicName\" tömbbe.
SendClientMessage(playerid, 0x33FF33AA, szMusicName);
}
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Neoflyythe - 2012. Április 22. - 08:55:26
Részletesen leírtál mindent a szöveg alapján észre lehet venni hogy tökéletes!:D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Április 22. - 17:09:56
Ha kijön a 0.3e akkor befejezem a szerveremen az új módot és frissítem ezt.
Átírom az R7-ben található gyorsítótárra, meg még pár apróságot megcsinálok, ami jelenleg elég nagy ökörség benne.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Erik3333 - 2012. Április 22. - 17:11:00
Nem lehetne bele admin rendszert rakni?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Április 22. - 17:13:38
Azt bele tudod rakni magadnak.
Rengeteg munka, és mindenki más admin rendszert használ.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: TheMesziErik - 2012. Április 22. - 18:13:52
Idézetet írta: Erik3333 date=1335107460\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Nem lehetne bele admin rendszert rakni?
 
Ez engem is érdekelne.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Neax_Neax - 2012. Április 24. - 13:54:23
                   HaliÓ
Még ujj vagyok a Fórumon és a Scriptelés világát is most kezdtem El..
 
Valakit kérek szépen Magyarázza el ezt nekem hogyan is kell azt megoldani PoNtról POntra ... Mert Nemértem hogyan is csináljam vagy mit kezdjek azokkal a Pluginokkal.. Hogy ez a Regisztráció/Belépés müködjön.. !!

Dupla hozzászólás automatikusan összefûzve. ( 2012. Április 25. - 16:12:36 )

megpróbáltam a systemet és egy Error-t irt nekem :
ebben a sorban van a hiba:
public OnQueryError                                                     
{                                                                                   
print(sql_query);                                                 
}                                                                                 
                                                                                   
--------------------------------------------------------------------
Run/:
d:\\samp\\SA-MPS~1\\GAMEMO~1\\dh.pwn(526) : error 001: expected token: \";\", but found \"{\"
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
1 Error.
De Várnám valakinek a Commentét aki leirja nekem hogy hogyan csináljam meg a reg/belépés systemet hogy tökéletesen müködjön .!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Április 28. - 09:19:27
Amíg nem adtam ki az új verziót, addig ezt ajánlom elolvasni.
http://forum.sa-mp.com/showthread.php?t=337810
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Neax_Neax - 2012. Április 28. - 11:28:34
Én Ezt a regisztrrációs rendszert akarnám megcsinálni De nemtudom hogyan kell  :-[  :hmmm: 
kurta99 lécci magyarázd nekem el...
vagy itt hozászólásban vagy :
skype : bihari.dani1
msn : [email protected]
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Április 28. - 14:30:37
Írd le ide a témába, hogy mit nem értesz, vagy, hogy hol akadtál el.
Arra van ez, msn-en meg skypon ne szedjen fel senki se segítségért, mert nem válaszolok.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dead - 2012. Április 28. - 18:11:13
Nagyon grat!
E:ladminba lehetséges beépíteni?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Április 28. - 18:52:00
Lehetséges, csak ahhoz eléggé szétkell azt bombázni, ráadásul az ladmin felépítése eléggé odavan.
Ha úgy vesszük énis azt csináltam, mivel a módomban kezdetben az ladmint raktam bele, aztán SQL és szépen lassan újraírtam az egészet rá, zcmd, sscanf meg stb..
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dead - 2012. Április 29. - 07:15:48
És tudnál segíteni, vagy valaki benne? Azt nagyon megköszönném. :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Április 30. - 17:04:56
Kurta! Van valami bug, mert a log-ban nézem, meg valamikor tapasztalom, hogy csatlakozok fel a szerverre, és 10 ezer fölötti pontokat ad, és több milló dollárt, pedig nincs annyim. És a logban írja, hogy megváltoztatta a pénzem, meg a pontom. Körübelül 1 hete csinálja ezt, az elõtt nem volt semmi gond vele, régóta használom.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Április 30. - 20:22:12
Ez érdekes, énis így használom és nálam ez nincs.
Átnézem még, új verzióra úgyis az egész újra lesz jóformán írva.
Esetleg nem módosítottál rajta valamit, és a WHERE kulcsszóhoz rosszul jutott ki az érték és azmiatt?
Mert én egyszer ezt szoptam be a figyelmetlenségem miatt.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Április 30. - 20:33:21
Nem módosítottam. A Lekérdezésekhez nem nyúltam hozzá. :D Hát na mindegy, addig kibírom, míg kinem adod az újjabbat, úgy is ritkán csinálja ezt. :D  Várom már az új verziót, kiváncsi vagyok milyen lesz. :) Sok Sikert! ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: #Nexus# - 2012. Május 02. - 20:09:47
Szép munka !
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 04. - 07:10:42
Kurta!
Megkérlek, hogy frissítsd már r7-es pluginra, mert így nem tudok dolgozni a gm-en.
pls ha megcsinálnád 1 óra alatt, akkor nekünk sok idõt megspórolnál...
pls frissítsd!  :angel:
Thx  :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 08. - 07:48:59
Kijött a 0.3e!
Körülbelül mikorra tudod újjáírni a reg rendszert?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 08. - 09:36:18
Most fogom a szerverem átrakni 0.3e-re, ott is frissítek az R7-re, aztán már nekikezdek eztis frissíteni.
Kb. jövõhéten elkezdem, az pár nap alatt meg van.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 08. - 10:00:50
Oké!
De pls ha ráérsz akkor csináld, mert kellene...
De thx  :angel:
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gamestar - 2012. Május 08. - 20:17:19
Szép munka.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Szucsor - 2012. Május 09. - 18:17:49
Nagyon jó! Kipróbáltam. Nagyon jól megvan csinálva.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 13. - 13:06:59
Szkript 2.0 BETA (R7) 
Tábla struktúra az nem változott, csak a scriptet és a plugint kell frissíteni.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: huncimbi - 2012. Május 13. - 13:15:28
Grat jó lett!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Neon - 2012. Május 13. - 13:20:25
Király
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Május 13. - 16:12:11
Fúúh, kurta. :D Kurva jól megcsináltad a 2.0 verziót. :O Gratula, szép munka lett! Használni fogom ezerrel. ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [LM]Arpi - 2012. Május 13. - 18:27:38
Na Végre hogy megcsináltad ez jó kis dolog nekem tetszik s szerintem sok mindenkinek
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 14. - 07:05:31
Akik az alapokat nem értik, azok NE kezdjenek MySQL-be.[/quote]
Szerintem ez nem igaz, mert ha próbálgatják, akkor megérthetik, de ha nem is törõdnek vele, csak kimásolnak egy kész scriptet, akkor nem fejlõdik a \"tanuló\"!
Ha valaki magának akar összerakni egyet, akkor nyugodtan tegye meg, 1 legalább tudja  mi van a scriptben, 2 tudja mibõl, mi segítségével épül fel!
Amúgy szerintem jó lett ment a rep!
U.i: Szerintem egy kicsit átláthatatlan...
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 14. - 11:55:00
Úgy értettem azt, hogy aki magában a PAWN nyelvben nem vágja az alapokat.
Mert nem egy olyan embert láttam már, aki így kezdi a MySQL-t.
Olyannak érdemes belekezdeni, aki a PAWN-ban legalább haladó szinten van, nem kezdõ.
Az átláthatatlan alatt pedig mit értesz?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dead - 2012. Május 14. - 15:13:08
Nem átláthatatlan ...
minden jól megvan csínálva..
 GG
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 14. - 17:09:15
Szerintem átláthatatlan, mert nem fûztél hozzá annyi magyarázatot az ismeretlen, újított dolgokhoz, meg elég furcsa \"professzori\" nyelven írtad, meg szerintem értelmesen sorba következõ logikus dolgokat is megmagyarázhattad volna!
+ Szerintem túl töményen van megfogalmazva az egész, nekem olyan furcsa...
De ez egy vélemény, ha komolyan akarod venni annak veszed, ha meg nem akkor nem!
Nem kötözködni akartam ezzel, te jó scripter vagy, nem kell felvilágosítani, csak....
Egyszóval furcsa!
UI.: aki beakar szólni, hogy miért írok ilyeneket, egy ilyen jó scriptre, az ne tegye...  :nono: xD ez kurtának szolt!

Dupla hozzászólás automatikusan összefûzve. ( 2012. Május 14. - 19:54:26 )

Amúgy ez miért nem jó?
Pedig pont úgy van mint a tied, csak én írtam, a topicod frissítése elõtt pár nappal, mert nembírtam várni a resled-re xD... m1
 

CMD:stats(playerid, params[])
{
format(Query, sizeof(Query), \"SELECT `RegDate`, `LastOn`, `RegIP`, `LastIP` FROM `users` WHERE `Name` = %s\", PName(playerid));
mysql_function_query(1, Query, true, \"CheckStats\", \"d\", playerid);
return 1;
}

 


.
.
.
cache_get_row(0, 0, RegDate); //RegDate
cache_get_row(0, 1, LastOn); //LastOn
cache_get_row(0, 2, RegIP); //RegIP
cache_get_row(0, 3, LastIP); //LastIP
.
.
.

 
Na ennyi a . -ok helyére a kód többi része van, de az nem lényeges...
Ott van az index! Szerintem így kell lekérdezés esetén.
Mert Így nem jeleníti meg a szöveget, ahol írja a RegIP-t meg stb-t.
Na és arra gyanakszok, hogy az index sántít, sõt 100%
Szerinted mi lehet a hiba?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 14. - 20:46:09
Ha tényleg nem olyan érthetõ, akkor a holnapi, vagy az utánna lévõ napok folyamán rakok hozzá pár kommentet.
Bocs, de ebbõl a kódból jelenleg nemsokra mentem.
Mit értesz az index alatt?
Esetleg ha elküldenéd az egészet PM-ben?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 15. - 06:32:52
Felesleges!
Na megpróbálom jobban körülírni!
Az a probléma, hogy amikor meghívódik a CheckStats, akkor ki kellene írni a regisztráció idejét meg a többi információt (admin, score... stb), de a szöveg nem jelenik meg a cache_get_row(0, EZ a szám, RegDate);
Amit úgy írtam, hogy ez a szám, azt akárminek írom, nem jelenik meg!
De ezt az egész kódomat beletettem a loginos részbe, ott kiírta.
Amikor kiválasztja a /stats paranccsal, hogy mire vagyunk kíváncsi azt nem tudom, hogy olyan esetbe mit kell írni a cache_get_row-hoz, az ez a szám helyére.
Amikor login, meg ilyenek vannak akkor világos az egész csak ez az egy nem.
Pls próbáld meg megérteni, mert nem nagyon tudom elmagyarázni így... xD
Ui.:
Te is úgy látom, hogy úgy csináltad, hogy a findplayer parancsodba kiválasztottál mindent amit tudni akarunk róla...
És akkor így írtad a cashe_get_row -ot
 

cache_get_row(0, 4, RegDate);
cache_get_row(0, 5, Laston);

 
Amikor csak néhány dologra van szögségük, jelenesetben a RegDate stb... akkor csak azokat választjuk ki, és akkor a cache_get_row(0, 4, RegDate); a 4-es szám helyére mit kellene írni? ezt nem értem, hogy pár dolog kiválasztásakor a cashe get row-nak milyen \"értéket\" kell adnia?
phú remélem érthetõ
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 15. - 13:03:31
A cache_get_row-hoz a lekérdezés által visszadott mezõnek a számát kell írni.
Ha kiválasztasz három mezõt, (ASD, DSA, QWE) akkor a 0.-dik az az \"asd\", 1. pedig a \"dsa\", így tovább..
Tehát ha SELECT ASD, DSA, QWE FROM ...
Akkor:
cache_get_row(0, 1, szvaltozo); // ASD
cache_get_row(0, 2, szvaltozo); // dsa
cache_get_row(0, 2, szvaltozo); // owe
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 15. - 13:08:34
Magyarán, ha nekem így van, hogy RegDate, LastOn, RegIP, LastIP, akkor így kell?:
 

cache_get_row(0, 1, RegDate); //RegDate
cache_get_row(0, 2, LastOn); //LastOn
cache_get_row(0, 2, RegIP); //RegIP
cache_get_row(0, 2, LastIP); //LastIP

 
De te miért így írtad?:
 

cache_get_row(0, 0, RegDate); //RegDate
cache_get_row(0, 1, LastOn); //LastOn

 

Dupla hozzászólás automatikusan összefûzve. ( 2012. Május 15. - 13:33:45 )

Ha nem érted amit írtam , akkor tényleg adok egy msn, vagy skype címet, és elmondom vhogy xD
De ha tudsz help
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 15. - 16:18:40
Oda a SOR AZONOSÍTÓJÁT kell beírni, amit a kiválasztás által kaptál.
Ha LOf***, ESTIFENY, ASD
Akkor az elsõ a 0, második az 1, harmadik a 2 s így tovább.
Ha DSA, QWERT, akkor is ugyanúgy.
Ha mindent választasz, akkro is ugyanúgy, csak én azért hagytam ott ki dolgokat, mert mondjuk nekem ha nemkell az 5. mezõ akkor azt nem olvasom és ennyi, ittvan róla egy kép is én ezt nemtom magyarázni jobban XD
\"width=500http://www.nm-ss.tarhely.biz/SAMP/Vagod_Arpittod_Szeletollod.jpg[/img]
cache_get_row(SorAzonosító, Mezõ, String_Amibe_Beleírjuk);
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 15. - 16:49:55
áááááá
Nekem így van:
 

format(Query, sizeof(Query), \"SELECT `RegDate`, `LastOn`, `RegIP`, `LastIP` FROM `users` WHERE `Name` = %s\", PName(playerid));

 


cache_get_row(0, 0, RegDate); //RegDate
cache_get_row(0, 1, LastOn); //LastOn
cache_get_row(0, 2, RegIP); //RegIP
cache_get_row(0, 3, LastIP); //LastIP

 
A mysql date base-n meg így:
 

RegID    Name    Password    Level    RegDate    LastOn    RegIP    LastIP    Kills    Deaths    Money    Score

 
help pls
De lehet, hogy igyan f*** vagyok, de nemfogom xD
skype: toth.arpi21
msn: [email protected]
xfire: totar21
vegyél fel
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 15. - 18:19:17
Ez hülyeség, ennek mennie kell.
Kapcsold be a mysql debug-ot és nézd meg, hogy mit ír a \"mysql_log\"-ban.
 
mysql_debug(1);

 
(Mindegy hova rakod, futás közben is tudod ki/be kapcsolni, de szerintnem jelenleg a kapcsolódás elé lenne a legjobb)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 15. - 20:09:07
MEgoldva!
Más volt a problem
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Alvin - 2012. Május 18. - 12:38:31
ezt kerestem , ment a +
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 19. - 10:09:20
Jelenleg van egy bug, mégpedig az, hogy a SavePlayer() lecsatlakozásnál nem fogja menteni az adatokat.
Ezt javítani is fogom, még e hét folyamán.
E: Javítva is, töltsétek le újra, plussz race condition védelem hozzárakva.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 08. - 07:48:59
Kijött a 0.3e!
Körülbelül mikorra tudod újjáírni a reg rendszert?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 08. - 09:36:18
Most fogom a szerverem átrakni 0.3e-re, ott is frissítek az R7-re, aztán már nekikezdek eztis frissíteni.
Kb. jövõhéten elkezdem, az pár nap alatt meg van.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 08. - 10:00:50
Oké!
De pls ha ráérsz akkor csináld, mert kellene...
De thx  :angel:
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gamestar - 2012. Május 08. - 20:17:19
Szép munka.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Szucsor - 2012. Május 09. - 18:17:49
Nagyon jó! Kipróbáltam. Nagyon jól megvan csinálva.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 13. - 13:06:59
Szkript 2.0 BETA (R7) 
Tábla struktúra az nem változott, csak a scriptet és a plugint kell frissíteni.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: huncimbi - 2012. Május 13. - 13:15:28
Grat jó lett!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Neon - 2012. Május 13. - 13:20:25
Király
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Május 13. - 16:12:11
Fúúh, kurta. :D Kurva jól megcsináltad a 2.0 verziót. :O Gratula, szép munka lett! Használni fogom ezerrel. ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [LM]Arpi - 2012. Május 13. - 18:27:38
Na Végre hogy megcsináltad ez jó kis dolog nekem tetszik s szerintem sok mindenkinek
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 14. - 07:05:31
Akik az alapokat nem értik, azok NE kezdjenek MySQL-be.[/quote]
Szerintem ez nem igaz, mert ha próbálgatják, akkor megérthetik, de ha nem is törõdnek vele, csak kimásolnak egy kész scriptet, akkor nem fejlõdik a \"tanuló\"!
Ha valaki magának akar összerakni egyet, akkor nyugodtan tegye meg, 1 legalább tudja  mi van a scriptben, 2 tudja mibõl, mi segítségével épül fel!
Amúgy szerintem jó lett ment a rep!
U.i: Szerintem egy kicsit átláthatatlan...
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 14. - 11:55:00
Úgy értettem azt, hogy aki magában a PAWN nyelvben nem vágja az alapokat.
Mert nem egy olyan embert láttam már, aki így kezdi a MySQL-t.
Olyannak érdemes belekezdeni, aki a PAWN-ban legalább haladó szinten van, nem kezdõ.
Az átláthatatlan alatt pedig mit értesz?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dead - 2012. Május 14. - 15:13:08
Nem átláthatatlan ...
minden jól megvan csínálva..
 GG
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 14. - 17:09:15
Szerintem átláthatatlan, mert nem fûztél hozzá annyi magyarázatot az ismeretlen, újított dolgokhoz, meg elég furcsa \"professzori\" nyelven írtad, meg szerintem értelmesen sorba következõ logikus dolgokat is megmagyarázhattad volna!
+ Szerintem túl töményen van megfogalmazva az egész, nekem olyan furcsa...
De ez egy vélemény, ha komolyan akarod venni annak veszed, ha meg nem akkor nem!
Nem kötözködni akartam ezzel, te jó scripter vagy, nem kell felvilágosítani, csak....
Egyszóval furcsa!
UI.: aki beakar szólni, hogy miért írok ilyeneket, egy ilyen jó scriptre, az ne tegye...  :nono: xD ez kurtának szolt!

Dupla hozzászólás automatikusan összefûzve. ( 2012. Május 14. - 19:54:26 )

Amúgy ez miért nem jó?
Pedig pont úgy van mint a tied, csak én írtam, a topicod frissítése elõtt pár nappal, mert nembírtam várni a resled-re xD... m1
 

CMD:stats(playerid, params[])
{
format(Query, sizeof(Query), \"SELECT `RegDate`, `LastOn`, `RegIP`, `LastIP` FROM `users` WHERE `Name` = %s\", PName(playerid));
mysql_function_query(1, Query, true, \"CheckStats\", \"d\", playerid);
return 1;
}

 


.
.
.
cache_get_row(0, 0, RegDate); //RegDate
cache_get_row(0, 1, LastOn); //LastOn
cache_get_row(0, 2, RegIP); //RegIP
cache_get_row(0, 3, LastIP); //LastIP
.
.
.

 
Na ennyi a . -ok helyére a kód többi része van, de az nem lényeges...
Ott van az index! Szerintem így kell lekérdezés esetén.
Mert Így nem jeleníti meg a szöveget, ahol írja a RegIP-t meg stb-t.
Na és arra gyanakszok, hogy az index sántít, sõt 100%
Szerinted mi lehet a hiba?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 14. - 20:46:09
Ha tényleg nem olyan érthetõ, akkor a holnapi, vagy az utánna lévõ napok folyamán rakok hozzá pár kommentet.
Bocs, de ebbõl a kódból jelenleg nemsokra mentem.
Mit értesz az index alatt?
Esetleg ha elküldenéd az egészet PM-ben?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 15. - 06:32:52
Felesleges!
Na megpróbálom jobban körülírni!
Az a probléma, hogy amikor meghívódik a CheckStats, akkor ki kellene írni a regisztráció idejét meg a többi információt (admin, score... stb), de a szöveg nem jelenik meg a cache_get_row(0, EZ a szám, RegDate);
Amit úgy írtam, hogy ez a szám, azt akárminek írom, nem jelenik meg!
De ezt az egész kódomat beletettem a loginos részbe, ott kiírta.
Amikor kiválasztja a /stats paranccsal, hogy mire vagyunk kíváncsi azt nem tudom, hogy olyan esetbe mit kell írni a cache_get_row-hoz, az ez a szám helyére.
Amikor login, meg ilyenek vannak akkor világos az egész csak ez az egy nem.
Pls próbáld meg megérteni, mert nem nagyon tudom elmagyarázni így... xD
Ui.:
Te is úgy látom, hogy úgy csináltad, hogy a findplayer parancsodba kiválasztottál mindent amit tudni akarunk róla...
És akkor így írtad a cashe_get_row -ot
 

cache_get_row(0, 4, RegDate);
cache_get_row(0, 5, Laston);

 
Amikor csak néhány dologra van szögségük, jelenesetben a RegDate stb... akkor csak azokat választjuk ki, és akkor a cache_get_row(0, 4, RegDate); a 4-es szám helyére mit kellene írni? ezt nem értem, hogy pár dolog kiválasztásakor a cashe get row-nak milyen \"értéket\" kell adnia?
phú remélem érthetõ
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 15. - 13:03:31
A cache_get_row-hoz a lekérdezés által visszadott mezõnek a számát kell írni.
Ha kiválasztasz három mezõt, (ASD, DSA, QWE) akkor a 0.-dik az az \"asd\", 1. pedig a \"dsa\", így tovább..
Tehát ha SELECT ASD, DSA, QWE FROM ...
Akkor:
cache_get_row(0, 1, szvaltozo); // ASD
cache_get_row(0, 2, szvaltozo); // dsa
cache_get_row(0, 2, szvaltozo); // owe
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 15. - 13:08:34
Magyarán, ha nekem így van, hogy RegDate, LastOn, RegIP, LastIP, akkor így kell?:
 

cache_get_row(0, 1, RegDate); //RegDate
cache_get_row(0, 2, LastOn); //LastOn
cache_get_row(0, 2, RegIP); //RegIP
cache_get_row(0, 2, LastIP); //LastIP

 
De te miért így írtad?:
 

cache_get_row(0, 0, RegDate); //RegDate
cache_get_row(0, 1, LastOn); //LastOn

 

Dupla hozzászólás automatikusan összefûzve. ( 2012. Május 15. - 13:33:45 )

Ha nem érted amit írtam , akkor tényleg adok egy msn, vagy skype címet, és elmondom vhogy xD
De ha tudsz help
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 15. - 16:18:40
Oda a SOR AZONOSÍTÓJÁT kell beírni, amit a kiválasztás által kaptál.
Ha LOf***, ESTIFENY, ASD
Akkor az elsõ a 0, második az 1, harmadik a 2 s így tovább.
Ha DSA, QWERT, akkor is ugyanúgy.
Ha mindent választasz, akkro is ugyanúgy, csak én azért hagytam ott ki dolgokat, mert mondjuk nekem ha nemkell az 5. mezõ akkor azt nem olvasom és ennyi, ittvan róla egy kép is én ezt nemtom magyarázni jobban XD
\"width=500http://www.nm-ss.tarhely.biz/SAMP/Vagod_Arpittod_Szeletollod.jpg[/img]
cache_get_row(SorAzonosító, Mezõ, String_Amibe_Beleírjuk);
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 15. - 16:49:55
áááááá
Nekem így van:
 

format(Query, sizeof(Query), \"SELECT `RegDate`, `LastOn`, `RegIP`, `LastIP` FROM `users` WHERE `Name` = %s\", PName(playerid));

 


cache_get_row(0, 0, RegDate); //RegDate
cache_get_row(0, 1, LastOn); //LastOn
cache_get_row(0, 2, RegIP); //RegIP
cache_get_row(0, 3, LastIP); //LastIP

 
A mysql date base-n meg így:
 

RegID    Name    Password    Level    RegDate    LastOn    RegIP    LastIP    Kills    Deaths    Money    Score

 
help pls
De lehet, hogy igyan f*** vagyok, de nemfogom xD
skype: toth.arpi21
msn: [email protected]
xfire: totar21
vegyél fel
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 15. - 18:19:17
Ez hülyeség, ennek mennie kell.
Kapcsold be a mysql debug-ot és nézd meg, hogy mit ír a \"mysql_log\"-ban.
 
mysql_debug(1);

 
(Mindegy hova rakod, futás közben is tudod ki/be kapcsolni, de szerintnem jelenleg a kapcsolódás elé lenne a legjobb)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Május 15. - 20:09:07
MEgoldva!
Más volt a problem
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Alvin - 2012. Május 18. - 12:38:31
ezt kerestem , ment a +
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Május 19. - 10:09:20
Jelenleg van egy bug, mégpedig az, hogy a SavePlayer() lecsatlakozásnál nem fogja menteni az adatokat.
Ezt javítani is fogom, még e hét folyamán.
E: Javítva is, töltsétek le újra, plussz race condition védelem hozzárakva.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Június 09. - 15:46:03
R7-2 forráskódja elérhetõ.
Ebben javította a memória szivárgásokat és a crash-et a mysql_format()-ban használt \'%e\" paraméterrel.
Majd frissíteni fogom rá a scriptet, ha ezt hivatalosan kiadák.
Amúgy akinek fentvan a C++, az Windowsra simán letudja magának fordítani, nem kell hozzá semmi egyéb extra dolog.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: instant - 2012. Június 16. - 07:42:14
csak 1 kérdés a táblákat magunknak kell létrehozni?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Június 16. - 10:14:06
Idézetet írta: ZzzzzZ date=1339825334\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
csak 1 kérdés a táblákat magunknak kell létrehozni?
 
Igen.
Belemész a phpMyAdmin-ba, beleírod az SQL fülbe a dolgokat és létrehozza neked.
De ha te akarsz vele sz.arakodni, akkor egy lekérdezésbe is beleírhatod, amit a szerverbõl küldesz el.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: instant - 2012. Június 16. - 10:20:07
rendben köszönöm kurta 
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dead - 2012. Június 16. - 12:28:07
linuxos mysqlibet linkeli valaki, kösz.
E:a libmysqlclient.so.15 filevel nem jó.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Striker - 2012. Június 17. - 13:06:23
Nekem a 95. sorba hibát jelez:print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevu\" felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");
És ezek a hibák:D:\\Rendes szerver\\gamemodes\\mysql_szero.pwn(95) : error 001: expected token: \"-string end-\", but found \"-identifier-\"
D:\\Rendes szerver\\gamemodes\\mysql_szero.pwn(95) : error 017: undefined symbol \"felhaszn\"
D:\\Rendes szerver\\gamemodes\\mysql_szero.pwn(95) : error 029: invalid expression, assumed zero
D:\\Rendes szerver\\gamemodes\\mysql_szero.pwn(95) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
4 Errors.
Aki tud segíteni az segítsen :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Június 17. - 13:23:46
Idézetet írta: Striker date=1339931183\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Nekem a 95. sorba hibát jelez:print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevu\" felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");
És ezek a hibák:D:\\Rendes szerver\\gamemodes\\mysql_szero.pwn(95) : error 001: expected token: \"-string end-\", but found \"-identifier-\"
D:\\Rendes szerver\\gamemodes\\mysql_szero.pwn(95) : error 017: undefined symbol \"felhaszn\"
D:\\Rendes szerver\\gamemodes\\mysql_szero.pwn(95) : error 029: invalid expression, assumed zero
D:\\Rendes szerver\\gamemodes\\mysql_szero.pwn(95) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
4 Errors.
Aki tud segíteni az segítsen :D
 

print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevu felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Striker - 2012. Június 17. - 15:27:37
:S
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dead - 2012. Június 17. - 17:31:12
Idézetet írta: Striker date=1339939657\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
:S
 
bõvebben kifejtenéd, kérlek?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Striker - 2012. Június 17. - 19:18:16
Most kezdtem el a mysql-t de nem nagyon jövök rá mit hova kel szal, mûvészkedek :D esetleg ha akarod elmondhatod MYSQL hosthoz meg ezekhez mit kell írni vagy valami, ma kezdtema  mysql-t szall  :question:
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dead - 2012. Június 18. - 08:38:44
Idézetet írta: Striker date=1339953496\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Most kezdtem el a mysql-t de nem nagyon jövök rá mit hova kel szal, mûvészkedek :D esetleg ha akarod elmondhatod MYSQL hosthoz meg ezekhez mit kell írni vagy valami, ma kezdtema  mysql-t szall  :question:
 
így sokkal érthetõbb, nem egy :S -et tenni hszbe


( hszhunterkedés ... )
 
hostod van ugye?
 

// 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\"    // ez a host neve, ha nem küldõ mysql akkor localhost ( ott van ahol a server )
#define MYSQL_USER             \"root\"  // MySQL felhasználó neve - webadminban tudsz csínálni mysql tárhelyet, annak a felhasználója kerül ide
#define MYSQL_PASS             \"\" // Felhasználó jelszava
#define MYSQL_DB               \"samp\" // táblák neve.

 
ha igényled, beüzemelem neked, de dobj egy msn-t vagy skypeot PÜben.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Striker - 2012. Június 18. - 22:13:11
Örök hálám :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: xXGoofreXx - 2012. Június 19. - 08:57:02
Faja nekem ilyen kell:) Átrakom a szerveremet msql-esre. Az mennyivel lassítja a szervert ha nem fájlokat használok? Vagy gyorsítja?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Június 19. - 16:07:31
Attól függ hogyan és mire használod.
A MySQL egy adatbázis rendszer, sokkal több lehetõséged van mind a fájlokkal és sokkal egyszerûbb is.
Ha jól használod a dolgokat akkor soxor gyorsabb, bár van pár helyzet amikor fájlokat sokkal egyszerûbb használni.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: hegdavid95 - 2012. Június 20. - 09:38:04
Fel tudnád rakni a legfrissebb includet? Csak mert én sehol sem találom, ha berakom a hivatalos mysql oldalról a plugint akkor is azt írja a scripted hogy rakjam be az újat.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: instant - 2012. Június 20. - 11:15:58
Idézetet írta: hegdavid95 date=1340177884\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Fel tudnád rakni a legfrissebb includet? Csak mert én sehol sem találom, ha berakom a hivatalos mysql oldalról a plugint akkor is azt írja a scripted hogy rakjam be az újat.
 
http://files.g-stylezzz.com/mysql/rel/R7/a_mysql.inc
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2012. Június 20. - 11:26:29
ZzzzZ ha már felraktad az inc kérlek felteszed a plugint is :P?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: instant - 2012. Június 20. - 11:38:00
Linux: http://files.g-stylezzz.com/mysql/rel/R7/ubuntu/mysql.so
Windows:http://files.g-stylezzz.com/mysql/rel/R7/windows/plugin-R7-win32_vs9.rar
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Június 21. - 13:02:38
Figyelem figyelem!!
Vannak itt ugyebár ezek a sorok:
 

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;
}

 
És ha az \"Automatikusan bejelentkeztél!\" után írunk egy Kick(playerid)-t akkor ki se írja hogy \"Automatikusan bejelentkeztél!\", hanem kifagy a szerver!
Ez a problémám nekem is, mert elõbb kickel, minthogy kiírná az üzenetet...
Valaki megtudná mondani, hogy mi a baj, mert én má felrobbanok az iedgtõl!!!  :@ :@ :@ :@ :@ :@
THX
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2012. Június 21. - 13:12:11
Ha megjön kurta999 ide akkor elmondja adig nyugodj le szépen! :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: JBauer - 2012. Június 21. - 13:15:08
Amúgy is a bejelentkezés után miért akarod kickelni? (Közvetlen utána)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Június 21. - 13:23:45
Rakd be a crashdetect-et és az kiírja, hogy hol crashel pontosan (sorral együtt).
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Június 21. - 14:51:16
Idézetet írta: JBauer date=1340277308\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Amúgy is a bejelentkezés után miért akarod kickelni? (Közvetlen utána)
 
Nem akarom kickelni, csak mondom, hogy nem mûködik , mert még a kick elõtt ki kellene írni a szöveget!
 

Rakd be a crashdetect-et és az kiírja, hogy hol crashel pontosan (sorral együtt).
 
[/quote]
Megpróbálom, de neked mûködik, ha abba a bizonyos sorba beírsz egy Kick(playerid) -t???
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Június 21. - 15:12:55
Mûködik, de viszont a Kick() felcsatlakozásnál bugos, mivel a játékos kliensre újracsatlakozik utána a szerverre.
(Mongyuk én az üzenet elé írtam, de akkor se kapja meg az üzenetet ha utánna írod, mivel a kick packet prioritása nagyobb, mind az üzeneté, ezért hiába rakod elé, elõször azt fogja a játékos kliense megkapni és az fog elõször végbemenni)
Ez megoldja ezt a problémát, viszont az, hogy mitõl crashel, arra nincs nagyon tippem. Fordítsd le -d3 flaggal a scriptet és rakd be a crashdetect-et.
 

SetTimerEx(\"KickPlayer\", 4500, false, \"d\", playerid); // <- Kick() helyett ezt
forward KickPlayer(playerid);
public KickPlayer(playerid)
{
    return Kick(playerid);
}
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: totar - 2012. Június 21. - 15:17:34
Na tudtam én!
énis így oldottam meg, és így jó, csak furának tartottam, a dolgot, hogy nemjó a Kick()...
Thx, akkor jól gondoltam xD
Thx mégegyszer
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: anorennia - 2012. Július 12. - 07:54:27
Sziasztok, olyat szeretnék kérdezni, hogy miért van az, hogy mikor menteni akarom, akkor a dialog_style_passwrod-el van baja?:O :/
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: JBauer - 2012. Július 12. - 09:22:41
0.3d vagy annál frissebb a_samp.inc kell.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Gabor.. - 2012. Július 17. - 21:04:29
E: Semmi, módosítva!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: dxslide - 2012. Július 22. - 00:25:20
Miert van az hogy  belep megjelenik a regisztracios ablak beirom a jelszot de utana semmi ramegyek spawn megint megjelenik a regisztracios ablak.Vagyis nem fogadja el valamiert de nem ir ki semmit
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2012. Július 22. - 12:02:43
Valószinûleg a Dialog ID-k keverednek és azért.
Valami más scriptedben van definálva dialóg id 20ezer és 20010 között?
Vagy esetleg nemjó a kapcsolat, nemtudja beleírni, sokmindenen múlhat ez.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: dxslide - 2012. Július 22. - 12:49:51
Megkaptam a hibat koszi:D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: doboka98 - 2013. Január 03. - 13:33:56
Nekem is ugyanez a gondom, mint dx-nek, valaki segítene? :S
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Zsolesszka - 2013. Január 03. - 16:57:32
Letöltési link, rossz:



Not Found
The requested URL /SAMP/MySQL_2.0.txt was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [(The_Pro_Kari)] - 2013. Január 03. - 17:05:12
mert már megszünt a honlapja!! majd felteszem!! :)

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 03. - 17:12:26 )

Itt van :D
 
// MySQL Regisztráció rendszer by kurta999
// Verzió: 2.0
// Last Update: 2012.06.04
#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.. szarsá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ó.
// Automatikus bejelentkezés
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;
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;
   }
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", inputtext);
   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..\", reszlet);
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;
 
*/

 
Ha valami kimaradt SRY :DD

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 03. - 17:13:20 )

Majd valamelyik admin vagy kurta másolja be a fõ postba!! :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: doboka98 - 2013. Január 03. - 17:58:39
\" post=\"380972\" timestamp=\"1357229112\"]
mert már megszünt a honlapja!! majd felteszem!! :)

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 03. - 17:12:26 )

Itt van :D
 
// MySQL Regisztráció rendszer by kurta999
// Verzió: 2.0
// Last Update: 2012.06.04
#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ó.
// Automatikus bejelentkezés
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;
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;
   }
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", inputtext);
   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..\", reszlet);
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;
 
*/

 
Ha valami kimaradt SRY :DD

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 03. - 17:13:20 )

Majd valamelyik admin vagy kurta másolja be a fõ postba!! :D
 
[/quote]
Milyen honlapról beszélsz, lol? Amúgy már megoldottam, más volt a gebasz.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [(The_Pro_Kari)] - 2013. Január 03. - 18:13:41
Kurta nmss-tarhely.biz-es honlapjáról mert azon volt a letöltési link!!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Striker - 2013. Január 03. - 18:36:44
Idézetet írta: dxslide date=1342909520\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Miert van az hogy  belep megjelenik a regisztracios ablak beirom a jelszot de utana semmi ramegyek spawn megint megjelenik a regisztracios ablak.Vagyis nem fogadja el valamiert de nem ir ki semmit
 
Nekem is volt ilyen problémám mikor házi szerveren akartam tesztelni és hostos volt a mysql adatbázis nekem nem csatlakozott rá :S
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2013. Január 03. - 19:19:44
Visszamondtam a tárhelyet, befejeztem a szervert úgyhogy minden .tarhely.biz-es link rossz. Akinek vmi kell, írjon PM-et.
Ittvan a legújabb:
 

// 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.. szarsá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;
*/
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [(The_Pro_Kari)] - 2013. Január 03. - 19:30:29
Mi lett benne új?? :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2013. Január 03. - 22:54:45
Kurva régen csináltam, nem igazán emléxek rá, de azt tudom, hogy semmi olyan aminek lenne valami nagyobb jelentõsége.
Egyébként elõbbi kódban bennehagytam véletlen egy másik scriptbõl részleget, azt javítottam. Valamit teszteltem a szerveren nos ebbe írtam bele és bennemaradt :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [(The_Pro_Kari)] - 2013. Január 07. - 15:23:09
Fõposztba nem teszed ki?? :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2013. Március 22. - 16:04:21
Bocsi az offért de nem jó a letöltési link.. kérlek módosísd!
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .:Secur:. - 2013. Március 22. - 16:53:58
Hasznosak voltak az SQL órák a suliban  ;D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: JBauer - 2013. Március 22. - 17:09:45
ZyZu.. pont most írta le, hogy megszûnt a tárhely ott a kód.
Kurta: nem tudnád felrakni az R6ost is?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2013. Március 22. - 17:34:19
Nem hinném, hogy még megvan..
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2013. Március 22. - 19:28:54
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;
*/
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: JBauer - 2013. Március 22. - 19:31:37
Végül is az elõzõ oldalon is csak 2x volt kint.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2013. Szeptember 02. - 14:37:30
Érdemes lenne felújítani a legújabb SQL pluginra, vagy már inkább ne is foglalkozzak vele?
Mert ha nincs érdeklõdés, akkor nem pazarolom rá az idõmet.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2013. Szeptember 02. - 17:20:27
De csináld meg.. ha van olyan sok idõd akkor megírhatnád még r6 -ra is :D  :whistle: De én hasznát venném.  ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2013. Szeptember 02. - 18:31:51
Fölösleges arra, r33 majd ha kijön, azis támogatni fogja a sima untrhreaded lekérdezéseket, amihez nem kell \"public\", hanem mint ahogy a régi R6 ment.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: JBauer - 2013. Szeptember 02. - 20:26:37
Idézetet írta: kurta999 date=1378139511\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Fölösleges arra, r33 majd ha kijön, azis támogatni fogja a sima untrhreaded lekérdezéseket, amihez nem kell \"public\", hanem mint ahogy a régi R6 ment.
 
Ez egy jó hír. :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2014. Március 09. - 12:32:37
Frissítettem R38-ra a scriptet, viszont nem teszteltem le, szóval elõfordulhatnak benne hibák.
Legújabb plugint itt tudjátok letölteni:
https://github.com/pBlueG/SA-MP-MySQL/releases
Legújabb scriptet meg itt:
http://www.solidfiles.com/d/04de529fbb/MySQL_3.0.pwn
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Cappsy - 2014. Március 09. - 12:43:53
[gmod]Mivel a téma nem csak hasznos, hanem még közel 4 év után is aktuális tud lenni, úgy érzem megérett arra, hogy kiemelve legyen. Gratulálok a témanyitónak! :)[/gmod]
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: bbTamas - 2014. Március 09. - 12:50:16
Én ezt a részt nem értem, hogy miért akarsz lekérni egy olyan sorból, egy olyan adatott ami lehet, hogy nem is létezik?
Mert ha nem létezõ sorból kérsz le adatott, akkor hibát ír ki a konzol-ba, ezért nem tud mit csinálni ezért értékként visszatér nullával.
Na most te ezt az értéket használod fel, hogy ha nincs ilyen sor.
Elõtte ellenõrizni kéne, hogy létezik-e az adott sor (cache_get_data függvénnyel), ha nem akkor kellene értéket adni, én így oldanám meg.
De te feltétel elõtt már lekérsz adatokat, vagy lekérsz egy sort, aztán ellenõrzõd, hogy létezik-e?!
Remélem érted, hogy mit akarok mondani.
 
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;
}
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],
serial[64];
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, serial, sizeof(serial));
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, serial, year, month, day, hour, minute, second);
mysql_pquery(1, g_szQuery);
// 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_pquery(1, g_szQuery, \"THREAD_Autologin\", \"dd\", playerid, g_pQueryQueue[playerid]);
}
     return 1;
}

 
Én valahogy így csinálnám:
 
forward THREAD_OnPlayerConnect(playerid, queue);
public THREAD_OnPlayerConnect(playerid, queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_OnPlayerConnect);
new rows,fields;
 
cache_get_data(rows, fields);
if(rows) // Ha a sor nem üres
{
new szFetch[12],
cache_get_row(0, 0, szFetch);
SetPVarInt(playerid, \"LineID\", strval(szFetch));
}
else
{
SetPVarInt(playerid, \"LineID\",0);
}
//+többi rész
}

 

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\") != 0)
{
   LoginDialog(playerid);
}
else
{
   RegisterDialog(playerid);
}
}
return 1;
}
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [(The_Pro_Kari)] - 2014. Március 09. - 17:08:43
Na legalább ebbõl a legújabb mysql-t is megtanulhatom :D Kösz kurta
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2014. Március 09. - 17:13:00
Nincs mit.
Egyébként, ha jól értelmeztem arra akarsz rámutatni, hogy ez a sor mér így néz ki:
 

SetPVarInt(playerid, \"LineID\", strval(szFetch));

 
Itt van az a lehetõség, ha nincs a játékos névre találat akkor ennek a változónak 0-t ad be mivel nincs olyan sor.
Konkrétan szerintem ezzel nincs nagyon semmi baj, viszont a te megoldásoddal is meg lehet oldani. Én valahogy ezzel a megoldással kezdtem :D
+ azt a hibát hol írja amit mondtál azt nem értem mert nekem eddig erre semmi nem írt hibát, évek óta ezt használom a hostos szerveren.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: doboka98 - 2014. Március 30. - 09:40:49
Lenne egy olyan kérdésem, hogy megéri R7-re építeni? Ezt azért kérdem, mert épp most írtam át a szerverem fájlmentésrõl R6-ra. Ahogy olvastam az R7 10-20x gyorsabb, mint az R6. Szóval megéri arra áttérni? Megmondom õszintén engem nem igazán zavar, ha a mód indításakor fél másodperc helyett várok 3-4-et a betöltésre. Meg nekem bonyolultabbnak tûnik az R7.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [(The_Pro_Kari)] - 2014. Március 30. - 09:43:21
Bonyolultabb is de szerintem megéri. És ha már áttérsz a újabb mysql-re akkor R38-ra térj át szerintem.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2014. Április 05. - 08:39:49
Idézetet írta: doboka98 date=1396165249\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Lenne egy olyan kérdésem, hogy megéri R7-re építeni? Ezt azért kérdem, mert épp most írtam át a szerverem fájlmentésrõl R6-ra. Ahogy olvastam az R7 10-20x gyorsabb, mint az R6. Szóval megéri arra áttérni? Megmondom õszintén engem nem igazán zavar, ha a mód indításakor fél másodperc helyett várok 3-4-et a betöltésre. Meg nekem bonyolultabbnak tûnik az R7.
 
Megérni persze, hogy megéri átírni mivel a legjobb és legújabb plugin. Én maradok az R6 -nál mivel szerintem egyszerû és sokkal könnyebb mint a többi verzió pedig több dolgot lehetséges megcsinálni a legújabb verziókkal. De ez attól függ mennyire vágja az eszed az egész MySQL -t.. ha jól akkor értelme van átírni.. ha semmit akkor maradj inkább az R6 -nál.. nálam szintén ez a probléma.. nem tudok rájönni a logikájára de az R6 -nál pedig simán megy. :D Good luck.  ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dfoglalo - 2014. Április 05. - 14:17:24
Idézetet írta: ZyZu. date=1396679989\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic


Lenne egy olyan kérdésem, hogy megéri R7-re építeni? Ezt azért kérdem, mert épp most írtam át a szerverem fájlmentésrõl R6-ra. Ahogy olvastam az R7 10-20x gyorsabb, mint az R6. Szóval megéri arra áttérni? Megmondom õszintén engem nem igazán zavar, ha a mód indításakor fél másodperc helyett várok 3-4-et a betöltésre. Meg nekem bonyolultabbnak tûnik az R7.
 
Megérni persze, hogy megéri átírni mivel a legjobb és legújabb plugin. Én maradok az R6 -nál mivel szerintem egyszerû és sokkal könnyebb mint a többi verzió pedig több dolgot lehetséges megcsinálni a legújabb verziókkal. De ez attól függ mennyire vágja az eszed az egész MySQL -t.. ha jól akkor értelme van átírni.. ha semmit akkor maradj inkább az R6 -nál.. nálam szintén ez a probléma.. nem tudok rájönni a logikájára de az R6 -nál pedig simán megy. :D Good luck.  ;)
 
[/quote]
Nem az a legjobb és legújabb plugin. Az az R38-as plugin. Az R6 és az R7 szépen szólva nagyon régi.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: doboka98 - 2014. Március 30. - 09:40:49
Lenne egy olyan kérdésem, hogy megéri R7-re építeni? Ezt azért kérdem, mert épp most írtam át a szerverem fájlmentésrõl R6-ra. Ahogy olvastam az R7 10-20x gyorsabb, mint az R6. Szóval megéri arra áttérni? Megmondom õszintén engem nem igazán zavar, ha a mód indításakor fél másodperc helyett várok 3-4-et a betöltésre. Meg nekem bonyolultabbnak tûnik az R7.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: [(The_Pro_Kari)] - 2014. Március 30. - 09:43:21
Bonyolultabb is de szerintem megéri. És ha már áttérsz a újabb mysql-re akkor R38-ra térj át szerintem.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2014. Április 05. - 08:39:49
Idézetet írta: doboka98 date=1396165249\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Lenne egy olyan kérdésem, hogy megéri R7-re építeni? Ezt azért kérdem, mert épp most írtam át a szerverem fájlmentésrõl R6-ra. Ahogy olvastam az R7 10-20x gyorsabb, mint az R6. Szóval megéri arra áttérni? Megmondom õszintén engem nem igazán zavar, ha a mód indításakor fél másodperc helyett várok 3-4-et a betöltésre. Meg nekem bonyolultabbnak tûnik az R7.
 
Megérni persze, hogy megéri átírni mivel a legjobb és legújabb plugin. Én maradok az R6 -nál mivel szerintem egyszerû és sokkal könnyebb mint a többi verzió pedig több dolgot lehetséges megcsinálni a legújabb verziókkal. De ez attól függ mennyire vágja az eszed az egész MySQL -t.. ha jól akkor értelme van átírni.. ha semmit akkor maradj inkább az R6 -nál.. nálam szintén ez a probléma.. nem tudok rájönni a logikájára de az R6 -nál pedig simán megy. :D Good luck.  ;)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Dfoglalo - 2014. Április 05. - 14:17:24
Idézetet írta: ZyZu. date=1396679989\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic


Lenne egy olyan kérdésem, hogy megéri R7-re építeni? Ezt azért kérdem, mert épp most írtam át a szerverem fájlmentésrõl R6-ra. Ahogy olvastam az R7 10-20x gyorsabb, mint az R6. Szóval megéri arra áttérni? Megmondom õszintén engem nem igazán zavar, ha a mód indításakor fél másodperc helyett várok 3-4-et a betöltésre. Meg nekem bonyolultabbnak tûnik az R7.
 
Megérni persze, hogy megéri átírni mivel a legjobb és legújabb plugin. Én maradok az R6 -nál mivel szerintem egyszerû és sokkal könnyebb mint a többi verzió pedig több dolgot lehetséges megcsinálni a legújabb verziókkal. De ez attól függ mennyire vágja az eszed az egész MySQL -t.. ha jól akkor értelme van átírni.. ha semmit akkor maradj inkább az R6 -nál.. nálam szintén ez a probléma.. nem tudok rájönni a logikájára de az R6 -nál pedig simán megy. :D Good luck.  ;)
 
[/quote]
Nem az a legjobb és legújabb plugin. Az az R38-as plugin. Az R6 és az R7 szépen szólva nagyon régi.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: adamvoke - 2014. Június 25. - 19:36:15
Zsir
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: thomastopies1 - 2014. Június 28. - 18:37:16
Idézetet írta: Dfoglalo date=1396700244\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Nem az a legjobb és legújabb plugin. Az az R38-as plugin. Az R6 és az R7 szépen szólva nagyon régi.
 
https://github.com/pBlueG/SA-MP-MySQL/releases
Sõt, van már R39-es is. Az R33-tól kezdve van ORM, ami ezt az egészet nagyon megkönnyíti.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: KovaNovik - 2014. Július 24. - 14:43:36
Könnyebb, de kevésbé testreszabható.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Tony_Cole - 2014. Július 29. - 23:51:15
Ez nagyon durva leszedem és kipróbálom :) Szép! :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: president - 2014. Augusztus 08. - 05:00:55
Elég jól scriptel a gyerek :D:D
Amúgy tökéletes ment a +
 :yes: :yes: :yes: :yes: :yes: :yes:
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Blez - 2015. Április 14. - 17:51:02
Valaki fel tudná \"éleszteni\" a letöltési linket ?  :confused:
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZSOLTI99 - 2015. Április 14. - 17:57:02
Tessék a link: http://188.226.147.231/SAMP/MySQL_2.0.txt
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Blez - 2015. Április 14. - 19:25:01
Köszi. :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: kurta999 - 2016. Január 11. - 03:40:14
Remélem még maga a script működőképes  ;D
Majd talán korszerűsítek rajta kicsit, ha látom értelmét, hogy használjátok.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2016. Június 03. - 20:13:45
regisztráció tökéletesen de az automatikus bejelentkezés hibás, kéri, hogy regisztrálj megint.. miközben regisztrálva vagy.. :D
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Flash - 2016. Június 03. - 22:58:00
majd a bableves mellé viszek neki laptopot.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2016. Június 04. - 09:45:37
https://github.com/kurta999/MySQL-Register-Login-SaveStats
Ez a verzió hiba nélkül működik.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2016. Június 04. - 11:00:57
Idézetet írta: .::David::. date=1465026337\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
https://github.com/kurta999/MySQL-Register-Login-SaveStats
Ez a verzió hiba nélkül működik.
 
Ugyan olyan hibas mint ez a kod .. :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2016. Június 04. - 11:06:33
Teszteltem. Kód nem hibás valoszinű hogy nálad van akkor valamilyen hiba
Adatbázisba létrehozza a felhasználódat?
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2016. Június 04. - 19:28:31
Mindent jól csinálok. :D Nekem akkor is hibás, nem szerkesztettem a kódot, beírtam a megfelelő adatokat, létrehoztam az adatbázist, bekapcsolom a szervert, felmegyek, regisztrálok, lelépek, újracsatlakozok és amikor megint felmegyek a szerverre az automatikus bejelentkezésnél bejelentkezik de kéri, hogy regisztráljak megint miközben van már egy létrehozott karakterem a szerveren. Engemet nem nagyon érdekel, csak gondoltam szólok, hogy hibás.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Stewie - 2016. Június 04. - 19:31:32
nekem is hibátlanul működik
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Pedró - 2016. Június 04. - 19:36:02
nekem is hibátlanul működik
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2016. Június 26. - 00:53:45
Idézetet írta: Pedró date=1465061762\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
nekem is hibátlanul működik
 
szerintem le sem tesztelted a kódot rendesen vagy egyáltalán
 

https://github.com/kurta999/MySQL-Register-Login-SaveStats
Ez a verzió hiba nélkül működik.
 
[/quote]
Ugyan olyan hibás a kód. Kövesd az utasításomat és meglátod ugyan azt a hibát fogod te is kapni. Töltsd fel a táblákat az adatbázisra üresen természetesen, töltsd ki az adatokat a csatlakozáshoz és indítsd el a szervert a regisztrációs rendszerrel. Lépj fel és regisztrálj be, regisztráció sikeres lesz majd lépj ki amikor lespawnoltál. Menj a phpMyAdmin -ba és meglátod, hogy a neved sikeresen regisztrálva lesz, módosítsd az IP címet. Nekem házi szerveren 127.0.0.1 lesz és átírod mondjuk. 86.312.2.3.2112 -re mindegy milyen csak írd át és lépj fel megint. Mit fogsz látni? A regisztrációt megint. :D Ha beregisztrálsz akkor kickel a szerver mivel már létezik olyan regisztráció az adatbázisban. Valáhá, ezt fogod megint látni beregisztrálva xd
 
\"2343XiZ.png\"
 
Már hibakódot is kapok vissza. [01:25:30] [WARNING] CMySQLResult::GetRowData - invalid row (\'0\') or field index (\'0\')
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2016. Június 26. - 08:15:58
Ha nagyon szeretnéd még videóra is felvehetem hogy hiba nélkül működik.



\"sa-mp-090.png\"
\"sa-mp-092.png\"
\"sa-mp-093.png\"
 
Kódban nincs hiba.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: Pedró - 2016. Június 26. - 08:17:31
Nekem is tökéletesen működik.
ZyZu csak szeretné lejáratni kurta999-et, régóta szúrja már a szemét, nagyobb puccsokat is tervez ellene. Biztos forrásból értesültem ezekről.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2016. Június 26. - 08:46:29
Idézetet írta: .::David::. date=1466921758\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic
Ha nagyon szeretnéd még videóra is felvehetem hogy hiba nélkül működik.



\"sa-mp-090.png\"
\"sa-mp-092.png\"
\"sa-mp-093.png\"
 
Kódban nincs hiba.
 
megcsináltad azt amit én leírtam neked? itt nem a kód hibáról van szó.. kód hiba nincsen de ha megváltoztatod az IP címedet akkor bejelentkezik automatikusan és regisztrálni is kell megint
 

Nekem is tökéletesen működik.
ZyZu csak szeretné lejáratni kurta999-et, régóta szúrja már a szemét, nagyobb puccsokat is tervez ellene. Biztos forrásból értesültem ezekről.
 
[/quote]
Pedró, húzz el a pics*ba xd
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: .::David::. - 2016. Június 26. - 08:54:42
Igen megcsináltam azt amit leírtál. localhoston és vps-en sem írt semmi hibát és nem is kérte hogy regisztráljak megint
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2016. Június 26. - 08:58:18
\"Ihi7UmH.png\"
 
Jó, akkor nem hibás.. csak nekem csinálja ezt ezzel a kóddal, ok. Nem módosítottam pedig rajta semmit, sima szkriptként használom.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ᗩωєѕσмє - 2016. Június 26. - 08:59:35
van még 1000 fajta reg.system, be ne szarjatok már ezen az egyen
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2016. Június 26. - 20:29:17
Furcsa, tudod mit csináltam én másképp? Te filterscriptként indítod el, grandlarc móddal.. akkor nekem is tökéletesen működik, de ha átírod az OnFilterScriptInit -et, OnGameModeInit -re/ra akkor nem működik a bejelentkezés. :) Elfelejtettem neked ezt leírni, hogy én ennyit módosítottam rajta csak, hogy gamemodeként indítom el.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: lackos888 - 2016. Június 26. - 20:43:46
Idézetet írta: ƒeheristi97 date=1466895225\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"3791\" data-ipsquote-contentclass=\"forums_Topic


nekem is hibátlanul működik
 
szerintem le sem tesztelted a kódot rendesen vagy egyáltalán
 

https://github.com/kurta999/MySQL-Register-Login-SaveStats
Ez a verzió hiba nélkül működik.
 
[/quote]
Ugyan olyan hibás a kód. Kövesd az utasításomat és meglátod ugyan azt a hibát fogod te is kapni. Töltsd fel a táblákat az adatbázisra üresen természetesen, töltsd ki az adatokat a csatlakozáshoz és indítsd el a szervert a regisztrációs rendszerrel. Lépj fel és regisztrálj be, regisztráció sikeres lesz majd lépj ki amikor lespawnoltál. Menj a phpMyAdmin -ba és meglátod, hogy a neved sikeresen regisztrálva lesz, módosítsd az IP címet. Nekem házi szerveren 127.0.0.1 lesz és átírod mondjuk. 86.312.2.3.2112 -re mindegy milyen csak írd át és lépj fel megint. Mit fogsz látni? A regisztrációt megint. :D Ha beregisztrálsz akkor kickel a szerver mivel már létezik olyan regisztráció az adatbázisban. Valáhá, ezt fogod megint látni beregisztrálva xd
 
\"2343XiZ.png\"
 
Már hibakódot is kapok vissza. [01:25:30] [WARNING] CMySQLResult::GetRowData - invalid row (\'0\') or field index (\'0\')
 
[/quote]
Te hülye ez az autologin Hülyeséget beszéltem. Nem tudom, hogy ez neked hogy jön össze. Úgyérzem túlságosan új plugint használsz.
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: ZyZu. - 2017. Március 11. - 22:45:08
https://github.com/ZyZu/MySQL-Register-Login-SaveStats
 
Nem tudom ha valakit érdekelne -e, de átírtam a szkriptet r41-2 verzióra mivel használom a kódot én is. :)
Cím: MySQL Regisztráció rendszer v3.0 (R38-R39 plugin támogatás)
Írta: robdan00 - 2017. Március 28. - 21:56:37
Nagyon tetszik :)