Skocz do zawartości
szogun

[Rozwiązane] DailyCredits

Rekomendowane odpowiedzi

Cześć, potrzebuje lekko przerobić plugin w którym chcę podmienić obsługę sklepu ze store na shop core, niestety za bardzo mi z tym nie idzie.

 

Link do dailycredits - https://forums.alliedmods.net/showthread.php?p=2540317
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Shop core w załączniku z racji że nie każdy chce zakładać konta na ruskich forach .

 

Jak się nie myle wystarczy tylko zrobić tutaj zmiany korzystając z forwardu

 

Spoiler

Action Forward_OnCreditsSet(int client, int &credits, int by_who)
{
	Action result = Plugin_Continue;
	
	Call_StartForward(h_fwdOnCreditsSet);
	Call_PushCell(client);
	Call_PushCellRef(credits);
	Call_PushCell(by_who);
	Call_Finish(result);
	
	return result;
}

Action Forward_OnCreditsGiven(int client, int &credits, int by_who)
{
	Action result = Plugin_Continue;
	
	Call_StartForward(h_fwdOnCreditsGiven);
	Call_PushCell(client);
	Call_PushCellRef(credits);
	Call_PushCell(by_who);
	Call_Finish(result);
	
	return result;
}

 

Spoiler

stock void GiveCredits(int client, bool FirstDay)
{
	if (FirstDay)
	{
		Store_SetClientCredits(client, Store_GetClientCredits(client) + GetConVarInt(g_hDailyCredits)); // Giving credits
		CPrintToChatEx(client, client, "%t", "CreditsRecieved", GetConVarInt(g_hDailyCredits));
		SetClientCookie(client, g_hDailyBonusCookie, "1");
		strcopy(SavedBonus[client], sizeof(SavedBonus[]), "1");
		SetClientCookie(client, g_hDailyCookie, CurrentDate);
		Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
	}
	else
	{
		int resetDaysSetting = GetConVarInt(g_hDailyReset);
		int TotalCredits = GetConVarInt(g_hDailyCredits) + ReturnDailyBonus(client);
		if (TotalCredits > GetConVarInt(g_hDailyMax))TotalCredits = GetConVarInt(g_hDailyMax);
		int streakDays = ReturnStreakDays(client);
		if (streakDays > 0)
		{
			streakDays--;
		}
		
		Store_SetClientCredits(client, Store_GetClientCredits(client) + TotalCredits); // Giving credits
		
		if (streakDays != 0)
		{
			if (streakDays >= resetDaysSetting) //if the current streak of days is the same as the value for resetting the "streak cycle"
			{
				CPrintToChatEx(client, client, "%t", "LastCreditsRecieved", TotalCredits);
				CPrintToChatEx(client, client, "%t", "ResetDays", resetDaysSetting); //tell the user that the reset cycle has been reached
				SetClientCookie(client, g_hDailyCookie, CurrentDate); // Set saved date to today
				Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
				int cookievalue = 0;
				IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[])); // Reset the bonus
				SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]); // Save bonus
			}
			else //streak is smaller then reset period
			{
				CPrintToChatEx(client, client, "%t", "CreditsRecieved", TotalCredits); // Chat 
				SetClientCookie(client, g_hDailyCookie, CurrentDate); // Set saved date to today
				Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
				int cookievalue = StringToInt(SavedBonus[client]);
				CPrintToChatEx(client, client, "%t", "CurrentDay", cookievalue + 1); //tell the user which day they are currently on
				cookievalue++;
				IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[])); // Add 1 to bonus
				SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]); // Save bonus
			}
		}
		else
		{
			CPrintToChatEx(client, client, "%t", "CreditsRecieved", TotalCredits); // Chat 
			SetClientCookie(client, g_hDailyCookie, CurrentDate); // Set saved date to today
			Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
			int cookievalue = StringToInt(SavedBonus[client]);
			CPrintToChatEx(client, client, "%t", "CurrentDay", cookievalue + 1); //tell the user which day they are currently on
			cookievalue++;
			IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[])); // Add 1 to bonus
			SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]); // Save bonus
		}
	}
}

 

 

shop.zip
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Edytowane przez szogun

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
stock void GiveCredits(int client, bool FirstDay)
{
	if (FirstDay)
	{
		//Store_SetClientCredits(client, Store_GetClientCredits(client) + GetConVarInt(g_hDailyCredits)); // Giving credits
		Shop_GiveClientCredits(client, GetConVarInt(g_hDailyCredits, CREDITS_BY_NATIVE);

		CPrintToChatEx(client, client, "%t", "CreditsRecieved", GetConVarInt(g_hDailyCredits));
		SetClientCookie(client, g_hDailyBonusCookie, "1");
		strcopy(SavedBonus[client], sizeof(SavedBonus[]), "1");
		SetClientCookie(client, g_hDailyCookie, CurrentDate);
		Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
	}
	else
	{
		int resetDaysSetting = GetConVarInt(g_hDailyReset);
		int TotalCredits = GetConVarInt(g_hDailyCredits) + ReturnDailyBonus(client);
		if (TotalCredits > GetConVarInt(g_hDailyMax))TotalCredits = GetConVarInt(g_hDailyMax);
		int streakDays = ReturnStreakDays(client);
		if (streakDays > 0)
		{
			streakDays--;
		}
		
		//Store_SetClientCredits(client, Store_GetClientCredits(client) + TotalCredits); // Giving credits
		Shop_GiveClientCredits(client, TotalCredits, CREDITS_BY_NATIVE);

		if (streakDays != 0)
		{
			if (streakDays >= resetDaysSetting) //if the current streak of days is the same as the value for resetting the "streak cycle"
			{
				CPrintToChatEx(client, client, "%t", "LastCreditsRecieved", TotalCredits);
				CPrintToChatEx(client, client, "%t", "ResetDays", resetDaysSetting); //tell the user that the reset cycle has been reached
				SetClientCookie(client, g_hDailyCookie, CurrentDate); // Set saved date to today
				Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
				int cookievalue = 0;
				IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[])); // Reset the bonus
				SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]); // Save bonus
			}
			else //streak is smaller then reset period
			{
				CPrintToChatEx(client, client, "%t", "CreditsRecieved", TotalCredits); // Chat 
				SetClientCookie(client, g_hDailyCookie, CurrentDate); // Set saved date to today
				Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
				int cookievalue = StringToInt(SavedBonus[client]);
				CPrintToChatEx(client, client, "%t", "CurrentDay", cookievalue + 1); //tell the user which day they are currently on
				cookievalue++;
				IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[])); // Add 1 to bonus
				SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]); // Save bonus
			}
		}
		else
		{
			CPrintToChatEx(client, client, "%t", "CreditsRecieved", TotalCredits); // Chat 
			SetClientCookie(client, g_hDailyCookie, CurrentDate); // Set saved date to today
			Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
			int cookievalue = StringToInt(SavedBonus[client]);
			CPrintToChatEx(client, client, "%t", "CurrentDay", cookievalue + 1); //tell the user which day they are currently on
			cookievalue++;
			IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[])); // Add 1 to bonus
			SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]); // Save bonus
		}
	}
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dopiero teraz udało mi się do tego przysiąść i przy kompilacji mam błąd oraz sama myśl aby odwołać się do funkcji raczej się nie sprawdzi gdyż plugin posiada #include <store>

które zamieniłem na shop ale również nie miałem jak tego sprawdzić

Cytat

//// dailycredits.sp
//
// dailycredits.sp(119) : error 092: number of arguments does not match definiti
on
//
// 1 Error.
//
// Compilation Time: 0,36 sec

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wkradła się literówka.

stock void GiveCredits(int client, bool FirstDay)
{
	if(FirstDay)
	{
		Shop_GiveClientCredits(client, g_hDailyCredits.IntValue, CREDITS_BY_NATIVE);

		CPrintToChatEx(client, client, "%t", "CreditsRecieved", g_hDailyCredits.IntValue);
		SetClientCookie(client, g_hDailyBonusCookie, "1");
		strcopy(SavedBonus[client], sizeof(SavedBonus[]), "1");
		SetClientCookie(client, g_hDailyCookie, CurrentDate);
		Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
	}
	else
	{
		int resetDaysSetting = g_hDailyReset.IntValue;
		int TotalCredits = g_hDailyCredits.IntValue + ReturnDailyBonus(client);

		if(TotalCredits > g_hDailyMax.IntValue)
			TotalCredits = g_hDailyMax.IntValue;

		int streakDays = ReturnStreakDays(client);

		if(streakDays > 0)
		{
			streakDays--;
		}
		
		Shop_GiveClientCredits(client, TotalCredits, CREDITS_BY_NATIVE);

		if(streakDays != 0)
		{
			if(streakDays >= resetDaysSetting)
			{
				CPrintToChatEx(client, client, "%t", "LastCreditsRecieved", TotalCredits);
				CPrintToChatEx(client, client, "%t", "ResetDays", resetDaysSetting);
				SetClientCookie(client, g_hDailyCookie, CurrentDate);
				Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
				int cookievalue = 0;
				IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[]));
				SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]);
			}
			else
			{
				CPrintToChatEx(client, client, "%t", "CreditsRecieved", TotalCredits);
				SetClientCookie(client, g_hDailyCookie, CurrentDate);
				Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
				int cookievalue = StringToInt(SavedBonus[client]);
				CPrintToChatEx(client, client, "%t", "CurrentDay", cookievalue + 1);
				cookievalue++;
				IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[]));
				SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]);
			}
		}
		else
		{
			CPrintToChatEx(client, client, "%t", "CreditsRecieved", TotalCredits);
			SetClientCookie(client, g_hDailyCookie, CurrentDate);
			Format(SavedDate[client], sizeof(SavedDate[]), CurrentDate);
			int cookievalue = StringToInt(SavedBonus[client]);
			CPrintToChatEx(client, client, "%t", "CurrentDay", cookievalue + 1);
			cookievalue++;
			IntToString(cookievalue, SavedBonus[client], sizeof(SavedBonus[]));
			SetClientCookie(client, g_hDailyBonusCookie, SavedBonus[client]);
		}
	}
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki, chyba działa jak powinno, kredyty dodaje a ewentualne błędy wyjdą na dniach pewnie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Pomoc udzielona

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...