Raised This Month: $51 Target: $400
 12% 

[HELP] Shop Plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
rinka124
Junior Member
Join Date: Sep 2017
Location: Romania
Old 06-21-2018 , 07:56   [HELP] Shop Plugin
Reply With Quote #1

I have a problem with shop plugin , when i buy something next round i can't buy again , someone help?
I tried to make when you buy items in a round u can't buy that items in respective round again , but i made this for all match ... and gravity & speed is not reseting at round finish
btw: This plugin depends from other jailbreak plugin that's why ShopJailbreak_OnPluginStart()
Code:
#include <sourcemod>
#include <autoexecconfig>
#include <simon>
#include <sdktools>
#include <cstrike>
#include <smartjaildoors>
#include <colors>
#include <sdkhooks>  
#include <SteamWorks>

#define LoopAllPlayers(%1) for(int %1=1;%1<=MaxClients;++%1)\
if(IsClientInGame(%1) && !IsFakeClient(%1))

bool b_InGroup[MAXPLAYERS + 1];

bool b_HasReclama[MAXPLAYERS + 1];

bool b_BonusUsed1[MAXPLAYERS + 1];

bool b_BonusUsed2[MAXPLAYERS + 1];

Handle GroupID;

int iGroupID;

static String:TPPath[PLATFORM_MAX_PATH]; 
new Handle:ClientRinkaTimer[32]; 
static Minutes[32]; 
static Points[32];

new bool:g_bCommandUsedMinutes5[MAXPLAYERS+1];
new bool:g_bCommandUsedMinutes15[MAXPLAYERS+1];
new bool:g_bCommandUsedMinutes30[MAXPLAYERS+1];
new bool:g_bCommandUsedMinutes60[MAXPLAYERS+1];

new bool:g_bCommandUsedHadHeGrenade[MAXPLAYERS+1];
new bool:g_bCommandUsedHadHeMolotov[MAXPLAYERS+1];
new bool:g_bCommandUsedHadHeFlashBang[MAXPLAYERS+1];
new bool:g_bCommandUsedHadHeSmoke[MAXPLAYERS+1];

new bool:g_bCommandUsedHadHeDisguise[MAXPLAYERS+1];
new bool:g_bCommandUsedHadHeOpenCellDoors[MAXPLAYERS+1];
new bool:g_bCommandUsedHadHeFreeDay[MAXPLAYERS+1];
new bool:g_bCommandUsedHadHeHighSpeed[MAXPLAYERS+1];
new bool:g_bCommandUsedHadHeLowGravity[MAXPLAYERS+1];

ShopJailbreak_OnPluginStart()
{   
	if(!FileExists(TPPath))
	{
		BuildPath(Path_SM, TPPath, sizeof(TPPath), "data/playerstats/shop.txt"); 
	}

	AutoExecConfig(true, "jailbreak_mode_rinka", "JailBreak_MODE_Rinka");	
	
	RegConsoleCmd("sm_shop", Command_ShowShop, ""); 
	RegConsoleCmd("sm_buy", Command_ShowShop, ""); 
	RegConsoleCmd("sm_points", Command_ShowPoints, ""); 
	RegConsoleCmd("sm_puncte", Command_ShowPoints, ""); 
	RegConsoleCmd("sm_lei", Command_ShowPoints, ""); 	
	RegConsoleCmd("sm_give", Command_DonatePoints, "");
	RegConsoleCmd("sm_pentrusaraci", Command_GivePoints, ""); 	
    
	RegConsoleCmd("sm_bonus", Command_BonusMenu, "Bonus Menu");
	
	HookConVarChange(GroupID = AutoExecConfig_CreateConVar("sm_rinka_groupid", "30576146", "Group ID 64 de la steam grupul pentru shop"), OnCvarChanged);
	
	HookEvent("round_start", Player_spawnHTAH);
	HookEvent("player_death", playerDeathxDrinka);
	
	AutoExecConfig_ExecuteFile();
	AutoExecConfig_CleanFile();
	
	UpdateConvars();
}

public Action:playerDeathxDrinka(Handle:event, const String:name[], bool:dontBroadcast)    
{   	
	new killer = GetClientOfUserId(GetEventInt(event, "attacker", 0));
	new victim = GetClientOfUserId(GetEventInt(event, "userid", 0));
	if (!IsClientInGame(killer) && !IsPlayerAlive(killer)) 
	{
		return Action:3;
	}
	
	if (killer == victim)
	{	
		return Plugin_Handled;
	}
	Points[killer] += 50;
	CPrintToChat(killer, "%t {default}Ai primit : {green}50 puncte!", "JailBreak Prefix");	
	
	return Plugin_Handled;  	
}   

public void OnCvarChanged(Handle hConvar, const char[] chOldValue, const char[] chNewValue)
{
	UpdateConvars();
}

public void UpdateConvars()
{
	iGroupID 		= GetConVarInt(GroupID);
}

ShopJailbreak_OnClientPutInServer(client) 
{ 
	b_InGroup[client] = false;
	SteamWorks_GetUserGroupStatus(client, iGroupID);

	new String:szName[32];
	GetClientName(client, szName, 32);
	if (StrContains(szName, "JB.DUST2.RO", false) != -1)
	{
		b_HasReclama[client] = true;
	}
	else
	{
	        b_HasReclama[client] = false;
	}
	
        SavePoints(client, 1); 
        ClientRinkaTimer[client] = (CreateTimer(60.0, TimerRinkaAdd, client, TIMER_REPEAT));
} 

bool IsNameGold(int client)
{
	decl String:ClientName[128], String:sLine[128];

	GetClientName(client, ClientName, sizeof(ClientName)); 

	if(StrContains(ClientName, "JB.DUST2.RO", false) != -1)
	{
		return true;
	}
	
	else if(StrContains(ClientName, sLine, false) != -1)
	{
		return false;
	}
	
	return true;
}

public int SteamWorks_OnClientGroupStatus(int authid, int groupid, bool isMember, bool isOfficer)
{
	
	int client = GetUserFromAuthID(authid);
	
	if(isMember)
	{
		b_InGroup[client] = true;
	}
	
}

int GetUserFromAuthID(int authid)
{
	
	LoopAllPlayers(i)
	{
		char authstring[50];
		GetClientAuthId(i, AuthId_Steam3, authstring, sizeof(authstring));	
		
		char authstring2[50];
		IntToString(authid, authstring2, sizeof(authstring2));
		
		if(StrContains(authstring, authstring2) != -1)
		{
			return i;
		}
	}
	
	return -1;

}

ShopJailbreak_OnClientDisconnect(client) 
{ 
	CloseHandle(ClientRinkaTimer[client]); 
	
	SavePoints(client, 0); 
	
	g_bCommandUsedMinutes5[client] = false;
	g_bCommandUsedMinutes15[client] = false;
	g_bCommandUsedMinutes30[client] = false;
	g_bCommandUsedMinutes60[client] = false;		
	g_bCommandUsedHadHeGrenade[client] = false;
	g_bCommandUsedHadHeFlashBang[client] = false;
	g_bCommandUsedHadHeMolotov[client] = false;
	g_bCommandUsedHadHeSmoke[client] = false;
	g_bCommandUsedHadHeDisguise[client] = false;
	g_bCommandUsedHadHeOpenCellDoors[client] = false;
	g_bCommandUsedHadHeFreeDay[client] = false;
	g_bCommandUsedHadHeHighSpeed[client] = false;
	g_bCommandUsedHadHeLowGravity[client] = false;	
} 

public Action Player_spawnHTAH(Handle event , const String:name[] , bool dontBroadcast)    
{
	int client = GetClientOfUserId(GetEventInt(event, "userid"));

	g_bCommandUsedHadHeGrenade[client] = false;
	g_bCommandUsedHadHeFlashBang[client] = false;
	g_bCommandUsedHadHeMolotov[client] = false;
	g_bCommandUsedHadHeSmoke[client] = false;			
	g_bCommandUsedHadHeDisguise[client] = false;
	g_bCommandUsedHadHeOpenCellDoors[client] = false;
	g_bCommandUsedHadHeFreeDay[client] = false;
	g_bCommandUsedHadHeHighSpeed[client] = false;
	g_bCommandUsedHadHeLowGravity[client] = false;
	
	SetEntityGravity(client, 1.0);
	SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", 1.0);	
	SetEntPropFloat(client, Prop_Data, "m_flGravity", 1.0);	
}

public Action:Command_BonusMenu(client, args)
{ 
    Handle bmenu = CreateMenu(bonusmenu, MenuAction:20);   
    SetMenuTitle(bmenu, "Bonus Menu");   
      
    if (b_BonusUsed1[client])
    {
        AddMenuItem(bmenu, "bonusname", "Name Bonus (500 ʟᴇɪ)", 1); 
    }
    else
    {
        AddMenuItem(bmenu, "bonusname", "Name Bonus (500 ʟᴇɪ)", 0); 
    }
    
    if (b_BonusUsed2[client])
    {
        AddMenuItem(bmenu, "bonusgroup", "Steam Group Bonus (500 ʟᴇɪ)", 1); 
    }
    else
    {
        AddMenuItem(bmenu, "bonusgroup", "Steam Group Bonus (500 ʟᴇɪ)", 0);
    }

    DisplayMenu(bmenu, client, MENU_TIME_FOREVER);  
}

public bonusmenu(Handle:bmenu, MenuAction:action, client, itemNum) 
{
	if ( action == MenuAction_Select ) 
	{
		new String:info[32];
		
			GetMenuItem(bmenu, itemNum, info, sizeof(info));

			if (StrEqual(info, "bonusname"))
			{
				if (IsNameGold(client))
				{
					b_BonusUsed1[client] = true;
					CPrintToChat(client, "%5 Ai primit 500 de LEI deoarece ai pus JB.DUST2.RO in nume !", "JailBreak Prefix");
					Points[client] += 500;
				}
				
				else
				{
					CPrintToChat(client, "%t Ca sa primesti 500 de LEI trebuie ca numele tau sa contina : JB.DUST2.RO", "JailBreak Prefix");
				}
            }
			
				else if (StrEqual(info, "bonusgroup"))
				{
					SteamWorks_GetUserGroupStatus(client, iGroupID);
					if (b_InGroup[client])
					{
						b_BonusUsed2[client] = true;
						CPrintToChat(client, "%t Ai primit 500 de LEI deoarece ai intrat in grupul nostru de steam !", "JailBreak Prefix");
						Points[client] += 500;
					}
					else
					{
						CPrintToChat(client, "%t Ca sa primesti 500 de LEI trebuie sa intrii in grupul nostru de steam ! Link : http://steamcommunity.com/groups/jbdust2ro", "JailBreak Prefix");
						ShowMOTDPanel(client, "Grup de Steam", "http://steamcommunity.com/groups/jbdust2ro", MOTDPANEL_TYPE_URL);
					}
				}
	}
	else if (action == MenuAction_End)
	{
		CloseHandle(bmenu);
	}
}    

public Action:TimerRinkaAdd(Handle:timer, any:client) 
{ 
	if(IsClientConnected(client) && IsClientInGame(client))   
	{
		Minutes[client]++;
		if(Minutes[client] == 5 && !g_bCommandUsedMinutes5[client])
		{
			Points[client] += 5;
			g_bCommandUsedMinutes5[client] = true;
			CPrintToChat(client, "%t {default}Ai primit{red} 5 LEI {default}pentru ca ai stat {red}5 minute {default}pe server !", "JailBreak Prefix");
		}
		if(Minutes[client] == 15 && !g_bCommandUsedMinutes15[client])
		{
			Points[client] += 25;
			g_bCommandUsedMinutes15[client] = true;
			CPrintToChat(client, "%t {default}Ai primit{red} 25 LEI {default}pentru ca ai stat {red}15 minute {default}pe server !", "JailBreak Prefix");
		}
		if(Minutes[client] == 30 && !g_bCommandUsedMinutes30[client])
		{
			Points[client] += 50;
			g_bCommandUsedMinutes30[client] = true;
			CPrintToChat(client, "%t {default}Ai primit{red} 50 LEI {default}pentru ca ai stat {red}30 minute {default}pe server !", "JailBreak Prefix");
		}
		if(Minutes[client] == 60 && !g_bCommandUsedMinutes60[client])
		{
			Points[client] += 100;
			g_bCommandUsedMinutes60[client] = true;
			CPrintToChat(client, "%t {default}Ai primit{red} 100 LEI {default}pentru ca ai stat {red}1 ora {default}pe server !", "JailBreak Prefix");
		}
	}
} 

public Action:Command_ShowShop(client, args)
{  
	if(GetClientTeam(client) == 2 && IsPlayerAlive(client) && IsClientInGame(client))
	{
        new Handle:menu = CreateMenu(Shop_Handler, MenuAction:20);
        decl String:title[256];
        FormatEx(title, 256, "Shop JailBreak | ʟᴇɪ: %d", Points[client]);
        SetMenuTitle(menu, title);
  
        AddMenuItem(menu, "buygrenades", "Grenade");
        AddMenuItem(menu, "buyothers", "Altele");

        DisplayMenu(menu, client, MENU_TIME_FOREVER);  
 
    }
	
	else
	{
		CPrintToChat(client, "%t {default}Trebuie sa fi {red}viu {default}si {red}prizonier pentru a deschide shop-ul !", "JailBreak Prefix");
		return Action:3;
	}

	return Action:3;
}

public Shop_Handler(Handle:menu, MenuAction:action, param1, param2)
{
	switch (action)
	{
		case 4:
		{
			new String:item[64];
			GetMenuItem(menu, param2, item, sizeof(item));
			if (StrEqual(item, "buygrenades", true))
			{
				ShowShopGrenades(param1);
			}
			
			else if (StrEqual(item, "buyothers", true))
			{
				ShowShopOthers(param1);
			}
		}
		case 16:
		{
			CloseHandle(menu);
		}
		default:
		{
		}
	}
	return 0;
}   

ShowShopGrenades(client)
{
	if (!IsClientInGame(client) || !IsPlayerAlive(client))
	{
		CPrintToChat(client, "%t Trebuie sa fii viu pentru a accesa shop-ul !", "JailBreak Prefix");
	}
		new Handle:menu = CreateMenu(Shop_Handler_Grenades, MenuAction:20);
		decl String:title[256];
		FormatEx(title, 256, "Shop Menu | ʟᴇɪ: %d", Points[client]);
		SetMenuTitle(menu, title);

		if (g_bCommandUsedHadHeGrenade[client] || Points[client] < 350) 
		{
			AddMenuItem(menu, "HeGrenade", "Hegrenade - 350 ʟᴇɪ", 1);
		} 
		else 
		{
			AddMenuItem(menu, "HeGrenade", "Hegrenade - 350 ʟᴇɪ", 0);
		}

		if (g_bCommandUsedHadHeFlashBang[client] || Points[client] < 200) 
		{
			AddMenuItem(menu, "Flashbang", "Flashbang - 200 ʟᴇɪ", 1);
		} 
		else 
		{
			AddMenuItem(menu, "Flashbang", "Flashbang - 200 ʟᴇɪ", 0);
		}

		if (g_bCommandUsedHadHeSmoke[client] || Points[client] < 300) 
		{
			AddMenuItem(menu, "Smokegrenade", "Smokegrenade - 300 ʟᴇɪ", 1);
		} 
		else 
		{
			AddMenuItem(menu, "Smokegrenade", "Smokegrenade - 300 ʟᴇɪ", 0);
		}

		if (g_bCommandUsedHadHeMolotov[client] || Points[client] < 400) 
		{
			AddMenuItem(menu, "Molotov", "Molotov - 400 ʟᴇɪ", 1);
		} 
		else 
		{
			AddMenuItem(menu, "Molotov", "Molotov - 400 ʟᴇɪ", 0);
		}

		DisplayMenu(menu, client, MENU_TIME_FOREVER);  
}

public Shop_Handler_Grenades(Handle:menu, MenuAction:action, param1, param2)
{
	switch (action)
	{
		case 4:
		{
			new String:item[64];
			GetMenuItem(menu, param2, item, sizeof(item));
			if (StrEqual(item, "HeGrenade", true))
			{
				GivePlayerItem(param1, "weapon_hegrenade", 0);
				Points[param1] += -350;
				g_bCommandUsedHadHeGrenade[param1] = true;
				CPrintToChat(param1, "%t Ai cumparat {red}Hegrenade{default} !", "JailBreak Prefix");
			}
			else
			{			
				if (StrEqual(item, "Flashbang", true))
				{
					GivePlayerItem(param1, "weapon_flashbang", 0);
					Points[param1] += -200;
					g_bCommandUsedHadHeFlashBang[param1] = true;
					CPrintToChat(param1, "%t Ai cumparat {red}Flashbang{default} !", "JailBreak Prefix");
				}
				if (StrEqual(item, "Smokegrenade", true))
				{
					GivePlayerItem(param1, "weapon_smokegrenade", 0);
					Points[param1] += -300;
					g_bCommandUsedHadHeSmoke[param1] = true;
					CPrintToChat(param1, "%t Ai cumparat {red}Smokegrenade{default} !", "JailBreak Prefix");
				}
				if (StrEqual(item, "Molotov", true))
				{
					GivePlayerItem(param1, "weapon_molotov", 0);
					Points[param1] += -400;
					g_bCommandUsedHadHeMolotov[param1] = true;
					CPrintToChat(param1, "%t Ai cumparat {red}Molotov{default} !", "JailBreak Prefix");
				}
			}
		}
		case 16:
		{
			CloseHandle(menu);
		}
		
		default:
		{
		}
	}
	return 0;
}   

ShowShopOthers(client)
{
	if (!IsClientInGame(client) || !IsPlayerAlive(client))
	{
		PrintToChat(client, "%t \x01Trebuie sa fii viu pentru shop !");
	}
		new Handle:menu=CreateMenu(Shop_Handler_Others, MenuAction:20);
		decl String:title[256];
		FormatEx(title, 256, "Magazin JailBreak | ʟᴇɪ: %d ", Points[client]);
		SetMenuTitle(menu, title);

		if (g_bCommandUsedHadHeDisguise[client] || Points[client] < 1000)
		{
			AddMenuItem(menu, "Disguise", "Disguise - 1000 ʟᴇɪ", 1);
		}
		else
		{
			AddMenuItem(menu, "Disguise", "Disguise - 1000 ʟᴇɪ", 0);
		}
		
		if (g_bCommandUsedHadHeOpenCellDoors[client] || Points[client] < 2000 || GetUserFlagBits(client) & ADMFLAG_RESERVATION) 
		{
			AddMenuItem(menu, "OpenCellDoors", "Revolta - 2000 ʟᴇɪ", 1);
		} 
		else 
		{
			AddMenuItem(menu, "OpenCellDoors", "Revolta - 2000 ʟᴇɪ", 0);
		}
		
		if (g_bCommandUsedHadHeHighSpeed[client] || Points[client] < 650)
		{
			AddMenuItem(menu, "HighSpeed", "HighSpeed - 650 ʟᴇɪ", 1);
		}
		else
		{
			AddMenuItem(menu, "HighSpeed", "HighSpeed - 650 ʟᴇɪ", 0);
		}
		
		if (g_bCommandUsedHadHeLowGravity[client] || Points[client] < 550) 
		{
			AddMenuItem(menu, "LowGravity", "LowGravity - 550 ʟᴇɪ", 1);
		} 
		else 
		{
			AddMenuItem(menu, "LowGravity", "LowGravity - 550 ʟᴇɪ", 0);
		}
		
		if (g_bCommandUsedHadHeFreeDay[client] || Points[client] < 500) 
		{
			AddMenuItem(menu, "FreeDay", "FreeDay - 500 ʟᴇɪ", 1);
		} 
		else 
		{
			AddMenuItem(menu, "FreeDay", "FreeDay - 500 ʟᴇɪ", 0);
		}

		DisplayMenu(menu, client, MENU_TIME_FOREVER);  
}

public Shop_Handler_Others(Handle:menu, MenuAction:action, param1, param2)
{
	switch (action)
	{
		case 4:
		{
			new String:item[64];
			GetMenuItem(menu, param2, item, sizeof(item));
			if (StrEqual(item, "Disguise", true))
			{
				PrecacheModel("models/player/custom_player/kuristaja/jailbreak/guard3/guard3.mdl");  
				SetEntityModel(param1, "models/player/custom_player/kuristaja/jailbreak/guard3/guard3.mdl");
				Points[param1] += -1000;
				g_bCommandUsedHadHeDisguise[param1] = true;
				CPrintToChat(param1, "%t Ai cumparat {red}Disguise{default} !", "JailBreak Prefix");
			}
			else
			{
				if (StrEqual(item, "OpenCellDoors", true))
				{
					SJD_OpenDoors();
					Points[param1] += -2000;
					g_bCommandUsedHadHeOpenCellDoors[param1] = true;
					CPrintToChat(param1, "%t Ai cumparat {red}Revolta{default} !", "JailBreak Prefix");
				}
				if (StrEqual(item, "HighSpeed", true))
				{
					Points[param1] += -650;
					g_bCommandUsedHadHeHighSpeed[param1] = true;
					CPrintToChat(param1, "%t Ai cumparat {red}Speed{default} !", "JailBreak Prefix");
					SetEntPropFloat(param1, Prop_Send, "m_flLaggedMovementValue", 1.5);
				}
				if (StrEqual(item, "LowGravity", true))
				{
					SetEntPropFloat(param1, Prop_Data, "m_flGravity", 0.5);
					SetEntityGravity(param1, 0.5);
					Points[param1] += -550;
					g_bCommandUsedHadHeLowGravity[param1] = true;
					CPrintToChat(param1, "%t Ai cumparat {red}Gravity{default} !", "JailBreak Prefix");
				}
				if (StrEqual(item, "FreeDay", true))
				{
					p_freeday[param1] = true
					CreateSprite(param1)				
					PrecacheModel("models/player/prisoner/prisoner_new.mdl");  
					SetEntityModel(param1, "models/player/prisoner/prisoner_new.mdl");
					Points[param1] += -500;
					g_bCommandUsedHadHeFreeDay[param1] = true;
					CPrintToChat(param1, "%t Ai cumparat {red}Freeday{default} !", "JailBreak Prefix");
				}
			}
		}
		case 16:
		{
			CloseHandle(menu);
		}
		default:
		{
		}
	}
	return 0;
}

public Action:Command_DonatePoints(client, args)
{
	if (args != 2)
	{
		CPrintToChat(client, "%t Comanda: {red}/give{default} <target> <amount>", "JailBreak Prefix");
		return Action:3;
	}
	new String:buffer[64];
	new String:target_name[32];
	new target_list[65];
	new target_count;
	new bool:tn_is_ml;
	GetCmdArg(1, buffer, 64);
	if (0 >= (target_count = ProcessTargetString(buffer, client, target_list, 65, 0, target_name, 32, tn_is_ml)))
	{
		CPrintToChat(client, "%t Comanda: {red}/give{default} <sarac> <lei>", "JailBreak Prefix");
		return Action:3;
	}
	new String:Points2[16];
	GetCmdArg(2, Points2, 15);
	new iPoints = StringToInt(Points2, 10);
	if (0 > iPoints)
	{
		CPrintToChat(client, "%t Nu ai introdus un numar corect de LEI !", "JailBreak Prefix");
		iPoints = 0;
		return Action:3;
	}
	if (Points[client] < iPoints)
	{
		CPrintToChat(client, "%t Nu ai destuli LEI !", "JailBreak Prefix");
		iPoints = 0;
		return Action:3;
	}
	if (0 < iPoints)
	{
		new i;
		while (i < target_count)
		{
			if (!target_list[i])
			{
				CPrintToChat(client, "%t That user isn't exist !", "JailBreak Prefix");
				iPoints = 0;
				return Action:3;
			}
			if (target_list[i] == client)
			{
				CPrintToChat(client, "%t You can't transfer points yourself !", "JailBreak Prefix");
				iPoints = 0;
				return Action:3;
			}
			if (target_list[i] != client)
			{
				Points[client] -= iPoints;
				Points[target_list[i]] += iPoints;
				CPrintToChat(client, "%t Ai transferat{red} %d{default} LEI lui {red} %s{default} !", "JailBreak Prefix", iPoints, target_name);
				CPrintToChat(target_list[i], "%t Jucatorul{red} %N{default} ti-a daruit{red} %d{default} LEI!", "JailBreak Prefix", client, iPoints);
				return Action:3;
			}
			i++;
		}
	}
	return Action:3;
}

public Action:Command_GivePoints(client, args)
{
	if (!client || GetUserFlagBits(client) & ADMFLAG_ROOT)
	{
		if (args != 2)
		{
			CPrintToChat(client, "%t Comanda: {red}/pentrusaraci{default} <sarac> <amount>", "JailBreak Prefix");
			return Action:3;
		}
		new String:buffer[64];
		new String:target_name[32];
		new target_list[65];
		new target_count;
		new bool:tn_is_ml;
		GetCmdArg(1, buffer, 64);
		if (0 >= (target_count = ProcessTargetString(buffer, client, target_list, 65, 0, target_name, 32, tn_is_ml)))
		{
			ReplyToTargetError(client, target_count);
			return Action:3;
		}
		if (!target_count)
		{
			return Action:3;
		}
		new String:Points3[16];
		GetCmdArg(2, Points3, 15);
		new iPoints = StringToInt(Points3, 10);
		if (0 > iPoints)
		{
			CPrintToChat(client, "%t Numar incorect !", "JailBreak Prefix");
			iPoints = 0;
			return Action:3;
		}
		if (0 < iPoints)
		{
			new i;
			if (i < target_count)
			{
				if (!target_list[i])
				{
					CPrintToChat(client, "%t Acest jucator nu exista !", "JailBreak Prefix");
					iPoints = 0;
					return Action:3;
				}
				if (client)
				{
				    Points[target_list[i]] += iPoints;
				    CPrintToChatAll("%t {red} %N{default} i-a dat {red}%d{default} LEI lui {red}%s{default} !", "JailBreak Prefix", client, iPoints, target_name);
				    return Action:3;
				}
				else
				{
				    Points[target_list[i]] += iPoints;
				}
			}
		}
	}
	return Action:3;
}

public Action:Command_ShowPoints(client, args) 
{ 
    CPrintToChat(client, "%t {default}Total Points: {red}%d{default}.", "JailBreak Prefix", Points[client]); 
    return Plugin_Handled; 
}   

public SavePoints(client, connection) 
{ 
    new Handle:DB = CreateKeyValues("points"); 
    FileToKeyValues(DB, TPPath); 
     
    new String:SID[32]; 
    GetClientAuthId(client, AuthId_Steam2, SID, sizeof(SID)); 
     
    if(connection == 1) 
    { 
        if(KvJumpToKey(DB, SID, true)) 
        { 
            new String:name[MAX_NAME_LENGTH], String:temp_name[MAX_NAME_LENGTH]; 
            GetClientName(client, name, sizeof(name)); 
             
            KvGetString(DB, "name", temp_name, sizeof(temp_name), "NULL"); 
             
            Points[client] = KvGetNum(DB, "Points", 0); 
         
            KvSetNum(DB, "Points", Points[client]); 
        } 
    }
	
	else if(connection == 0) 
    { 
        if(KvJumpToKey(DB, SID, true)) 
        { 
            KvSetNum(DB, "Points", Points[client]); 
        } 
    } 
     
    KvRewind(DB); 
    KeyValuesToFile(DB, TPPath); 
    CloseHandle(DB); 
}
__________________
xDe

Last edited by rinka124; 06-21-2018 at 08:23.
rinka124 is offline
Send a message via Skype™ to rinka124
mug1wara
AlliedModders Donor
Join Date: Jun 2018
Old 06-21-2018 , 08:42   Re: [HELP] Shop Plugin
Reply With Quote #2

"if (g_bCommandUsedHadHeGrenade[client] || Points[client] < 350"

If g_bCommandUsedHadHeGrenade = true OR if the client has 350 points +, the item will be available. Which means that the bool doesn't affect anything here, only if the client has less than 350 points.

Change || to &&

Last edited by mug1wara; 06-21-2018 at 08:43.
mug1wara is offline
rinka124
Junior Member
Join Date: Sep 2017
Location: Romania
Old 06-21-2018 , 08:53   Re: [HELP] Shop Plugin
Reply With Quote #3

Quote:
Originally Posted by mug1wara View Post
"if (g_bCommandUsedHadHeGrenade[client] || Points[client] < 350"

If g_bCommandUsedHadHeGrenade = true OR if the client has 350 points +, the item will be available. Which means that the bool doesn't affect anything here, only if the client has less than 350 points.

Change || to &&
I changed but now i can buy the same item again and again... in the same round , i need to have acces to buy the item one time per round
__________________
xDe

Last edited by rinka124; 06-21-2018 at 09:10.
rinka124 is offline
Send a message via Skype™ to rinka124
mug1wara
AlliedModders Donor
Join Date: Jun 2018
Old 06-21-2018 , 09:57   Re: [HELP] Shop Plugin
Reply With Quote #4

Quote:
Originally Posted by rinka124 View Post
I changed but now i can buy the same item again and again... in the same round , i need to have acces to buy the item one time per round
PHP Code:
if (Points[client] < 350)
{
    if (
g_bCommandUsedHadHeGrenade[client]) 
    {
        
AddMenuItem(menu"HeGrenade""Hegrenade - 350 ʟᴇɪ"1);
    }
    
    else
    {
        
AddMenuItem(menu"HeGrenade""Hegrenade - 350 ʟᴇɪ"0);
    }
}

else
{
    
AddMenuItem(menu"HeGrenade""Hegrenade - 350 ʟᴇɪ"0);

mug1wara is offline
rinka124
Junior Member
Join Date: Sep 2017
Location: Romania
Old 06-21-2018 , 10:47   Re: [HELP] Shop Plugin
Reply With Quote #5

Quote:
Originally Posted by mug1wara View Post
if (Points[client] < 350)
{
if (g_bCommandUsedHadHeGrenade[client])
{
AddMenuItem(menu, "HeGrenade", "Hegrenade - 350 ʟᴇɪ", 1);
}

else
{
AddMenuItem(menu, "HeGrenade", "Hegrenade - 350 ʟᴇɪ", 0);
}
}

else
{
AddMenuItem(menu, "HeGrenade", "Hegrenade - 350 ʟᴇɪ", 0);
}
I get so much errors now
Errors:
Quote:
// rinka/jailbreak_mode_rinka_hud.sp(27) : error 004: function "OnClientPutInServer" is not implemented
// rinka/jailbreak_mode_rinka_shop.sp(51) : error 017: undefined symbol "Command_ShowPoints"
// rinka/jailbreak_mode_rinka_shop.sp(52) : error 017: undefined symbol "Command_ShowPoints"
// rinka/jailbreak_mode_rinka_shop.sp(53) : error 017: undefined symbol "Command_ShowPoints"
// rinka/jailbreak_mode_rinka_shop.sp(54) : error 017: undefined symbol "Command_DonatePoints"
// rinka/jailbreak_mode_rinka_shop.sp(55) : error 017: undefined symbol "Command_GivePoints"
// rinka/jailbreak_mode_rinka_shop.sp(115) : error 017: undefined symbol "SavePoints"
// rinka/jailbreak_mode_rinka_shop.sp(175) : error 017: undefined symbol "SavePoints"
// rinka/jailbreak_mode_rinka_shop.sp(243) : warning 217: loose indentation
// rinka/jailbreak_mode_rinka_shop.sp(354) : error 017: undefined symbol "ShowShopOthers"
// rinka/jailbreak_mode_rinka_shop.sp(374) : warning 217: loose indentation
// rinka/jailbreak_mode_rinka_shop.sp(374) : error 017: undefined symbol "Shop_Handler_Grenades"
// rinka/jailbreak_mode_rinka_shop.sp(379) : warning 217: loose indentation
// rinka/jailbreak_mode_rinka_shop.sp(426) : warning 217: loose indentation
// rinka/jailbreak_mode_rinka_shop.sp(426) : error 029: invalid expression, assumed zero
// rinka/jailbreak_mode_rinka_shop.sp(442) : warning 217: loose indentation
// rinka/jailbreak_mode_rinka_shop.sp(442) : error 029: invalid expression, assumed zero
// rinka/jailbreak_mode_rinka_shop.sp(447) : warning 217: loose indentation
// rinka/jailbreak_mode_rinka_shop.sp(450) : warning 217: loose indentation
// rinka/jailbreak_mode_rinka_shop.sp(450) : error 029: invalid expression, assumed zero
// rinka/jailbreak_mode_rinka_shop.sp(450) : error 017: undefined symbol "Shop_Handler_Grenades"
// rinka/jailbreak_mode_rinka_shop.sp(452) : error 017: undefined symbol "action"
// rinka/jailbreak_mode_rinka_shop.sp(457) : error 017: undefined symbol "param2"
// rinka/jailbreak_mode_rinka_shop.sp(460) : error 017: undefined symbol "param1"
// rinka/jailbreak_mode_rinka_shop.sp(461) : error 017: undefined symbol "param1"
// rinka/jailbreak_mode_rinka_shop.sp(462) : error 017: undefined symbol "param1"
// rinka/jailbreak_mode_rinka_shop.sp(463) : error 017: undefined symbol "param1"
// rinka/jailbreak_mode_rinka_shop.sp(469) : error 017: undefined symbol "param1"
// rinka/jailbreak_mode_rinka_shop.sp(470) : error 017: undefined symbol "param1"
// rinka/jailbreak_mode_rinka_shop.sp(471) : error 017: undefined symbol "param1"
// rinka/jailbreak_mode_rinka_shop.sp(472) : error 017: undefined symbol "param1"
code: https://hastebin.com/jozexeheve.lisp
__________________
xDe
rinka124 is offline
Send a message via Skype™ to rinka124
mug1wara
AlliedModders Donor
Join Date: Jun 2018
Old 06-21-2018 , 11:10   Re: [HELP] Shop Plugin
Reply With Quote #6

That wasn't because of the code I did, it was there before
mug1wara is offline
rinka124
Junior Member
Join Date: Sep 2017
Location: Romania
Old 06-21-2018 , 11:14   Re: [HELP] Shop Plugin
Reply With Quote #7

Quote:
Originally Posted by mug1wara View Post
That wasn't because of the code I did, it was there before
I didn't got these errors before man
__________________
xDe
rinka124 is offline
Send a message via Skype™ to rinka124
mug1wara
AlliedModders Donor
Join Date: Jun 2018
Old 06-21-2018 , 13:05   Re: [HELP] Shop Plugin
Reply With Quote #8

So weird, I only changed the order of the statements.
mug1wara is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 07:12.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode