Hey, ich bräuchte ein Simples UCP, wo man sich einloggen kann, und dan seine Statistik sieht mit Skin, es sollte dem UCP von Grex ähneln, hier mein Script(ist Mysql von RFT)
/*
- Gui MySql Login und Register System
- Speichert: Morde, Tode und Geld
- © 2010 by Julian Glatter
Credits To: GStyleZ for his nice MySql Plugin
*/
//______Includes_______
#include <a_samp>
#include <a_mysql>
//______Define_________
#define MySql_Host "localhost"
#define MySql_User ""//User muss eingetragen werden
#define MySql_Password ""//Passwort muss eingetragen werden
#define MySql_Database ""//Database Name muss eingetragen werden
/* Colors */
#define Color_Green 0x33AA33AA
#define Color_White 0xFFFFFFAA
#define Color_Red 0xAA3333AA
/* Settings */
#define Max_Player_Login_Attemps 3 //Die Maximalen Login versuche
//______New _________
new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
//______________________________________________________________________________
public OnGameModeInit()
{
Connect_To_Database();
return 1;
}
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(mysql_CheckAccount(PlayerName[playerid]) != 0)
{
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Login", "Wilkommen auf <platzhalter>.\nDu kannst dich nun einloggen", "Login", "Abrechen");
return true;
}
else
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Wilkommen auf <platzhalter>.\nDu kannst dich nun einloggen", "Register", "Abrechen");
return true;
}
}
public OnPlayerDisconnect(playerid, reason)
{
if(GetPVarInt(playerid, "Eingeloggt") == 1)
{
mysql_SetInt("spieler", "Geld", GetPlayerMoney(playerid), "Name", PlayerName[playerid]);
mysql_SetInt("spieler", "Aussehen", GetPlayerSkin(playerid), "Name", PlayerName[playerid]);
mysql_SetInt("spieler", "Morde", GetPVarInt(playerid, "Morde"), "Name", PlayerName[playerid]);
mysql_SetInt("spieler", "Tode", GetPVarInt(playerid, "Tode"), "Name", PlayerName[playerid]);
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid, "Tode", GetPVarInt(playerid, "Tode")+1);
SetPVarInt(killerid, "Morde", GetPVarInt(playerid, "Morde")+1);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 0:
{
if(!inputtext[0])
{
SendClientMessage(playerid, Color_White, "Info: Bitte gebe ein Passwort ein");
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Login", "Wilkommen auf <platzhalter>.\nDu kannst dich nun einloggen", "Login", "Abrechen");
return true;
}
if(strcmp(inputtext, mysql_GetString("spieler", "Passwort", "Name", PlayerName[playerid]), true) == 0)
{
SetPVarInt(playerid, "Eingeloggt", 1);
GivePlayerMoney(playerid, mysql_GetInt("spieler", "Geld", "Name", PlayerName[playerid]));
SetPlayerSkin(playerid, mysql_GetInt("spieler", "Aussehen", "Name", PlayerName[playerid]));
SetPVarInt(playerid, "Morde", mysql_GetInt("spieler", "Morde", "Name", PlayerName[playerid]));
SetPVarInt(playerid, "Tode", mysql_GetInt("spieler", "Tode", "Name", PlayerName[playerid]));
SendClientMessage(playerid, Color_Green, "Info: Wilkommen auf < Platzhalter >");
SpawnPlayer(playerid);
return true;
}
else
{
SetPVarInt(playerid, "PWFalsch", GetPVarInt(playerid, "PWFalsch")+1);
if(GetPVarInt(playerid, "PWFalsch") < Max_Player_Login_Attemps)
{
SendClientMessage(playerid, Color_Red, "Info: Solltest du dein Passwort zu oft falsch eingeben wirst du gekickt");
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Login", "Wilkommen auf <platzhalter>.\nDu kannst dich nun einloggen", "Login", "Abrechen");
return true;
}
if(GetPVarInt(playerid, "PWFalsch") == Max_Player_Login_Attemps)
{
SendClientMessage(playerid, Color_Red, "Info: Du hast dein Passwort zu oft falsch eingegeben du wurdest gekickt");
Kick(playerid);
return true;
}
}
}
case 1:
{
if(!inputtext[0])
{
SendClientMessage(playerid, Color_Red, "Info: Passwort zu kurz");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Wilkommen auf <platzhalter>.\nDu kannst dich nun einloggen", "Register", "Abrechen");
return 1;
}
SetPVarInt(playerid, "Eingeloggt", 1);
CreatePlayerAccount(PlayerName[playerid], inputtext);
mysql_SetString("spieler", "Passwort", inputtext, "Name", PlayerName[playerid]);
SendClientMessage(playerid, Color_Green, "Info: Erfolgreich registriert");
SpawnPlayer(playerid);
return true;
}
}
return 1;
}
//______________________________________________________________________________
stock Connect_To_Database()
{
mysql_connect(MySql_Host, MySql_User, MySql_Database, MySql_Password);
if(mysql_ping() == 1)
{
print("MySql: Verbindung zur Datenbank wurde erfolgreich hergestellt");
return true;
}
else
{
print("MySql: Es konnte keine Verbindung zur Datenbank hergestellt werden");
print("MySql: Es wird erneut versucht eine Verbindung zur Datenbank herzustellen");
mysql_connect(MySql_Host, MySql_User, MySql_Database, MySql_Password);
if(mysql_ping() == 1)
{
print("MySql: Es konnte im 2 Versuch eine Verbindung hergestellt werden");
return true;
}
else
{
print("MySql: Es konnte keine Verbindung zur Datenbank hergestellt werden");
print("Info: Der Server wird nun beendet");
SendRconCommand("exit");
return true;
}
}
}
stock CreatePlayerAccount(PName[], PPassword[])
{
new query[109];
format(query, sizeof(query), "INSERT INTO spieler (Name, Passwort) VALUES ('%s', '%s')", PName, PPassword);
mysql_query(query);
return true;
}
stock mysql_GetString(Table[], Field[], Where[], Where2[])
{
new query[128], Get[128];
format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Where2);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
return Get;
}
stock mysql_GetInt(Table[], Field[], Where[], Where2[])
{
return strval(mysql_GetString(Table, Field, Where, Where2));
}
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
new query[128];
format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
{
new query[128];
format(query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
stock mysql_CheckAccount(sqlplayersname[])
{
new query[128], escstr[MAX_PLAYER_NAME];
mysql_real_escape_string(sqlplayersname, escstr);
format(query, sizeof(query), "SELECT id FROM spieler WHERE LOWER(Name) = LOWER('%s') LIMIT 1", escstr);
mysql_query(query);
mysql_store_result();
if (mysql_num_rows()==0)return 0;
else
{
new strid[32];
new intid;
mysql_fetch_row(strid);
intid = strval(strid);
return intid;
}
}
Gegenleistung würde ich für euch etwas Designen falls es reicht.. einfach melden^^
/e Aussehen Hinzugefügt^^