[pomoc] kako napraviti VIP system


Započeo [IF] mariomako, Jun 08, 2011, 17:26:30 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Zdravo momci, imam jedan problem i neznam kak oda ga resim:

Skriptu koju koristim: Hidmin
Detaljan opis problema: Skinuo sam Hidmin filterskriptu i radi perfektno, ali ona nema vip system pa neznam kako da uradim:

Dio skripte:

CMD:register(playerid, params[])
{
	if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
	if(isnull(params)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "{00FF00}                    ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n{FFFFFF}Type your password to register.\n\n{AA0000}Unless you register your stats not be saved!", "Register", "Cancel");
	new Query[320], pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
	mysql_real_escape_string(pName, pName);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
	mysql_query(Query);
	mysql_store_result();
	if(mysql_num_rows())
	{
		SendClientMessage(playerid, COLOR_ORANGE, "[*] An account already exists under that name! Use \"/login\" to log in!");
		mysql_free_result();
		return 1;
	}
	mysql_free_result();
	WP_Hash(Query, 129, params);
	new IP[16];
	GetPlayerIp(playerid, IP, 16);
	format(Query, sizeof Query, "INSERT INTO `accounts` (Name, Password, IP, Admin, Money, Score, Kills, Deaths, vip) VALUES ('%s', '%s', '%s', %i, %i, %i, %i, %i, %i)",
	    pName,
	    Query,
	    IP,
	    GetPVarInt(playerid, "Admin"),
	    GetPlayerMoney(playerid),
	    GetPlayerScore(playerid),
	    GetPVarInt(playerid, "Kills"),
	    GetPVarInt(playerid, "Deaths"),
                  GetPVarInt(playerid, "VIP"));
	mysql_query(Query);
	SetPVarInt(playerid, "Logged", 1);
	SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully registered and automatically logged in!");
	return 1;
}

CMD:login(playerid, params[])
{
	if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
	if(isnull(params))
	{
	ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Wrong password!", "{00FF00}                 ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n\n{AA0000}Wrong password, type correct password!", "Login", "");
	}
	else
	{
	new Query[256], pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
	mysql_real_escape_string(pName, pName);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
	mysql_query(Query);
	mysql_store_result();
	if(!mysql_num_rows())
	{
  		SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not registered! Use \"/register\" to register an account!");
		mysql_free_result();
		return 1;
	}
	mysql_free_result();
	WP_Hash(Query, 129, params);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", pName, Query);
	mysql_query(Query);
	mysql_store_result();
	if(!mysql_num_rows())
	{
	    SetPVarInt(playerid, "LoginWarns", GetPVarInt(playerid, "LoginWarns") + 1);
	    if(GetPVarInt(playerid, "LoginWarns") == 3)
	    {
			format(Query, sizeof Query, "[*] %s has been kicked for 3 wrong login attempts!", pName);
			SendClientMessageToAll(COLOR_ROYALBLUE, Query);
			Kick(playerid);
		}
			else
		{
		    format(Query, sizeof Query, "[*] Wrong password! Attempt %i out of 3.", GetPVarInt(playerid, "LoginWarns"));
		    SendClientMessage(playerid, COLOR_ORANGE, Query);
		    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Wrong password!", "{00FF00}                 ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n\n{AA0000}Wrong password, type correct password!", "Login", "");
		}
	    return 1;
	}
	mysql_fetch_row(Query);
	new values[5];
	sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[5]", values); //Enjoy editing.
	SetPVarInt(playerid, "Admin", values[0]);
	GivePlayerMoney(playerid, values[1]);
	SetPlayerScore(playerid, values[2]);
	SetPVarInt(playerid, "Kills", values[3]);
	SetPVarInt(playerid, "Deaths", values[4]);
	mysql_free_result();
	SetPVarInt(playerid, "Logged", 1);
	SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully logged in!");

	    //Ip setting
	GetPlayerIp(playerid, Query, 16);
	format(Query, sizeof Query, "UPDATE `accounts` SET `IP` = '%s' WHERE `Name` = '%s' LIMIT 1", Query, pName);
	mysql_query(Query);
	}
	return 1;
}


i onplayerdissconnect da mu zacuva statsi,

public OnPlayerDisconnect(playerid, reason)
{
	if(GetPVarInt(playerid, "Logged"))
	{
	    new Query[180];
	    GetPlayerName(playerid, Query, MAX_PLAYER_NAME);
	    mysql_real_escape_string(Query, Query);
	    format(Query, sizeof Query, "UPDATE `accounts` SET `Admin` = %i, `Money` = %i, `Score` = %i, `Kills` = %i, `Deaths` = %i WHERE Name = '%s'",
			GetPVarInt(playerid, "Admin"),
			GetPlayerMoney(playerid),
			GetPlayerScore(playerid),
			GetPVarInt(playerid, "Kills"),
			GetPVarInt(playerid, "Deaths"),
			Query);
		mysql_query(Query);
	}
	return 1;
}


Dali bi mi neko mogao objasniti kako da to uradim?
Poslednja Izmena: Jun 08, 2011, 18:25:36 POSLE PODNE od _eXtreme_

CMD:register(playerid, params[])
{
	if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
	if(isnull(params)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "{00FF00}                    ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n{FFFFFF}Type your password to register.\n\n{AA0000}Unless you register your stats not be saved!", "Register", "Cancel");
	new Query[320], pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
	mysql_real_escape_string(pName, pName);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
	mysql_query(Query);
	mysql_store_result();
	if(mysql_num_rows())
	{
		SendClientMessage(playerid, COLOR_ORANGE, "[*] An account already exists under that name! Use \"/login\" to log in!");
		mysql_free_result();
		return 1;
	}
	mysql_free_result();
	WP_Hash(Query, 129, params);
	new IP[16];
	GetPlayerIp(playerid, IP, 16);
	format(Query, sizeof Query, "INSERT INTO `accounts` (Name, Password, IP, Admin, Money, Score, Kills, Deaths, vip) VALUES ('%s', '%s', '%s', %i, %i, %i, %i, %i, %i)",
	    pName,
	    Query,
	    IP,
	    GetPVarInt(playerid, "Admin"),
	    GetPlayerMoney(playerid),
	    GetPlayerScore(playerid),
	    GetPVarInt(playerid, "Kills"),
	    GetPVarInt(playerid, "Deaths"),
                  GetPVarInt(playerid, "VIP"));
	mysql_query(Query);
	SetPVarInt(playerid, "Logged", 1);
	SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully registered and automatically logged in!");
	return 1;
}

CMD:login(playerid, params[])
{
	if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
	if(isnull(params))
	{
	ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Wrong password!", "{00FF00}                 ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n\n{AA0000}Wrong password, type correct password!", "Login", "");
	}
	else
	{
	new Query[256], pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
	mysql_real_escape_string(pName, pName);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
	mysql_query(Query);
	mysql_store_result();
	if(!mysql_num_rows())
	{
  		SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not registered! Use \"/register\" to register an account!");
		mysql_free_result();
		return 1;
	}
	mysql_free_result();
	WP_Hash(Query, 129, params);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", pName, Query);
	mysql_query(Query);
	mysql_store_result();
	if(!mysql_num_rows())
	{
	    SetPVarInt(playerid, "LoginWarns", GetPVarInt(playerid, "LoginWarns") + 1);
	    if(GetPVarInt(playerid, "LoginWarns") == 3)
	    {
			format(Query, sizeof Query, "[*] %s has been kicked for 3 wrong login attempts!", pName);
			SendClientMessageToAll(COLOR_ROYALBLUE, Query);
			Kick(playerid);
		}
			else
		{
		    format(Query, sizeof Query, "[*] Wrong password! Attempt %i out of 3.", GetPVarInt(playerid, "LoginWarns"));
		    SendClientMessage(playerid, COLOR_ORANGE, Query);
		    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Wrong password!", "{00FF00}                 ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n\n{AA0000}Wrong password, type correct password!", "Login", "");
		}
	    return 1;
	}
	mysql_fetch_row(Query);
	new values[6];
	sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[6]", values); //Enjoy editing.
	SetPVarInt(playerid, "Admin", values[0]);
	GivePlayerMoney(playerid, values[1]);
	SetPlayerScore(playerid, values[2]);
	SetPVarInt(playerid, "Kills", values[3]);
	SetPVarInt(playerid, "Deaths", values[4]),
              SetPVarInt(playerid, "VIP", values[5]);
	mysql_free_result();
	SetPVarInt(playerid, "Logged", 1);
	SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully logged in!");

	    //Ip setting
	GetPlayerIp(playerid, Query, 16);
	format(Query, sizeof Query, "UPDATE `accounts` SET `IP` = '%s' WHERE `Name` = '%s' LIMIT 1", Query, pName);
	mysql_query(Query);
	}
	return 1;
}



public OnPlayerDisconnect(playerid, reason)
{
	if(GetPVarInt(playerid, "Logged"))
	{
	    new Query[180];
	    GetPlayerName(playerid, Query, MAX_PLAYER_NAME);
	    mysql_real_escape_string(Query, Query);
	    format(Query, sizeof Query, "UPDATE `accounts` SET `Admin` = %i, `Money` = %i, `Score` = %i, `Kills` = %i, `Deaths` = %i,`vip` = %i WHERE Name = '%s'",
			GetPVarInt(playerid, "Admin"),
			GetPlayerMoney(playerid),
			GetPlayerScore(playerid),
			GetPVarInt(playerid, "Kills"),
			GetPVarInt(playerid, "Deaths"),
                                          GetPVarInt(playerid, "VIP"),
			Query);
		mysql_query(Query);
	}
	return 1;
}
Poslednja Izmena: Jun 08, 2011, 18:22:02 POSLE PODNE od _eXtreme_

Citat: _eXtreme_ poslato Jun 08, 2011, 18:20:09 POSLE PODNE
CMD:register(playerid, params[])
{
	if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
	if(isnull(params)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "{00FF00}                    ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n{FFFFFF}Type your password to register.\n\n{AA0000}Unless you register your stats not be saved!", "Register", "Cancel");
	new Query[320], pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
	mysql_real_escape_string(pName, pName);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
	mysql_query(Query);
	mysql_store_result();
	if(mysql_num_rows())
	{
		SendClientMessage(playerid, COLOR_ORANGE, "[*] An account already exists under that name! Use \"/login\" to log in!");
		mysql_free_result();
		return 1;
	}
	mysql_free_result();
	WP_Hash(Query, 129, params);
	new IP[16];
	GetPlayerIp(playerid, IP, 16);
	format(Query, sizeof Query, "INSERT INTO `accounts` (Name, Password, IP, Admin, Money, Score, Kills, Deaths, vip) VALUES ('%s', '%s', '%s', %i, %i, %i, %i, %i, %i)",
	    pName,
	    Query,
	    IP,
	    GetPVarInt(playerid, "Admin"),
	    GetPlayerMoney(playerid),
	    GetPlayerScore(playerid),
	    GetPVarInt(playerid, "Kills"),
	    GetPVarInt(playerid, "Deaths"),
                  GetPVarInt(playerid, "VIP"));
	mysql_query(Query);
	SetPVarInt(playerid, "Logged", 1);
	SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully registered and automatically logged in!");
	return 1;
}

CMD:login(playerid, params[])
{
	if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
	if(isnull(params))
	{
	ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Wrong password!", "{00FF00}                 ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n\n{AA0000}Wrong password, type correct password!", "Login", "");
	}
	else
	{
	new Query[256], pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
	mysql_real_escape_string(pName, pName);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
	mysql_query(Query);
	mysql_store_result();
	if(!mysql_num_rows())
	{
  		SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not registered! Use \"/register\" to register an account!");
		mysql_free_result();
		return 1;
	}
	mysql_free_result();
	WP_Hash(Query, 129, params);
	format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", pName, Query);
	mysql_query(Query);
	mysql_store_result();
	if(!mysql_num_rows())
	{
	    SetPVarInt(playerid, "LoginWarns", GetPVarInt(playerid, "LoginWarns") + 1);
	    if(GetPVarInt(playerid, "LoginWarns") == 3)
	    {
			format(Query, sizeof Query, "[*] %s has been kicked for 3 wrong login attempts!", pName);
			SendClientMessageToAll(COLOR_ROYALBLUE, Query);
			Kick(playerid);
		}
			else
		{
		    format(Query, sizeof Query, "[*] Wrong password! Attempt %i out of 3.", GetPVarInt(playerid, "LoginWarns"));
		    SendClientMessage(playerid, COLOR_ORANGE, Query);
		    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Wrong password!", "{00FF00}                 ..:: {FF0000}Infinity Freeroam{00FF00} ::..\n\n{AA0000}Wrong password, type correct password!", "Login", "");
		}
	    return 1;
	}
	mysql_fetch_row(Query);
	new values[6];
	sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[6]", values); //Enjoy editing.
	SetPVarInt(playerid, "Admin", values[0]);
	GivePlayerMoney(playerid, values[1]);
	SetPlayerScore(playerid, values[2]);
	SetPVarInt(playerid, "Kills", values[3]);
	SetPVarInt(playerid, "Deaths", values[4]),
              SetPVarInt(playerid, "VIP", values[5]);
	mysql_free_result();
	SetPVarInt(playerid, "Logged", 1);
	SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully logged in!");

	    //Ip setting
	GetPlayerIp(playerid, Query, 16);
	format(Query, sizeof Query, "UPDATE `accounts` SET `IP` = '%s' WHERE `Name` = '%s' LIMIT 1", Query, pName);
	mysql_query(Query);
	}
	return 1;
}



public OnPlayerDisconnect(playerid, reason)
{
	if(GetPVarInt(playerid, "Logged"))
	{
	    new Query[180];
	    GetPlayerName(playerid, Query, MAX_PLAYER_NAME);
	    mysql_real_escape_string(Query, Query);
	    format(Query, sizeof Query, "UPDATE `accounts` SET `Admin` = %i, `Money` = %i, `Score` = %i, `Kills` = %i, `Deaths` = %i,`vip` = %i WHERE Name = '%s'",
			GetPVarInt(playerid, "Admin"),
			GetPlayerMoney(playerid),
			GetPlayerScore(playerid),
			GetPVarInt(playerid, "Kills"),
			GetPVarInt(playerid, "Deaths"),
                                          GetPVarInt(playerid, "VIP"),
			Query);
		mysql_query(Query);
	}
	return 1;
}


hvala, i ja sam tako uradio prije da mi postas ti, moze lock!