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!