bud system
#1

Hello...I'm using the same system "BUD" like was in the Eclipse, I've problem, I'd like to my stats (score,money...etc will saved after my leaving the server...i don't know how to do this, here are some lines:

OnGameModeInit()
Код:
BUD::Setting( opt.Database, "Accounts.db" ); // The name of the database to create/use.
	BUD::Setting( opt.Asynchronous, true );      // true - faster, but if your computer gets stuck by ligntning when it's doing something with the database it could end up corrupted! :D
	BUD::Setting( opt.KeepAliveTime, 3000 );     // The database will be kept open for 3000ms each time it's being used; this is to save performance.
	BUD::Setting( opt.CheckForUpdates, true );   // Check for BUD updates! This is set to true by default.

	BUD::Initialize( ); // Initialize the system; this has to be called before using any functions besides BUD::Setting.

    BUD::VerifyColumn(   "IP",				BUD::TYPE_STRING,   "Null");
    BUD::VerifyColumn(   "Registered",		BUD::TYPE_STRING,	"Never"	   );
    BUD::VerifyColumn(   "Password",		BUD::TYPE_STRING, 	"Null" 	   );
    BUD::VerifyColumn(   "Old_Password",	BUD::TYPE_STRING, 	"Null" 	   );
    BUD::VerifyColumn(   "Timeonline", 		BUD::TYPE_STRING, 	"00:00:00" );
    BUD::VerifyColumn(   "Level", 			BUD::TYPE_NUMBER );
    BUD::VerifyColumn(   "VIP", 			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Kills", 			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Deaths", 			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Money", 			BUD::TYPE_NUMBER );
 	BUD::VerifyColumn(   "Score", 			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Cookies",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Banned",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Connections",		BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "PlayerGod",		BUD::TYPE_NUMBER,	1	    );
	BUD::VerifyColumn(   "CarGod",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "SpawnCity",		BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "SaveCity",		BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "PlayerGoto",		BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "PMSent",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Messages",		BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Commands",		BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "ABP",				BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "RP",				BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "IQ",				BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Math",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Paintjob",		BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Wheels",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "LastCon", 		BUD::TYPE_STRING, 	"Never" );
	BUD::VerifyColumn(   "BestSpree", 		BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "BestSpreeOn", 	BUD::TYPE_STRING, 	"Never"	);
	BUD::VerifyColumn(   "Boostpower",		BUD::TYPE_NUMBER, 	5		);
	BUD::VerifyColumn(   "Weather",			BUD::TYPE_NUMBER, 	0 		);
	BUD::VerifyColumn(   "Time",			BUD::TYPE_NUMBER, 	12 		);
	BUD::VerifyColumn(   "Skin",			BUD::TYPE_NUMBER, 	-1 		);
	BUD::VerifyColumn(   "Binds",			BUD::TYPE_NUMBER, 	1 		);
    BUD::VerifyColumn(   "VUP",				BUD::TYPE_NUMBER,	1		);
    BUD::VerifyColumn(   "VUPValue",		BUD::TYPE_NUMBER,	2		);
    BUD::VerifyColumn(   "VUPKey",			BUD::TYPE_NUMBER, 	2		);
    BUD::VerifyColumn(   "AntiFall",		BUD::TYPE_NUMBER );
    BUD::VerifyColumn(   "Boost",			BUD::TYPE_FLOAT,  	1.7		);
    BUD::VerifyColumn(   "Boost2",			BUD::TYPE_NUMBER,   1		);
    BUD::VerifyColumn(   "SpeedStyle",		BUD::TYPE_NUMBER,	1		);
	BUD::VerifyColumn(   "Weapon1",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Weapon2",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Weapon3",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Weapon4",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Weapon5",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Weapon6",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Weapon7",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Weapon8",			BUD::TYPE_NUMBER );
	BUD::VerifyColumn(   "Weapon9",			BUD::TYPE_NUMBER );
OnPlayerConnect()
Код:
new UID = BUD::GetNameUID( PlayerName2( playerid ) );
	PlayerLang[playerid] = BUD::GetIntEntry( UID, "Lang" ) ;
	if ( !BUD::IsNameRegistered( PlayerName2( playerid ) ) )
	{
		ShowDialog(playerid, dialog_lang, BOX, "{FFBF00}Jezyk/Language", "{00C0FF}Witamy! Welcome!\n\
		{FFFFFF}Wybierz Jezyk!\n\
		Choose language!",
		"Polski", "English");
 	}

 	else if(PlayerLang[playerid] == 1)
		{
			new Stringg[ 200 ];
	    	format( Stringg, sizeof Stringg, "{00C0FF}Witamy! "#COL_ORANGE"%s.\n\
	                                    {FFFFFF}To konto jest zarejestrowane!\n\
	                                    Zaloguj się albo spadaj:)\n\n\
	                                    Wciśnij 'Kick', jeżeli chcesz wyjść.",PlayerName2( playerid ) );

	    	ShowDialog( playerid, Login1, BOX, "{FFBF00}Konto Zarejestrowane!", Stringg, "Login", "Kick");

	    	if ( UID != BUD::INVALID_UID )
			{
				P_DATA[ playerid ][ P_CitySave  ] = BUD::GetIntEntry( UID, "SaveCity" ) ;
				P_DATA[ playerid ][ P_City 		] = BUD::GetIntEntry( UID, "SpawnCity" ) ;
			}
		}
	else if(PlayerLang[playerid] == 0)
		{
			new Stringgg[ 200 ];
	    	format( Stringgg, sizeof Stringgg, "{00C0FF}Welcome! "#COL_ORANGE"%s.\n\
	                                    {FFFFFF}This account is registered!\n\
	                                    Please login or get out:)\n\n\
	                                    Pressing 'Kick' won't get you kicked.",PlayerName2( playerid ) );
			ShowDialog( playerid, Login1, BOX,"{FFBF00}Account Registered!", Stringgg, "Login", "Kick");
			if ( UID != BUD::INVALID_UID )
			{
				P_DATA[ playerid ][ P_CitySave  ] = BUD::GetIntEntry( UID, "SaveCity" ) ;
				P_DATA[ playerid ][ P_City 		] = BUD::GetIntEntry( UID, "SpawnCity" ) ;
			}
		}
	SetPVarInt( playerid, "Connection3456", 1 );
Код:
CMD:register(playerid, params[])
{
    if ( BUD::IsNameRegistered( PlayerName2(playerid) ) ){
    	if(PlayerLang[playerid]==0)return SendError( playerid, "Your name is registered!~n~Please ~r~/login~w~ into the account.");
        if(PlayerLang[playerid]==1)return SendError( playerid, "Twoja nazwa jest zarejestrowana!~n~Uzyj ~r~/login~w~ aby sie zalogowac.");}
	new String[ 200 ];
	if(PlayerLang[playerid]==0){format( String, sizeof String, "{FFFFFF}Welcome "#COL_ORANGE"%s.\n\
	                                {FFFFFF}It's important that you register an account\n\
									You will have acces to many features.\n\n\n\
									"COL_GREY"After pressing "COL_ORANGE"Register"COL_GREY" your\nobligation is the register the account!",PlayerName2( playerid ) );

	ShowDialog( playerid, Register4, BOX, "{FFFFFF}Register an account.", String, "Register", "Exit");}
	if(PlayerLang[playerid]==1){format( String, sizeof String, "{FFFFFF}Witamy "#COL_ORANGE"%s.\n\
	                                {FFFFFF}To wazne, ze rejestrujesz konto!\n\
									Bedziesz mial dostep do wielu funkcji.\n\n\n\
									"COL_GREY"Po wcisnieciu "COL_ORANGE"Rejestruj"COL_GREY" Twoim\nobowiazkiem jest zarejestrowac konto!",PlayerName2( playerid ) );

	ShowDialog( playerid, Register4, BOX, "{FFFFFF}Zarejestruj Konto.", String, "Rejestruj", "Wyjdz");}
    return 1;
}


CMD:login(playerid, params[])
{
	if ( !BUD::IsNameRegistered( PlayerName2(playerid) ) ){
		if(PlayerLang[playerid]==0)return SendError( playerid, "You don't have an account!~n~Please ~r~/register~w~ an account.");
		if(PlayerLang[playerid]==1)return SendError( playerid, "Nie masz konta!~n~Zarejestruj ~r~/register~w~ konto.");
		}

	if ( P_DATA[ playerid ][ P_Logged ] ){
     if(PlayerLang[playerid]==0)return SendError( playerid, "You are already registered and logged in!");
	 if(PlayerLang[playerid]==1)return SendError( playerid, "Jestes juz zarejestrowany i zalogowany!");
	    }

	new String[ 200 ];
	if(PlayerLang[playerid]==0){format( String, sizeof String, "{FFFFFF}Welcome "#COL_ORANGE"%s.\n\n\
  									{FFFFFF}After pressing "COL_ORANGE"login {FFFFFF}your\nobligation is to enter the password!",PlayerName2( playerid ) );
 	ShowDialog( playerid, Login3, BOX, "{FFFFFF}Account Login...!", String, "Login", "Exit");}
 	if(PlayerLang[playerid]==1){format( String, sizeof String, "{FFFFFF}Witamy "#COL_ORANGE"%s.\n\n\
  									{FFFFFF}Po wcisnieciu "COL_ORANGE"login {FFFFFF}Twoim\nobowiazkiem jest wpisac tam haslo!",PlayerName2( playerid ) );
 	ShowDialog( playerid, Login3, BOX, "{FFFFFF}Logowanie Konta...!", String, "Login", "Wyjdz");}
	return 1;
}

if ( dialogid == Login2 )
	{
	    if ( response )
	    {
	        if ( strlen( inputtext ) == 0)
			{
			   if(PlayerLang[playerid] == 0) return ShowDialog( playerid, Login2, INPUT, "{FFFFFF}Enter Password", ""#COL_RED"No password entered!\n{FFFFFF}Please enter your password:", "Enter", "");
               if(PlayerLang[playerid] == 1) return ShowDialog( playerid, Login2, INPUT, "{FFFFFF}Wpisz Hasło", ""#COL_RED"Nie Wpisano Hasla!\n{FFFFFF}Proszę wprowadzić swoje hasło:", "Akceptuj", "");
			}
	        if ( BUD::CheckAuth( PlayerName2( playerid ), inputtext ) )
        	{
        	    new InfoBox[ 512 ];
        	   	P_DATA[ playerid ][ P_Logged ] = 1;

                new pIP[ 32 ],
					pTOS[ 32 ],
					bkStr[ 32 ],
					plCON[ 32 ],
					pReg[ 32 ],
					Money,
					Score,
					Date[5]
				;
				new iUID = BUD::GetNameUID( PlayerName2( playerid ) );
	            BUD::MultiGet
				(
					iUID,
					"s[32]s[32]s[32]iiiiiiiiiiiiiiiiiiiiiiiiiiiis[32]s[32]iiiiiiiiiiiiiiiii",
					"Registered",   pReg,
					"IP", 			pIP,
					"Timeonline", 	pTOS,
					"Level", 		P_DATA[ playerid ][ P_Level 	],
					"VIP", 			P_DATA[ playerid ][ P_Vip 		],
					"Kills", 		P_DATA[ playerid ][ P_Kills 	],
					"Deaths", 		P_DATA[ playerid ][ P_Deaths	],
					"Money", 		Money,
					"Score", 		Score,
					"Cookies", 		P_DATA[ playerid ][ P_Cookies 	],
					"Connections",  P_DATA[ playerid ][ P_TOS 	  	],
					"PlayerGod",    P_DATA[ playerid ][ P_God     	],
					"CarGod",       P_DATA[ playerid ][ P_CarGod  	],
					"SpawnCity",    P_DATA[ playerid ][ P_City    	],
					"SaveCity",     P_DATA[ playerid ][ P_CitySave	],
					"PlayerGoto",   P_DATA[ playerid ][ P_Goto    	],
					"PMSent",       P_DATA[ playerid ][ P_PMS     	],
					"Messages",     P_DATA[ playerid ][ P_MSGS    	],
					"Commands",     P_DATA[ playerid ][ P_CMDS    	],
					"ABP",          P_DATA[ playerid ][ P_BiebPoints],
					"RP",           P_DATA[ playerid ][ P_ReactPoints],
					"IQ",           P_DATA[ playerid ][ P_IQ 	  	],
					"Math",         P_DATA[ playerid ][ P_MathPoints],
					"Paintjob",     P_DATA[ playerid ][ P_Paintjob 	],
					"Wheels",       P_DATA[ playerid ][ P_Wheels 	],
					"Boostpower",   P_DATA[ playerid ][ P_BP 		],
					"Weather",      P_DATA[ playerid ][ P_Weather 	],
					"Time",         P_DATA[ playerid ][ P_Time 		],
					"Skin",         P_DATA[ playerid ][ P_Skin 		],
					"Binds",        P_DATA[ playerid ][ P_Binds 	],
					"BestSpree",    P_DATA[ playerid ][ P_bkSpree 	],
					"BestSpreeOn",  bkStr,
					"LastCon",      plCON,
					"VUP",			P_DATA[ playerid ][ P_Vup 		],
    				"VUPValue",		P_DATA[ playerid ][ P_JumpSize 	],
    				"VUPKey",		P_DATA[ playerid ][ P_VupKey 	],
    				"AntiFall",		P_DATA[ playerid ][ P_AntiFall 	],
    				"VUPKey",		P_DATA[ playerid ][ P_VupKey 	],
    				"Boost",		P_DATA[ playerid ][ P_BoostSpeed],
    				"Boost2",		P_DATA[ playerid ][ P_Boost 	],
    				"SpeedStyle",	P_DATA[ playerid ][ P_SpeedStyle],
    				"Weapon1",		WSlots[ playerid ][ 0 ],
    				"Weapon2",		WSlots[ playerid ][ 1 ],
    				"Weapon3",		WSlots[ playerid ][ 2 ],
    				"Weapon4",		WSlots[ playerid ][ 3 ],
    				"Weapon5",		WSlots[ playerid ][ 4 ],
    				"Weapon6",		WSlots[ playerid ][ 5 ],
    				"Weapon7",		WSlots[ playerid ][ 6 ],
    				"Weapon8",		WSlots[ playerid ][ 7 ],
    				"Weapon9",		WSlots[ playerid ][ 8 ]

				);
				SetPlayerScore( playerid, Score );
				GivePlayerMoney( playerid, Money );

				SetPVarString( playerid, "RegDate", 	pReg 	);
				SetPVarString( playerid, "IP", 			pIP 	);
				SetPVarString( playerid, "TimeOnline", 	pTOS	);
				SetPVarString( playerid, "BestSpree",   bkStr 	);
				SetPVarString( playerid, "LastConn",    plCON 	);

				getdate( Date[0], Date[1], Date[2] );
				gettime( Date[3], Date[4]		   );

				format( plCON, 30, "%d/%d/%d %d:%d",  Date[2], Date[1], Date[0], Date[3], Date[4]);
				BUD::SetStringEntry( iUID, "LastCon", plCON );

				new Var[4];
			    if ( !sscanf( pTOS, "p<:>iii", Var[0], Var[1], Var[2] ) )
			    {
			         P_DATA[ playerid ][ P_Hours   ] = Var[0];
					 P_DATA[ playerid ][ P_Minutes ] = Var[1];
					 P_DATA[ playerid ][ P_Seconds ] = Var[2];
				}



	            if(PlayerLang[playerid] == 0)
				{
					format( InfoBox, sizeof InfoBox, "{FFFFFF}Welcome "#CLB"%s", PlayerName2( playerid ) );

					ShowDialog( playerid, InitStats, BOX, InfoBox ,"{FFFFFF}Succesfully logged in!\n\n\
															Type "COL_LIGHTBLUE"/CP{FFFFFF} to edit your options.\n\
															Type "COL_LIGHTBLUE"/MYCMDS{FFFFFF} for your commands!\n\
															To view your stats use "COL_LIGHTBLUE"/stats{FFFFFF}.\n\
															{FFFFFF}Have fun!" , "Exit", "C.Panel");
					FormMessageForAllEx( playerid, COLOR_GREEN, "||||   %s has succesfully logged in his account!   ||||",PlayerName2( playerid ) );
				}
 				if(PlayerLang[playerid] == 1)
				{
					format( InfoBox, sizeof InfoBox, "{FFFFFF}Witamy "#CLB"%s", PlayerName2( playerid ) );

					ShowDialog( playerid, InitStats, BOX, InfoBox ,"{FFFFFF}Pomyślnie zalogowano!\n\n\
															Użyj "COL_LIGHTBLUE"/CP{FFFFFF}, by edytować swoje opcje.\n\
															Użyj "COL_LIGHTBLUE"/MYCMDS{FFFFFF}, by zobaczyć komendy!\n\
															By zobaczyc Twoje statystyki "COL_LIGHTBLUE"/stats{FFFFFF}.\n\
															{FFFFFF}Dobrej Zabawy!" , "Wyjdz", "C.Panel");
					FormMessageForAllEx( playerid, COLOR_GREEN, "||||   %s pomyslnie się zalogował!   ||||",PlayerName2( playerid ) );
				}
			}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)