Jump to content
  • 0

Help VIP Levels


[K]Punker.

Question

Salutare, am o problema pe care nu stiu sa o rezolv. Am 2 lvl de vip, VIP si Gold VIP. La /buyvip am VIP FREE, VIP 20 zile, VIP Permanent si Gold 20 zile. Nu pot lua gratis deloc iar daca modific ceva si iau, pot sa iau intruna. Cand am vip temporar si cumpar permanent nu dispare cel temporar si tot asa. Nu stiu cum sa le fac sa mearga...

 

 

P.S: Vreau sa mearga sa le cumpar cum scrie acolo iar vip temporar sa dispara cand cumpar permanent...

case DIALOG_BUYVIP:
	    {
	        if(response)
			{
				switch(listitem)
				{
                    case 0:
					{
						if(PlayerInfo[playerid][IsVipFree] == 1) return SendError(playerid, "You can buy this option only once time!");
						//------------------------------------------------------
						new sVip[35], AvaibleDays = 11; GQuery[0] = EOS;
						//------------------------------------------------------
						PlayerInfo[playerid][pVIP] = 1, 	 PlayerInfo[playerid][TVip] = 1;
						PlayerInfo[playerid][IsVipFree] = 0, PlayerInfo[playerid][VIPTime] = gettime() + AvaibleDays*86400;
     					//------------------------------------------------------
						if(PlayerInfo[playerid][pVIP] == 1) sVip = "Silver";
	                    else if(PlayerInfo[playerid][pVIP] == 2) sVip = "Gold";
						//------------------------------------------------------
						format(GQuery, sizeof(GQuery), "UPDATE `Accounts` SET `VIPTime` = %d + (%d*86400) WHERE `ID` = %d", gettime(), AvaibleDays, PlayerInfo[playerid][AccID]);
						mysql_tquery(DB_Connect, GQuery, "", "");
						//------------------------------------------------------
						Announce(playerid, "~w~~h~You have bought~n~~g~~h~VIP ~w~~h~for ~r~~h~10 ~w~~h~Days!~n~~w~~h~Type ~r~~h~/Vcmds ~w~~h~for ~n~~w~~h~commands.", 5000, 4);
						//------------------------------------------------------
						eLog[0] = EOS; format(eLog, sizeof(eLog), "%s has bought VIP %s Free. (Temporary: 10 days)", PlayerName(playerid), sVip, timec(PlayerInfo[playerid][VIPTime])); SendLog(eLog);
					}
     				case 1:
					{
				 		if(PlayerInfo[playerid][Hours] < 10) return SendError(playerid, "Ai nevoie de minim 10 Ore pentru a cumpara VIP !");
                        if(PlayerInfo[playerid][Coins] < 5000) return SendError(playerid, "Ai nevoie de minim 5000 de Coins pentru a cumpara VIP !");
						//------------------------------------------------------
						new sVip[35], AvaibleDays = 21; GQuery[0] = EOS;
						//------------------------------------------------------
						PlayerInfo[playerid][pVIP] = 1, 	 PlayerInfo[playerid][TVip] = 1;
						PlayerInfo[playerid][Coins] -= 5000, PlayerInfo[playerid][Hours] -= 10;
						PlayerInfo[playerid][VIPTime] = gettime() + AvaibleDays*86400;
     					//------------------------------------------------------
						if(PlayerInfo[playerid][pVIP] == 1) sVip = "Silver";
	                    else if(PlayerInfo[playerid][pVIP] == 2) sVip = "Gold";
						//------------------------------------------------------
						format(GQuery, sizeof(GQuery), "UPDATE `Accounts` SET `VIPTime` = %d + (%d*86400) WHERE `ID` = %d", gettime(), AvaibleDays, PlayerInfo[playerid][AccID]);
						mysql_tquery(DB_Connect, GQuery, "", "");
						//------------------------------------------------------
						Announce(playerid, "~w~~h~You have bought~n~~g~~h~VIP ~w~~h~for ~r~~h~20 ~w~~h~Days!~n~~w~~h~Type ~r~~h~/Vcmds ~w~~h~for ~n~~w~~h~commands.", 5000, 4);
						//------------------------------------------------------
						eLog[0] = EOS; format(eLog, sizeof(eLog), "%s has bought VIP %s. (Temporary: 20 days)", PlayerName(playerid), sVip, timec(PlayerInfo[playerid][VIPTime])); SendLog(eLog);
					}
					case 2:
     	         	{
     	          		if(PlayerInfo[playerid][Hours] < 50) return SendError(playerid, "Ai nevoie de minim 50 de Ore pentru a cumpara VIP !");
				  		if(PlayerInfo[playerid][Coins] < 10000) return SendError(playerid, "Ai nevoie de minim 10000 de Coins pentru a cumpara VIP !");
				  		if(PlayerInfo[playerid][TVip] == 1) return PlayerInfo[playerid][VIPTime] = 0, PlayerInfo[playerid][TVip] = 0, PlayerInfo[playerid][pVIP] = 1;
                  		//------------------------------------------------------------
                  		PlayerInfo[playerid][pVIP] = 1;
                  		PlayerInfo[playerid][Coins] -= 10000;
                  		PlayerInfo[playerid][Hours] -= 50;
                  		//------------------------------------------------------------
                  		ShowPlayerDialog( playerid, DIALOG_EMPTY, DIALOG_STYLE_MSGBOX, "VIP {FF0000}Cumparat!", "{00FF00}Ai cumparat cu succes VIP Permanent!\n{00FF00}Scrie {FF0000}/VCMDS{00FF00} pentru a vedea comenzile de VIP!", "Ok", "" );
       	         	}
       	         	case 3:
					{
				 		if(PlayerInfo[playerid][Hours] < 80) return SendError(playerid, "Ai nevoie de minim 80 ore pentru a cumpara Gold VIP !");
                        if(PlayerInfo[playerid][Coins] < 20000) return SendError(playerid, "Ai nevoie de minim 20000 de coins pentru a cumpara Gold VIP !");
						//------------------------------------------------------
						new sVip[35], AvaibleDays = 21; GQuery[0] = EOS;
						//------------------------------------------------------
						PlayerInfo[playerid][pVIP] = 2, 	 PlayerInfo[playerid][TVip] = 2;
						PlayerInfo[playerid][Coins] -= 20000, PlayerInfo[playerid][Hours] -= 80;
						PlayerInfo[playerid][VIPTime] = gettime() + AvaibleDays*86400;
     					//------------------------------------------------------
						if(PlayerInfo[playerid][pVIP] == 1) sVip = "Silver";
	                    else if(PlayerInfo[playerid][pVIP] == 2) sVip = "Gold";
						//------------------------------------------------------
						format(GQuery, sizeof(GQuery), "UPDATE `Accounts` SET `VIPTime` = %d + (%d*86400) WHERE `ID` = %d", gettime(), AvaibleDays, PlayerInfo[playerid][AccID]);
						mysql_tquery(DB_Connect, GQuery, "", "");
						//------------------------------------------------------
						Announce(playerid, "~w~~h~You have bought~n~~g~~h~VIP ~w~~h~for ~r~~h~20 ~w~~h~Days!~n~~w~~h~Type ~r~~h~/Vcmds ~w~~h~for ~n~~w~~h~commands.", 5000, 4);
						//------------------------------------------------------
						eLog[0] = EOS; format(eLog, sizeof(eLog), "%s has bought Gold VIP %s. (Temporary: 20 days)", PlayerName(playerid), sVip, timec(PlayerInfo[playerid][VIPTime])); SendLog(eLog);
					}
				}
			}
	        return 1;
	    }

Asa arata cmd:Buyvip 
CMD:buyvip (playerid, params[])
{
	ShowPlayerDialog(playerid, DIALOG_BUYVIP, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}BuyVIP, Type {FF0000}/VCmds {FFFFFF}for commands!",
	"\tItem\tPret\tValabilitate\n\
	{FFFFFF}VIP\tGratuit\t10 Days\n\
    {FFFFFF}VIP\t10 Hours + 5000 Coins\t20 Days\n\
    {FFFFFF}VIP\t50 Hours + 10000 Coins\tPermanent\n\
	{FFF000}Gold {FFFFFF}VIP\t80 Hours + 20000 Coins\tPermanent",
	"Select", "Cancel");
	//--------------------------------------------------------------------------
	return 1;
}

 

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Trebuie sa creezi o variabila, de exemplu:

new FreeVIP[MAX_PLAYERS];

Iar apoi sa ii atribui valoarea 0 cand jucatorul se conecteaza, sa o salvezi in baza de date si sa ia valoarea 1 atunci cand jucatorul cumpara VIP Free.

De aici e simplu, faci o bucla si verifici daca jucatorul are variabila FreeVIP pe 1 si ii dai return pe un mesaj de exemplu "Ai folosit deja aceasta optiune.".

  • Upvote 1

242086.png

Link to comment
Share on other sites

  • 0
Acum 3 ore, KnowN a spus:

Trebuie sa creezi o variabila, de exemplu:

new FreeVIP[MAX_PLAYERS];

Iar apoi sa ii atribui valoarea 0 cand jucatorul se conecteaza, sa o salvezi in baza de date si sa ia valoarea 1 atunci cand jucatorul cumpara VIP Free.

De aici e simplu, faci o bucla si verifici daca jucatorul are variabila FreeVIP pe 1 si ii dai return pe un mesaj de exemplu "Ai folosit deja aceasta optiune.".

Mersi, am rezolvat cu vip free , dar cand cineva are vip temporar si cumpara VIP Permanent, nu dispare cel temporar 

 

Link to comment
Share on other sites

  • 0
2 hours ago, Punker said:

Mersi, am rezolvat cu vip free , dar cand cineva are vip temporar si cumpara VIP Permanent, nu dispare cel temporar 

 

Trebuie sa ii dai update in baza de date.

  • Upvote 1

242086.png

Link to comment
Share on other sites

  • 0
2 hours ago, Punker said:

am pus cum arata dialog_buyvip si ii mysql_query(DB_Connect, GQuery); dar tot nu merge. Nu pot lua permanent fara sa dispara temp si invers

Iti da cumva un mesaj?

  • Upvote 1

242086.png

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.