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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: .::David::. - 2013. Március 27. - 16:07:30

Cím: mysql banolás lekérdezése
Írta: .::David::. - 2013. Március 27. - 16:07:30
Sziasztok
Segítséget szeretnék kérni hogy hogy is lehetne lekérni hogy banolva van-e a játékos de valamiért mindig azt írja hogy banolva van akkor is amikor nincs
így próbáltam leellenõrizni:
 
    stock BanolvaVan(playerid)
    {
        new IP[16];
        GetPlayerIp(playerid, IP, sizeof(IP));
        format(g_szQuery, 256, \"SELECT * FROM `bans` WHERE `player` = \'%s\' OR `ip`=\'%s\'\", pName(playerid), IP);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        if(mysql_num_rows() != 0)
        {
            SendClientMessage(playerid, RED,\"=========BANNOLVA VAGY==========\");
        }
        return 1;
    }
Cím: mysql banolás lekérdezése
Írta: gergo107 - 2013. Március 27. - 16:26:43
A mysql_function_query alá:
 
samp_mysql_store_result();
Cím: mysql banolás lekérdezése
Írta: .::David::. - 2013. Március 27. - 17:02:57
Idézetet írta: gergo107 date=1364398003\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"35323\" data-ipsquote-contentclass=\"forums_Topic
A mysql_function_query alá:
 
samp_mysql_store_result();

 

ez nem  mysql_store_result(); akar lenni?
E: nincs semmi változás, ugyanúgy kiírja hogy banolva vagyok
Cím: mysql banolás lekérdezése
Írta: gergo107 - 2013. Március 27. - 17:55:56
Attól függ hogy melyik mysql-t használod, ha az alap akkor samp_mysql_store_result ha meg a másik akkor pedig simán mysql_store_result

Dupla hozzászólás automatikusan összefûzve. ( 2013. Március 27. - 17:58:25 )

a
return 1;

-et a SendClientMessage alá tedd, és ahol MOST van a
return 1;

 oda pedig
return 0;

-át

Dupla hozzászólás automatikusan összefûzve. ( 2013. Március 27. - 17:59:27 )

stock BanolvaVan(playerid)
    {
        new IP[16];
        GetPlayerIp(playerid, IP, sizeof(IP));
        format(g_szQuery, 256, \"SELECT * FROM `bans` WHERE `player` = \'%s\' OR `ip`=\'%s\'\", pName(playerid), IP);
        mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
        if(mysql_num_rows() != 0)
        {
            SendClientMessage(playerid, RED,\"=========BANNOLVA VAGY==========\");
return 1;
        }
        return 0;
    }
Cím: mysql banolás lekérdezése
Írta: .::David::. - 2013. Március 27. - 18:17:56
még mindig semmi változás
azt írja hogy banolva vagyok pedig a nevem nincs a bans táblában
Cím: mysql banolás lekérdezése
Írta: gergo107 - 2013. Március 27. - 19:07:09
Hát pedig így nem nagyon tudok segíteni, talán ha ez egészet látnám
Cím: mysql banolás lekérdezése
Írta: Zsolesszka - 2013. Március 27. - 20:00:43
Az ip címed viszont lehet hogy ott van.
 
OR `ip`=\'%s\'[/quote]  (vagy)
Cím: mysql banolás lekérdezése
Írta: Benx - 2013. Március 27. - 20:29:55
Próbáld meg nyugodtan, ha nem jó akkor bocs.

http://weblabor.hu/forumok/temak/113411
Cím: mysql banolás lekérdezése
Írta: .::David::. - 2013. Március 28. - 08:14:52
Idézetet írta: gergo107 date=1364407629\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"35323\" data-ipsquote-contentclass=\"forums_Topic
Hát pedig így nem nagyon tudok segíteni, talán ha ez egészet látnám
 
Mond hogy mi kell és bemásolom
 

Az ip címed viszont lehet hogy ott van.
 
OR `ip`=\'%s\'[/quote]  (vagy)
[/quote]
Tesztelés elõtt kiürítettem az egész bans táblát úgyhogy nincs ip se
Cím: mysql banolás lekérdezése
Írta: .::David::. - 2013. Március 30. - 11:53:09
az lehetséges hogy azért nem mûködik mert nem jól hoztam létre a bans táblát?



CREATE TABLE IF NOT EXISTS `bans` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `player` varchar(24) NOT NULL,
  `reg_id` int(11) NOT NULL,
  `ip` varchar(16) NOT NULL,
  `admin` varchar(24) NOT NULL,
  `indok` text NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
Cím: mysql banolás lekérdezése
Írta: Zsolesszka - 2013. Március 30. - 12:15:52
Melyik verziót használod mysql pluginból?
Úgy látom hogy a vissza csatlakozás elõtt a plugin nem állítja le a futást így lekési a visszatérést.
Thread módon tudod csak megoldani.
Szóval egyelõre a return 0 return 1-el nem tudod megvalósítani.
Thread megoldásban meg egyszerûen kihelyezed azokat a dolgokat amiket szeretnéd hogy történjenek.
 
stock 
BanolvaVan(playerid)
{
new
IP[16];
GetPlayerIp(playerid, IP, sizeof(IP));
format(g_szQuery, 256, \"SELECT * FROM `bans` WHERE `player` = \'%s\' OR `ip`=\'%s\'\", pName(playerid), IP);
mysql_function_query(1, g_szQuery, false, \"CheckBan\", \"d\", playerid);  // ..., a playerid érték tovább küldése is
}
forward CheckBan(playerid);
public
CheckBan(playerid)
{
mysql_store_result();
if(mysql_num_rows() > 0)
{
SendClientMessage(playerid, RED,\"=========BANNOLVA VAGY==========\");
// SetTimer (  Kick(playerid)  // mert persze ezt is basszák javítani, de vissza-vissza kell nézni a fórumra újabb verzióért (jha majd egy év múlva talán)
} else {
     // LoginPlayer
}
mysql_free_result();
}
Cím: mysql banolás lekérdezése
Írta: .::David::. - 2013. Március 30. - 12:26:10
Idézetet írta: ɐʞzssǝlosz date=1364642152\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"35323\" data-ipsquote-contentclass=\"forums_Topic
Melyik verziót használod mysql pluginból?
Úgy látom hogy a vissza csatlakozás elõtt a plugin nem állítja le a futást így lekési a visszatérést.
Thread módon tudod csak megoldani.
Szóval egyelõre a return 0 return 1-el nem tudod megvalósítani.
Thread megoldásban meg egyszerûen kihelyezed azokat a dolgokat amiket szeretnéd hogy történjenek.
 
stock 
BanolvaVan(playerid)
{
new
IP[16];
GetPlayerIp(playerid, IP, sizeof(IP));
format(g_szQuery, 256, \"SELECT * FROM `bans` WHERE `player` = \'%s\' OR `ip`=\'%s\'\", pName(playerid), IP);
mysql_function_query(1, g_szQuery, false, \"CheckBan\", \"d\", playerid);  // ..., a playerid érték tovább küldése is
}
forward CheckBan(playerid);
public
CheckBan(playerid)
{
mysql_store_result();
if(mysql_num_rows() > 0)
{
SendClientMessage(playerid, RED,\"=========BANNOLVA VAGY==========\");
// SetTimer (  Kick(playerid)  // mert persze ezt is basszák javítani, de vissza-vissza kell nézni a fórumra újabb verzióért (jha majd egy év múlva talán)
} else {
     // LoginPlayer
}
mysql_free_result();
}

 

Jó lett  :thumbsup:
nagyon szépen köszönöm  ;D