Szerző Téma: SMF - Belépés rendszer  (Megtekintve 3744 alkalommal)

SMF - Belépés rendszer
« Dátum: 2013. július 10. - 04:27:41 »
+14 Show voters
Hali all :D

Elkészítettem nektek egy SMF alapon futó belépés rendszert.


Regisztrálni az SMF Fórumon keresztûl kell, és csak utána tudsz belépni a szerverre.


Remélem mindenkinek elcsavarja a fejét :P


Információk:


Elkészítési idõ: kb. 15-20perc


Felhasznált Includék: a_samp, zcmd, sscanf, mySQL(R6), MD5


Parancsok száma: 1
(Nem egy komplett regisztráció/belépés rendszer hoztam adminrendszerrel, hanem csak egy kiindulási pontot)
 

//=== INCLUDÉK ===//
#include <a_samp>
#include <zcmd>
#include <sscanf>
#include <mysql_r6>
#include <MD5>
//=== DEFINICIÓK ===//
#define SMFTABLA       \"fórumodelõtagja_members\" //Amilyen elõtaggal telepítetted fel, azt kell odaírni
#define SMFCSOP            \"fórumodelõtagja_membergroups\" //Amilyen elõtaggal telepítetted fel, azt kell odaírni
#define MYSQL_HOST       \"mySQL IP Cím\"
#define MYSQL_USER       \"mySQL Felhasználó\"
#define MYSQL_PW       \"mySQL Jelszó\"
#define MYSQL_DB           \"mySQL Adatbázis\"
#define CSOPSZAM       10
#define WEBOLDAL       \"Weboldalad címe\"
//DIALOG
#define LOGIN          1
//GYORS BILLENYTÛ
#define chrtolower(%1) \\
(((%1) > 0x40 && (%1) <= 0x5A) ? ((%1) | 0x20) : (%1))
#define COLOR_GREEN      0x33FF33AA
#define COLOR_RED      0xFF0000AA
//=== NEWEK ===//
new Query[100];
new pw[MAX_PLAYERS];
new belepve[MAX_PLAYERS];
new FormatText[128];
public OnFilterScriptInit()
{
    mysql_debug(0); //Hostolt szervernél érdemes kikapcsolni. (Nem pingeli teli a szervert)
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PW);
if( mysql_ping() == 1 )
{
print(\"<1> [MySQL] A kapcsolat létrejött. <1>\");
}
else
{
print(\"<1> [MySQL] A kapcsolat nem jött létre. <1>\");
SendRconCommand(\"gmx\");
}
return 1;
}
public OnPlayerConnect(playerid)
{
nullazas(playerid);
    format(Query,100,\"SELECT * FROM \"SMFTABLA\" WHERE real_name=\'%s\'\",JatekosNeve(playerid));
mysql_query(Query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Szia!\\n\\nTe már regisztráltál a weblapunkon.\\nJelentkezz be:\", \"Belépés\", \"Mégse.\");
}
else
{
SendClientMessage(playerid,-1,\"Te még nem regisztráltál a \"WEBOLDAL\" oldalon. Regisztrálj, csak aztán tudsz játszani!\");
Kick(playerid);
}
mysql_free_result();
return 1;
}
public OnFilterScriptExit()
{
        return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == LOGIN)
{
if(response)
{
    new loginnev[64];
   format(loginnev,sizeof(loginnev),\"%s\",kisbetu(playerid));
   strcat(loginnev,inputtext);
   format(Query,sizeof(Query),\"SELECT * FROM \"SMFTABLA\" WHERE real_name = \'%s\' AND passwd = SHA1(\'%s\')\",JatekosNeve(playerid),loginnev);
   mysql_query(Query);
   mysql_store_result();
   if(mysql_num_rows() != 0)
   {
      SendClientMessage(playerid, COLOR_GREEN, \"A jelszó helyes. Karakter betöltve.\");
      format(FormatText,sizeof(FormatText),\"<INFO> %s sikeresen beirta a jelszavát, ezert beengedte a szerver. <INFO>\",JatekosNeve(playerid));
      print(FormatText);
      belepve[playerid] = 1;
   }
   else
   {
      pw[playerid] ++;
      if(pw[playerid] == 2)
      {
          SendClientMessage(playerid, COLOR_RED, \"Túl sok próbálkozás.\");
          format(FormatText,sizeof(FormatText),\"<INFO> %s rossz jelszot irt be ezért a szerver kidobta. <INFO>\",JatekosNeve(playerid));
         print(FormatText);
          Kick(playerid);
      }
      SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó.\");
      ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Szia!\\n\\nTe már regisztráltál a weblapunkon.\\nJelentkezz be:\", \"Belépés\", \"Mégse.\");
      mysql_free_result();
   }
} else { Kick(playerid);}
}
return 1;
}
public OnPlayerText(playerid,text[])
{
new rangtxt[24];
new szin[12];
for(new i = 1; i < CSOPSZAM; i++)
{
if(sqlint(playerid,\"id_group\") == i && sqlint(playerid,\"id_group\") != 0)
{
    format(Query,100,\"SELECT * FROM \"SMFCSOP\" WHERE id_group=%d\",i);
   mysql_query(Query);
   mysql_store_result();
   if(mysql_retrieve_row())
   {
      mysql_get_field(\"online_color\", szin);
      mysql_get_field(\"group_name\", rangtxt);
   }
   mysql_free_result();
        if(strfind(szin, \"#\", true) != -1) szin[strfind(szin, \"#\")] = \'{\';
   format(FormatText,sizeof(FormatText),\"%s < %s}%s {33AA33}>: {FFFFFF}%s\",JatekosNeve(playerid),szin,rangtxt,text);
   SendClientMessageToAll(COLOR_GREEN,FormatText);
   format(FormatText,sizeof(FormatText),\"<INFO> %s %s < %s >: %s <INFO>\",JatekosNeve(playerid),rangtxt,text);
   print(FormatText);
}
else if(sqlint(playerid,\"id_post_group\") == i && sqlint(playerid,\"id_group\") == 0)
{
    format(Query,100,\"SELECT * FROM \"SMFCSOP\" WHERE id_group=%d\",i);
   mysql_query(Query);
   mysql_store_result();
   if(mysql_retrieve_row())
   {
      mysql_get_field(\"online_color\", szin);
      mysql_get_field(\"group_name\", rangtxt);
   }
   mysql_free_result();
        if(strfind(szin, \"#\", true) != -1) szin[strfind(szin, \"#\")] = \'{\';
   format(FormatText,sizeof(FormatText),\"%s < %s}%s {33AA33}>: {FFFFFF}%s\",JatekosNeve(playerid),szin,rangtxt,text);
   SendClientMessageToAll(COLOR_GREEN,FormatText);
   format(FormatText,sizeof(FormatText),\"<INFO> %s %s < %s >: %s <INFO>\",JatekosNeve(playerid),rangtxt,text);
   print(FormatText);
}
}
return 0;
}
//PARANCSOK
CMD:admin_ad(playerid,params[])
{
if(sqlint(playerid,\"id_group\") == 1)
{
    new id,szint;
    if(sscanf(params,\"ui\",id,szint)) return SendClientMessage(playerid,-1,\"Használat: /adadmin [id][szint(0-3)]\");
    if(szint > 3 && szint < 0) return SendClientMessage(playerid,-1,\"A szint 0 és 3 között lehet.\");
    admin(id,szint);
    format(FormatText,sizeof(FormatText),\"%s %d adminjogot adott.\",JatekosNeve(playerid),szint);
    SendClientMessage(id,COLOR_RED,FormatText);
    format(FormatText,sizeof(FormatText),\"%s %d adminjogot kapott.\",JatekosNeve(id),szint);
    SendClientMessage(playerid,COLOR_RED,FormatText);
    format(FormatText,sizeof(FormatText),\"<INFO> %s kinevezte %s nevû játékos %d szintû adminnak <INFO>\",JatekosNeve(playerid),JatekosNeve(id), szint);
print(FormatText);
} else SendClientMessage(playerid,-1,\"Nem vagy admin.\");
return 1;
}
//STOCKOK
stock admin(playerid,szint)
{
if(szint > 3 && szint < 0) return print(\"Admin adás error.\");
if(szint == 0) format(Query,100,\"UPDATE \"SMFTABLA\" SET id_group = 0 WHERE real_name=\'%s\'\",JatekosNeve(playerid));
else if(szint == 1) format(Query,100,\"UPDATE \"SMFTABLA\" SET id_group = 9 WHERE real_name=\'%s\'\",JatekosNeve(playerid));
else if(szint == 2) format(Query,100,\"UPDATE \"SMFTABLA\" SET id_group = 2 WHERE real_name=\'%s\'\",JatekosNeve(playerid));
else if(szint == 3) format(Query,100,\"UPDATE \"SMFTABLA\" SET id_group = 1 WHERE real_name=\'%s\'\",JatekosNeve(playerid));
mysql_query(Query);
return szint;
}
stock sqlint(playerid,mezo[])
{
new szoveg[54];
    format(Query,100,\"SELECT * FROM \"SMFTABLA\" WHERE real_name=\'%s\'\",JatekosNeve(playerid));
mysql_query(Query);
mysql_store_result();
if(mysql_retrieve_row())
{
mysql_get_field(mezo, szoveg);
}
mysql_free_result();
return strval(szoveg);
}
stock sql(playerid,mezo[])
{
new szoveg[54];
    format(Query,100,\"SELECT * FROM \"SMFTABLA\" WHERE real_name=\'%s\'\",JatekosNeve(playerid));
mysql_query(Query);
mysql_store_result();
if(mysql_retrieve_row())
{
mysql_get_field(mezo, szoveg);
}
mysql_free_result();
return szoveg;
}
stock JatekosNeve(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}
stock nullazas(playerid)
{
pw[playerid] = 0;
belepve[playerid] = 0;
}
stock kisbetu(playerid)
{
new string[128];
format(string,sizeof(string),\"%s\",JatekosNeve(playerid));
        new
                retStr[128],
                i,
                j;
        while ((j = string)) retStr[i++] = chrtolower(j);
        retStr = \'\\0\';
        return retStr;
}

 
Pastebin: Katt

Köszönöm, hogy végig olvastátok ezt az \"óriási\" leírást.:D


Na peace all 8)
« Utoljára szerkesztve: 2013. július 10. - 05:06:48 írta TheStaner »

SMF - Belépés rendszer
« Válasz #1 Dátum: 2013. július 10. - 07:05:44 »
0 Show voters
Köszi, ezt felhasználom ;)

SMF - Belépés rendszer
« Válasz #2 Dátum: 2013. július 10. - 07:22:53 »
0 Show voters
Nincs mit, pont azért csináltam ;)

xD1999

  • Vendég
SMF - Belépés rendszer
« Válasz #3 Dátum: 2013. július 10. - 08:07:24 »
0 Show voters
Gyönyörû nagyon teccik + ment ;)

SMF - Belépés rendszer
« Válasz #4 Dátum: 2013. július 10. - 08:32:20 »
0 Show voters
Köszönöm.:)

Nem elérhető instant

  • 2778
  • ZzzzzZ
    • Profil megtekintése
SMF - Belépés rendszer
« Válasz #5 Dátum: 2013. július 10. - 09:35:37 »
0 Show voters
Müködik is ?:D

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
SMF - Belépés rendszer
« Válasz #6 Dátum: 2013. július 10. - 09:50:03 »
0 Show voters
Idézetet írta: ZzzzzZ date=1373441737\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"39508\" data-ipsquote-contentclass=\"forums_Topic
Müködik is ?:D
 
Neeeem, azért rakta fel hogy szopasson bennünket!  :laugh:


Amúgy nagyon szép lett. Gratulálok!  8)

SMF - Belépés rendszer
« Válasz #7 Dátum: 2013. július 10. - 11:54:18 »
0 Show voters
Idézetet írta: ZzzzzZ date=1373441737\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"39508\" data-ipsquote-contentclass=\"forums_Topic
Müködik is ?:D
 
Ha nem mûködne, értelemszerûen nem raktam volna fel :DD
 

 

Müködik is ?:D
 
[/quote]
Neeeem, azért rakta fel hogy szopasson bennünket!  :laugh:


Amúgy nagyon szép lett. Gratulálok!  8)
 
[/quote]
Köszkee :D

SMF - Belépés rendszer
« Válasz #8 Dátum: 2013. július 10. - 12:40:53 »
0 Show voters
Szép munka,gratulálok,biztosan fel fogom használni

Nem elérhető EnterR

  • Globális moderátor
  • 4223
  • dawg
    • Profil megtekintése
SMF - Belépés rendszer
« Válasz #9 Dátum: 2013. július 10. - 18:08:01 »
0 Show voters
Most félretéve azt, hogy multi-acc, elég tuti lett a script, gratulálok :D

SMF - Belépés rendszer
« Válasz #10 Dátum: 2013. július 10. - 23:10:22 »
0 Show voters
ON: Köszi mindenkinek :D


OFF: Mért lenne cink? xd

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
SMF - Belépés rendszer
« Válasz #11 Dátum: 2013. július 11. - 09:38:12 »
0 Show voters
Nagyon király lett nekem tetszik épp r6 plugint használok lehetséges, hogy felhasználóm! :)
« Utoljára szerkesztve: 2013. július 11. - 10:12:40 írta Cannonn »

SMF - Belépés rendszer
« Válasz #12 Dátum: 2013. július 11. - 12:36:52 »
0 Show voters
Köszi, és nyugodtam :D

Nem elérhető csont

  • 153
    • Profil megtekintése
SMF - Belépés rendszer
« Válasz #13 Dátum: 2013. július 13. - 19:27:26 »
0 Show voters
Nagyon jó lett !  ;)  :) Valakitõl kérhetnék egy linket a MySql-hez mert nem találom sehol a gépemen :/ ? 

Nem elérhető Nátha

  • 1036
    • Profil megtekintése
SMF - Belépés rendszer
« Válasz #14 Dátum: 2013. július 13. - 19:43:50 »
0 Show voters
Mármint a MySQL pluginhez linket ? Mert akkor: http://forum.sa-mp.com/showthread.php?t=122983

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal