Szerző Téma: Adatok eltárolása külön táblában. | MySQL r38 |  (Megtekintve 2690 alkalommal)

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Dátum: 2014. Október 11. - 04:13:04 »
+5
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! :)
 


« Utoljára szerkesztve: 2014. Október 11. - 05:13:08 írta ZyZu. »

Nem elérhető gbr333

  • 670
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #1 Dátum: 2014. Október 11. - 07:40:26 »
0
Gratulálok ! :)

Nem elérhető anGeL

  • Adminisztrátor
  • 2158
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #2 Dátum: 2014. Október 11. - 07:40:52 »
+2
Gratulálok, hasznos, és profi script.  :)  :king:

Nem elérhető Lofoli

  • 296
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #3 Dátum: 2014. Október 11. - 12:49:42 »
0
Jó lett GG!!
 ;D ;D

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #4 Dátum: 2014. Október 11. - 13:30:33 »
0
Nem is ismertem eddig ezt a COLLATE dolgot, viszont nagyon hasznos.

Nem elérhető scripter01

  • 1035
  • Ex Moderálisan Globális
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #5 Dátum: 2014. Október 11. - 19:50:05 »
0
Gratulálok ZyZu, ez valami fantasztikus :D

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #6 Dátum: 2014. Október 11. - 20:32:26 »
0
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!

Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #7 Dátum: 2014. Október 12. - 00:23:06 »
0
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];

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #8 Dátum: 2014. Október 12. - 00:36:41 »
0
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!  ^-^

Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #9 Dátum: 2014. Október 13. - 22:32:27 »
0
Én adnám a + ha tudnám, hogy kell xdddd amúgy szép munka

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #10 Dátum: 2014. Október 13. - 23:05:46 »
0
[gmod]50 hozzászólástól és 50 órától lehet.[/gmod]

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #11 Dátum: 2014. Október 14. - 07:17:56 »
0
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:

Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #12 Dátum: 2015. Június 29. - 21:34:37 »
0
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 ?

Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #13 Dátum: 2015. Július 03. - 11:27:23 »
0
Jó lett :D Felhasználom ha nem probléma
;D

Adatok eltárolása külön táblában. | MySQL r38 |
« Válasz #14 Dátum: 2015. Július 03. - 11:41:10 »
+1
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

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal