Jump to content
  • 0

Problemă GiftPoints


Alexx.

Question

Problema intalnita (descriere): Am creat o condiție pentru comanda /getgift, care constă în deținerea a 3 GiftPoints. Am adăugat noua variabilă, totul a decurs bine. Problema întâlnită este că dețin punctele atât timp cât nu mă deconectez, dar dacă fac asta nu le mai am. Țin să menționez ca am adăugat noua tabelă în baza de date și variabila se află și la saveplayerdata. Cred că am greșit la tabelă, nu mă pricep la mysql, dar este exact ca cea cu RespectPoints : `Gift` int(11) NOT NULL DEFAULT '0'. 
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul(obligatoriu): - 
Imagini / Video (optional): http://i.imgur.com/3gdRTo3.png  http://i.imgur.com/xf1Ji6u.png
Ati incercat sa rezolvati singur?: Da, am încercat mai multe variante, dar nu am reușit.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Ce vrei sa facem daca nu avem scriptul?

Păi eu ziceam că-mi puteți spune cum să fac tabela corect. Funcția e definită, pusă la enum, după cum am spus se află și la savedata, la restoredata etc. Pun și scriptul atunci:

CMD:getgift(playerid, params[])
{
	if(PlayerData[playerid][pPlayingHours] >= 3)
	{
		if(assetVariables[1][aAssetValue] == 1)
		{
			if(IsPlayerInRangeOfPoint(playerid, 15.0, 835.1892,-2054.7180,12.8672))
			{
				format(szMessage, 256, "Nu detii 3 Gift Points. Revino atunci cand acumulezi GiftPoints necesare!");
				if(PlayerData[playerid][pGift] >= 3)
				{
					new gift = random(6);
					if(gift == 0)
					{
					    new rpp = random(5);
						PlayerData[playerid][pRPoints] += rpp;
						format(szMessage, sizeof(szMessage), "{0080FF}[GIFTBOX]: {FFFFFF}%s won %d respect points. Have fun!",GetName(playerid), rpp);
						SCMTA(COLOR_WHITE,szMessage);
					}
					if(gift == 1)
					{
						new cash = random(200000);
						PlayerData[playerid][pMoney] += cash;
						format(szMessage, sizeof(szMessage), "{0080FF}[GIFTBOX]: {FFFFFF}%s won $%d at giftbox. Have fun!",GetName(playerid), cash);
						SCMTA(COLOR_WHITE,szMessage);
					}
					if(gift == 2)
					{
						PlayerData[playerid][pDriveLicense] += 10;
				        PlayerData[playerid][pGunLicense] += 10;
				        PlayerData[playerid][pFlyLicense] += 10;
				        PlayerData[playerid][pBoatLicense] += 10;
						format(szMessage, sizeof(szMessage), "{0080FF}[GIFTBOX]: {FFFFFF}%s won 10 licenses hour points. Have fun!",GetName(playerid));
						SCMTA(COLOR_WHITE,szMessage);
					}
					if(gift == 3)
					{
					    new matss = random(8000);
						PlayerData[playerid][pMaterials] += matss;
						format(szMessage, sizeof(szMessage), "{0080FF}[GIFTBOX]: {FFFFFF}%s won %d materials. Have fun!",GetName(playerid), matss);
						SCMTA(COLOR_WHITE,szMessage);
					}
					if(gift == 4)
					{
						new pps = random(15);
						PlayerData[playerid][pPremiumPoints] += pps;
						format(szMessage, sizeof(szMessage), "{0080FF}[GIFTBOX]: {FFFFFF}%s won %d premium points. Have fun!",GetName(playerid), pps);
						SCMTA(COLOR_WHITE,szMessage);
					}
					if(gift == 5)
					{
                        new drugs = random(2000);
						PlayerData[playerid][pDrugs] += drugs;
						format(szMessage, sizeof(szMessage), "{0080FF}[GIFTBOX]: {FFFFFF}%s won %d drugs. Have fun!",GetName(playerid), drugs);
						SCMTA(COLOR_WHITE,szMessage);
					}
					PlayerData[playerid][pGift] -= 3;
				}
				else SCM(playerid,COLOR_YELLOW, szMessage);
			}
			else
			{
				SCM(playerid,COLOR_YELLOW, "You are not at giftbox location. Go to checkpoint.");
				SetPlayerCheckpoint(playerid, 835.1892,-2054.7180,12.8672, 2);
			}	
		}
		else SCM(playerid,COLOR_YELLOW,"The gift is not active.");
	}	
	
	else SCM(playerid,COLOR_ALX, "Ai nevoie de 3 ore jucate pentru a folosi comanda /getgift.");
	return 1;
}	

 

Link to comment
Share on other sites

  • 0
stock savePlayerData(const playerid)
{
	if(PlayerData[playerid][pStatus] >= 1 || PlayerData[playerid][pStatus] == -1)
	{
		new saveQuery[1000];
		if(PlayerData[playerid][pStatus] == -1) PlayerData[playerid][pStatus] = 0;

		format(saveQuery, sizeof(saveQuery), "UPDATE playeraccounts SET playerGift = '%d', playerBanned = '%d', playerSeconds = '%d', playerSkin = '%d', playerMoney = '%d', playerBankMoney = '%d', playerHouse = '%d', playerBusiness = '%d' WHERE playerID = '%d'",
		PlayerData[playerid][pGift], PlayerData[playerid][pBanned], PlayerData[playerid][pSeconds], PlayerData[playerid][pSkin], PlayerData[playerid][pMoney], PlayerData[playerid][pBankMoney], PlayerData[playerid][pHouse], PlayerData[playerid][pBusiness],PlayerData[playerid][pInternalID]);
		mysql_tquery(handle,saveQuery);
		
	}

	return 1;
}

Și rândurl ăsta e pus chiar după celălalte, acolo unde se încarcă.
cache_get_field_content(0, "playerGift", result); PlayerData[extraid][pGift] = strval(result);

 

Link to comment
Share on other sites

  • 0
stock savePlayerData(const playerid)
{
	if(PlayerData[playerid][pStatus] >= 1 || PlayerData[playerid][pStatus] == -1)
	{
		new saveQuery[1000];
		if(PlayerData[playerid][pStatus] == -1) PlayerData[playerid][pStatus] = 0;

		format(saveQuery, sizeof(saveQuery), "UPDATE playeraccounts SET playerGift = '%d', playerBanned = '%d', playerSeconds = '%d', playerSkin = '%d', playerMoney = '%d', playerBankMoney = '%d', playerHouse = '%d', playerBusiness = '%d' WHERE playerID = '%d'",
		PlayerData[playerid][pGift], PlayerData[playerid][pBanned], PlayerData[playerid][pSeconds], PlayerData[playerid][pSkin], PlayerData[playerid][pMoney], PlayerData[playerid][pBankMoney], PlayerData[playerid][pHouse], PlayerData[playerid][pBusiness],PlayerData[playerid][pInternalID]);
		mysql_tquery(handle,saveQuery);
		
	}

	return 1;
}

Și rândurl ăsta e pus chiar după celălalte, acolo unde se încarcă.
cache_get_field_content(0, "playerGift", result); PlayerData[extraid][pGift] = strval(result);

 

În baza de date, trebuie să faci în loc de „Gift”, „playerGift”, pentru că așa o salvezi:

playerGift = '%d'
Link to comment
Share on other sites

  • 0

În baza de date, trebuie să faci în loc de „Gift”, „playerGift”, pentru că așa o salvezi:

playerGift = '%d'

Am rezolvat, nu era din cauza asta, se afla deja playerGift în bază. Dintr-o neatenție rândul 

cache_get_field_content(0, "playerGift", result); PlayerData[extraid][pGift] = strval(result);

era pus mai sus de o acoladă și nu îmi încărca GiftPoints. 

PS: Mulțumesc ca ți-ai dat silința să ma ajuți. O zi bună!

T/C

Edited by Alexx.
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.