Jump to content
Autentificarea cu Google și Facebook nu mai este disponibilă. ×

Question

Posted

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.

6 answers to this question

Recommended Posts

  • 0
Posted

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;
}	

 

  • 0
Posted
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);

 

  • 0
Posted
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'
  • 0
Posted (edited)

Î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.
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.