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! :)
Gratulálok ! :)
Gratulálok, hasznos, és profi script. :) :king:
Jó lett GG!!
;D ;D
Nem is ismertem eddig ezt a COLLATE dolgot, viszont nagyon hasznos.
Gratulálok ZyZu, ez valami fantasztikus :D
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!
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];
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! ^-^
Én adnám a + ha tudnám, hogy kell xdddd amúgy szép munka
[gmod]50 hozzászólástól és 50 órától lehet.[/gmod]
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:
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 ?
Jó lett :D Felhasználom ha nem probléma
;D
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
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. ;)
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é.
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. :)