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: ZyZu. - 2014. Október 11. - 04:13:04

Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: ZyZu. - 2014. Október 11. - 04:13:04
Hali! :wave:
Mivel már régóta publikáltam a fórumra ezért gondoltam, hogy feltöltöm ezt a rövid kis szkriptet. Elégé hasznos néha tiltásoknál vagy adatok lekérdezésénél mivel könnyen vissza lehet nézni vagy le lehet kérdezni a játékosoknak az összes széria számát vagy az IP címét. A szkript lényege, hogy eltárol minden kisebb adatot amit könnyen vissza tudsz nézni ha valaki kitiltasz a szerverrõl. Viszont, ennek a szkripnek még lesz egy kisebb illetve nagyobb fejlesztése mivel szeretnék idõvel beépíteni egy tiltási funkciót is ami MySQL adattárolással fog mûködni. Számomra ez a széria szám tárolása egy fontos dolog.. mivel van olyan játékos aki mindig csak váltogatja a széria számát vagy az IP címét akkor több lesz lementve az adatbázisban és könnyeben lehet kideríteni, hogy tényleg az az illetõ vagy sem. Viszont én úgy csináltam a szerveremben, hogy csak ha bejelentkezik a játékos vagy regisztrál akkor mentse le ezeket a dolgokat.. szóval azt mindenki próbálja megoldani a saját regisztrációs rendszerével. ;)
Mint mondtam, ez egy rövid kis szkript amit tovább szeretnék fejleszteni idõvel. Még nincs benne semmi extra dolog csak a mentés és egy lekérdezés. Idõvel szeretnék csinálni egy parancsot amiben ki fogja listázni a játékosnak a széria számát az IP címét és a nevét. Viszont felszeretném hívni a szkripterek figyelmét, hogy egy új sorba ajánlott bemásolni ezt az egy native részt a_samp.inc fájlba, mivel ha nem szerepel benne akkor hibás lesz pár sor nektek a kódban.


native gpci( playerid, const serial[ ], maxlen );

 


#include  a_samp
#include  a_mysql
new       dbHandle;
new       query[ 1128 + 1 ];
#define   MYSQL_HOST  \"Kiszolgáló\"
#define   MYSQL_USER  \"Felhasználó\"
#define   MYSQL_PASS  \"Jelszó\"
#define   MYSQL_DATA  \"Adatbázis\"
public    OnFilterScriptInit( ) {
          dbHandle = mysql_connect( MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS );
  if( !mysql_errno( ) ) {
          print( \"[MYSQL]: Sikeresen csatlakoztál \"MYSQL_DATA\" nevû adatbázishoz!\" );
          } else {
          print( \"[MYSQL]: Sikertelen csatlakozás \"MYSQL_DATA\" nevû adatbázishoz!\" ); }
          return 1;
}
public    OnPlayerConnect( playerid ) {
  mysql_format( dbHandle, query, sizeof( query ), \"INSERT INTO `information` ( `name`, `ip`, `serial` ) VALUES ( \'%s\', \'%s\', \'%s\' )\", Name( playerid ), IP( playerid ), Serial( playerid ) );
          mysql_query( dbHandle, query );
          return 1;
}
stock     IP( playerid ) {
          new ipnumber[ 16 + 1 ];
          GetPlayerIp( playerid, ipnumber, sizeof( ipnumber ) );
          return ipnumber;
}
stock     Name( playerid ) {
          new namecharacter[ 24 + 1 ];
          GetPlayerName( playerid, namecharacter, sizeof( namecharacter ) );
          return namecharacter;
}
stock     Serial( playerid ) {
  new serialnumber[ 128 + 1 ];
          gpci( playerid, serialnumber, sizeof( serialnumber ) );
          return serialnumber;
}

 



CREATE TABLE IF NOT EXISTS `information` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(24) COLLATE utf8_unicode_ci NOT NULL,
`ip` varchar(24) COLLATE utf8_unicode_ci NOT NULL,
`serial` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`)
) ENGINE = InnoDB  DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci AUTO_INCREMENT = 1;

 



Külön szkriptként nem teszteltem a szerveremen, viszont a módban ugyan így van és minden normálisan mûködik, szóval ezzel sem lesz semmi probléma! :)
 


Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: gbr333 - 2014. Október 11. - 07:40:26
Gratulálok ! :)
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: anGeL - 2014. Október 11. - 07:40:52
Gratulálok, hasznos, és profi script.  :)  :king:
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: Lofoli - 2014. Október 11. - 12:49:42
Jó lett GG!!
 ;D ;D
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: KovaNovik - 2014. Október 11. - 13:30:33
Nem is ismertem eddig ezt a COLLATE dolgot, viszont nagyon hasznos.
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: scripter01 - 2014. Október 11. - 19:50:05
Gratulálok ZyZu, ez valami fantasztikus :D
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: Flash - 2014. Október 11. - 20:32:26
1128 + 1[/quote]
fuck logic.. ezt a megoldást sose értettem.. hát most 1128 + 1 az nem 1129? Nem értem, valami elmagyarázná pontosan? :)
Egyébként hasznos lehet mások számára, amit megosztottál velünk ZyZu gratula!
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: blackdog476 - 2014. Október 12. - 00:23:06
Idézetet írta: Flash date=1413052346\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50961\" data-ipsquote-contentclass=\"forums_Topic

1128 + 1
fuck logic.. ezt a megoldást sose értettem.. hát most 1128 + 1 az nem 1129? Nem értem, valami elmagyarázná pontosan? :)
Egyébként hasznos lehet mások számára, amit megosztottál velünk ZyZu gratula!
 
[/quote]
Én ennél a prímtényezõs felbontásra gondolok, hasonlóra pl:
new str[1+2+4+8+16+32+64+128];
vagy például
new str[42]; Szerintem sokkal jobban néz ki az, hogy new str[32+8+2];
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: ZyZu. - 2014. Október 12. - 00:36:41
Az én szemszögembõl szebb úgy.. tudom, hogy nincs semmi értelme, hogy úgy írom de sokkal jobb a változó kinézete. Hamarosan frissítem a szkriptet pár fejlesztéssel! :) Köszönöm mindenkinek a pozitív hozzászólását!  ^-^
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: HuNBoY - 2014. Október 13. - 22:32:27
Én adnám a + ha tudnám, hogy kell xdddd amúgy szép munka
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: Dfoglalo - 2014. Október 13. - 23:05:46
[gmod]50 hozzászólástól és 50 órától lehet.[/gmod]
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: ZyZu. - 2014. Október 14. - 07:17:56
Hamarosan várható a következõ verzió része is.. egyenlõre hozzáírok egy tiltási funkciót illetve egy tiltást feloldás parancsot is. Remélem még lesz idõm rá, hogy megcsináljam a többi dialogús részt is.. amit kiterveltem. :D Köszönöm a visszajelzéseket srácok!  :whistle:
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: Nooname - 2015. Június 29. - 21:34:37
base.pwn(41) : error 017: undefined symbol \"gpci\"
base.pwn(41) : warning 202: number of arguments does not match definition
\\base.pwn(39) : warning 203: symbol is never used: \"playerid\"
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
 nekem ezeket a hibákat írja ki ! tud valaki segiteni ?
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: folnoraa - 2015. Július 03. - 11:27:23
Jó lett :D Felhasználom ha nem probléma
;D
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: blackdog476 - 2015. Július 03. - 11:41:10
Idézetet írta: folnoraa date=1435915643\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50961\" data-ipsquote-contentclass=\"forums_Topic
Felhasználom ha nem probléma
 
De, nagyon nagy probléma! Ugyanis ez csak dísznek van itt a fórumon, és nem azért, hogy bárki bármire használja.




Egyébként arra gondoltam, hogy lehetne hozzáadni egy time oszlopot, ami azt tárolná hogy az adott player mikor járt fent. Így nem kellene minden fellépő játékos után új sort beíratni feleslegesen
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: CANNONN - 2015. Július 03. - 12:14:51
Nem felesleges, mivel így kiderül egy adott felhasználó minden serialja, azaz akár az is, hogy hány gépről játszik. ;)
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: blackdog476 - 2015. Július 03. - 14:30:37
Idézetet írta: Cannonn date=1435918491\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50961\" data-ipsquote-contentclass=\"forums_Topic
Nem felesleges, mivel így kiderül egy adott felhasználó minden serialja, azaz akár az is, hogy hány gépről játszik. ;)
 
Seriallal a torrentek világában semmire nem mész, letöltesz egy cracket és kiderül hogy ugyan az mint 30 másik playeré.
Cím: Adatok eltárolása külön táblában. | MySQL r38 |
Írta: ZyZu. - 2015. Július 04. - 14:34:03
Régen foglalkoztam vele, viszont elővehetem a kódokat és megcsinálhatom, tudtommal megígértem a szkript fejlesztését és frissítését ezelőtt pár évvel. :)