Cereri plugin Furien_weapons

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
RaznanOP
Membru, skill 0
Membru, skill 0
Posts: 1
Joined: 12 Jul 2018, 00:17
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

12 Jul 2018, 20:15

Am o problema cu meniul Anti-Furien Weapon.
Jucatorul echipei CT este AFK, iar atunci cand echipa sa castiga, ei intra automat in echipa Teroristi, Furien, dar ramane meniul de arme deschis și poate sa ia arma ...
Ex pentru a intelege clar : Sunt ct , si stau afk pana cand echipa mea va castiga fara shop meniul nu dispare pot cumpara orice arma la inceperea rundei
| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#include "furien.inc"
#include "furien_shop.inc"

#define VERSION "0.2.1"

#define MAX_WEAPONS	CSW_P90

enum _:mDatas {
	mFurienCost,
	mFurienBpAmmo,
	mFurienBpAmmoMax,
	mAntiCost,
	mAntiBpAmmo,
	mAntiBpAmmoMax
}

enum _:mAutoDatas {
	miId,
	miBpAmmo,
	miBpAmmoMax
}

new g_iWeaponsBuyDatas[MAX_WEAPONS+1][mDatas]

new Array:g_aFurienAutoWeapons, Array:g_aAntiAutoWeapons

public plugin_init()
{
	register_plugin("Furien Weapons", VERSION, "ConnorMcLeod")

	g_aFurienAutoWeapons = ArrayCreate(mAutoDatas)
	g_aAntiAutoWeapons = ArrayCreate(mAutoDatas)

	new szConfigFile[128]
	get_localinfo("amxx_configsdir", szConfigFile, charsmax(szConfigFile))
	format(szConfigFile, charsmax(szConfigFile), "%s/furien/items/weapons.ini", szConfigFile);

	new fp = fopen(szConfigFile, "rt")
	if( !fp )
	{
		return
	}

	new szDatas[256], szWeaponName[20], szMode[2], szFurienBpAmmo[4], szAntiBpAmmo[4], szFurienBpAmmoMax[4], szAntiBpAmmoMax[4], 
		szFurienName[32], szAntiName[32], szFurienCost[6], szAntiCost[6]

	while( !feof(fp) )
	{
		fgets(fp, szDatas, charsmax(szDatas))
		trim(szDatas)
		if(!szDatas[0] || szDatas[0] == ';' || szDatas[0] == '#' || (szDatas[0] == '/' && szDatas[1] == '/'))
		{
			continue
		}

//		server_print("Weapons Entry")
//		server_print(szDatas)

		parse
		(
			szDatas, 
			szWeaponName, charsmax(szWeaponName),
			szMode, charsmax(szMode),
			szFurienBpAmmo, charsmax(szFurienBpAmmo),
			szAntiBpAmmo, charsmax(szAntiBpAmmo),
			szFurienBpAmmoMax, charsmax(szFurienBpAmmoMax),
			szAntiBpAmmoMax, charsmax(szAntiBpAmmoMax),
			szFurienName, charsmax(szFurienName),
			szAntiName, charsmax(szAntiName),
			szFurienCost, charsmax(szFurienCost),
			szAntiCost, charsmax(szAntiCost)
		)
/*
		server_print("%s %s | BpAmmo %s %s | Max %s %s | %s %s %s %s",
			szWeaponName, szMode, szFurienBpAmmo, szAntiBpAmmo, szFurienBpAmmoMax, szAntiBpAmmoMax,
			szFurienName, szAntiName, szFurienCost, szAntiCost)
*/
		new iId = get_weaponid( szWeaponName )
		if( iId <= 0 )
		{
			continue
		}

		switch( szMode[0] )
		{
			case '0':
			{
				if( (g_iWeaponsBuyDatas[iId][mFurienCost] = str_to_num(szFurienCost)) )
				{
					g_iWeaponsBuyDatas[iId][mFurienBpAmmo] = str_to_num(szFurienBpAmmo)
					g_iWeaponsBuyDatas[iId][mFurienBpAmmoMax] = max( str_to_num(szFurienBpAmmoMax) , g_iWeaponsBuyDatas[iId][mFurienBpAmmo] )
				}

				if( (g_iWeaponsBuyDatas[iId][mAntiCost] = str_to_num(szAntiCost)) )
				{	
					g_iWeaponsBuyDatas[iId][mAntiBpAmmo] = str_to_num(szAntiBpAmmo)
					g_iWeaponsBuyDatas[iId][mAntiBpAmmoMax] = max( str_to_num(szAntiBpAmmoMax) , g_iWeaponsBuyDatas[iId][mAntiBpAmmo] )
				}

				furien_register_item
				(
					szFurienName,
					g_iWeaponsBuyDatas[iId][mFurienCost],
					szAntiName,
					g_iWeaponsBuyDatas[iId][mAntiCost],
					"furien_buy_weapon",
					iId
				)	
			}
			case '1':
			{
				new Datas[mAutoDatas]

				Datas[miId] = iId
				Datas[miBpAmmo] = str_to_num(szFurienBpAmmo)
				Datas[miBpAmmoMax] = max( str_to_num(szFurienBpAmmoMax), Datas[miBpAmmo] )

				ArrayPushArray(g_aFurienAutoWeapons, Datas)
			}
			case '2':
			{
				new Datas[mAutoDatas]

				Datas[miId] = iId
				Datas[miBpAmmo] = str_to_num(szAntiBpAmmo)
				Datas[miBpAmmoMax] = max( str_to_num(szAntiBpAmmoMax), Datas[miBpAmmo] )

				ArrayPushArray(g_aAntiAutoWeapons, Datas)
			}
			case '3':
			{
				new Datas[mAutoDatas]

				Datas[miId] = iId
				Datas[miBpAmmo] = str_to_num(szAntiBpAmmo)
				Datas[miBpAmmoMax] = max( str_to_num(szAntiBpAmmoMax), Datas[miBpAmmo] )

				ArrayPushArray(g_aFurienAutoWeapons, Datas)
				ArrayPushArray(g_aAntiAutoWeapons, Datas)
			}
		}
	}
	fclose(fp)

	if( ArraySize(g_aFurienAutoWeapons) || ArraySize(g_aAntiAutoWeapons) )
	{
		RegisterHam(Ham_Spawn, "player", "Ham_CBasePlayer_Spawn_Post", 1)
	}
}

public plugin_end()
{
	ArrayDestroy( g_aFurienAutoWeapons )
	ArrayDestroy( g_aAntiAutoWeapons )
}

public Ham_CBasePlayer_Spawn_Post( id )
{
	if( is_user_alive(id) )
	{
		switch( furien_get_user_team(id) )
		{
			case Furien :
			{
				GiveAutoWeapons(id, g_aFurienAutoWeapons)
			}
			case AntiFurien :
			{
				GiveAutoWeapons(id, g_aAntiAutoWeapons)
			}
		}
	}
}

public furien_buy_weapon( id, iId )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iWeaponsBuyDatas[iId][ iTeam == Furien ? mFurienCost : mAntiCost ]

	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( user_has_weapon(id, iId) )
	{
		return ShopAlreadyHaveOne
	}

	if( furien_try_buy(id, iItemCost) )
	{
		new szWeaponName[20]
		get_weaponname(iId, szWeaponName, charsmax(szWeaponName))
		give_item(id, szWeaponName)
		new iBpAmmo = g_iWeaponsBuyDatas[iId][ iTeam == Furien ? mFurienBpAmmo : mAntiBpAmmo ]
		if( iBpAmmo )
		{
			new iBpAmmoMax = g_iWeaponsBuyDatas[iId][ iTeam == Furien ? mFurienBpAmmoMax : mAntiBpAmmoMax ]
			new iCurrentBpAmmo = cs_get_user_bpammo(id, iId)
			if( iCurrentBpAmmo < iBpAmmoMax )
			{
				cs_set_user_bpammo(id, iId, min(iCurrentBpAmmo + iBpAmmo, iBpAmmoMax))
			}
		}
		return ShopBought
	}
	return ShopNotEnoughMoney
}

GiveAutoWeapons(id, Array:aWeapons)
{
	new iItemsNum = ArraySize(aWeapons)

	new Datas[mAutoDatas], iId, szWeaponName[20], iBpAmmo, iBpAmmoMax, iCurrentBpAmmo

	for(new i; i<iItemsNum; i++)
	{
		ArrayGetArray(aWeapons, i, Datas)
		iId = Datas[miId]
		if( !user_has_weapon(id, iId) )
		{
			get_weaponname(iId, szWeaponName, charsmax(szWeaponName))
			give_item(id, szWeaponName)
		}

		iBpAmmo = Datas[miBpAmmo]
		if( iBpAmmo )
		{
			iBpAmmoMax = Datas[miBpAmmoMax]
			iCurrentBpAmmo = cs_get_user_bpammo(id, iId)
			if( iCurrentBpAmmo < iBpAmmoMax )
			{
				cs_set_user_bpammo(id, iId, min(iCurrentBpAmmo + iBpAmmo, iBpAmmoMax))
			}
		}
	}
}
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: Yandex [Bot] and 9 guests