Hallo zusammen,
ich habe vor für den nächsten Changelog ein schönes Beta Key System rein zu machen damit wenn der Server online geht die Leute nur sich mit Beta Key Registrieren können
hier mal der Anfang aber ich weiss einfach nicht weiter , eigentlich nur den Eingegebenen Key mit den Datenbank Keys überprüfen und dann den status auf 0(deaktiviert) setzen und alle die 1 sind (aktiviert) können noch benutzt werden.
hier mal der CODE
forward BetakeyCheck(key);
public BetakeyCheck(key)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows == 0)
{
return 1
}
return 1;
}
public UserCheck(playerid)
{
print("3");
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
new betaregstatus;
if(num_rows==0)
{ //Registrierung
if(register_status == 1)
{
new string[255];
if(!strfind(SpielerName(playerid),gBadName,true))
{
SendClientMessage(playerid,CL_HGRÜN,"Du wurdest gekickt weil du einen nicht erlaubten Namen hast. Oder du hast nicht erlaubte Zeichen im Namen.");
format(string, sizeof(string), "ADMCMD: %s wurde vom Server gekickt. Grund: Unerlaubter Name", SpielerName(playerid)); //macht einen String, %s ist der Name anderes Bsp. %d ist eine Zahl^^
SendClientMessageToAll(CL_KNALLROT,string);
KickPlayer(playerid);
return 0;
}
if(betastatus == 1 && betaregstatus == 0)
{
//betakey abfrage
print("beta key abfrage");
betaregstatus = 1;
printf("betaregstatus %i",betaregstatus);
new query[128];
format(query,sizeof(query),"SELECT key FROM betakey WHERE status='1'");
mysql_function_query(dbhandle,query,true,"BetakeyCheck","d",playerid);
//registrierung
return 1;
}
print("user check -> registrierung ip checken ohne dialog zeigen register");
new ip[16],query[128]; //hier stimmt die reihenfolge nicht!!!
GetPlayerIp(playerid,ip,sizeof(ip));
format(query,sizeof(query),"SELECT NAME FROM benutzer WHERE IP='%s'",ip);
mysql_function_query(dbhandle,query,true,"IPCHECK","d",playerid);
print("user check abgeschlossen");
//ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf MVS [BETA]","Bitte Registriere dich mit deinem Passwort.","Register","Close");
//Dein Register Zeugs
}
else if(register_status == 0)
{
SendClientMessage(playerid,-1,"Die Registrierung ist abgeschaltet");
KickPlayer(playerid);
}
}
else
{//Login
ShowPlayerDialog(playerid,DIALOG_LOGIN_MYSQL,DIALOG_STYLE_PASSWORD,"Login auf MVS [BETA] ","Bitte Logge dich mit deinem Passwort ein. ","Login","Close");
}
return 1;
}
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
SetPlayerColor(playerid,CL_GRAU);
TogglePlayerControllable(playerid,0);
print("0.0");
introstart(playerid);
//Register-System-MYSQL
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT DB_ID FROM benutzer WHERE NAME='%s'",name);
mysql_function_query(dbhandle,query,true,"UserCheck","i",playerid);
TextDrawShowForPlayer(playerid, Date);
return 1;
}
forward IPCHECK(playerid);
public IPCHECK(playerid)
{
if(cache_get_row_count() > 0)
{
print("doppelte ip");
new ip[16], query[128];
GetPlayerIp(playerid,ip,sizeof(ip));
//IP existiert dann kontrolle in der whitelist
format(query,sizeof(query),"SELECT NAME FROM whitelist WHERE IP='%s'",ip);
mysql_function_query(dbhandle,query,true,"WHITELISTCHECK","d",playerid);
print("Whitelist checken ergebnis abwarten");
return 1;
}
print("keine doppelte ip");
SCM(playerid,-1,"alles gut keine doppelte registrierung");
ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf MVS [BETA]","Bitte Registriere dich mit deinem Passwort.","Register","Close");
return 1;
}
forward WHITELISTCHECK(playerid);
public WHITELISTCHECK(playerid)
{
if(cache_get_row_count() < 1)
{
print("kein whitelist eintrag");
SCM(playerid,-1,"Du hast dich bereits mit dieser IP-Adresse Registriert.");
SCM(playerid,-1," Bei einem Multiaccount z.B. für Geschwister melde dich bitte bei Admins mit deiner IP.");
return KickPlayer(playerid);
}
print("2");
ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf MVS [BETA]","Bitte Registriere dich mit deinem Passwort.","Register","Close");
SCM(playerid,-1,"whitelist eintrag vorhanden registrierung fortsetzen");
print("WHITELIST check abgeschlossen");
return 1;
}
Vlt kann ja jemand helfen
Vielen dank im Vorraus