Страница 1 от 1

Dont damage AWP

Публикувано на: 05 Мар 2019, 08:36
от lantimilan
Hello its any possible to make one plugin to set some steamid not damage if anybody try to kill with AWP.

Dont damage AWP

Публикувано на: 06 Мар 2019, 20:47
от OciXCrom
Create a file named NoDamageAWP.ini in your amxmodx/configs folder and put each SteamID on a new line.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif

#if !defined MAX_AUTHID_LENGTH
const MAX_AUTHID_LENGTH = 64
#endif

const BLOCKED_WEAPON = CSW_AWP

new g_szSteamId[MAX_PLAYERS][MAX_AUTHID_LENGTH], Trie:g_tSteamIds

public plugin_init()
{
	register_plugin("No Damage AWP by SteamID", "1.0", "OciXCrom")
	RegisterHam(Ham_TakeDamage, "player", "PreTakeDamage", 0)
	g_tSteamIds = TrieCreate()
	ReadFile()
}

public plugin_end()
{
	TrieDestroy(g_tSteamIds)
}

public client_putinserver(id)
{
	get_user_authid(id, g_szSteamId[id], charsmax(g_szSteamId[]))
}

ReadFile()
{
	new szFilename[256]
	get_configsdir(szFilename, charsmax(szFilename))
	add(szFilename, charsmax(szFilename), "/NoDamageAWP.ini")

	new iFilePointer = fopen(szFilename, "rt")

	if(iFilePointer)
	{
		new szData[128]

		while(!feof(iFilePointer))
		{
			fgets(iFilePointer, szData, charsmax(szData))
			trim(szData)

			switch(szData[0])
			{
				case EOS, ';', '#': continue
				default:
				{
					trim(szData)
					TrieSetCell(g_tSteamIds, szData, 1)
				}
			}
		}

		fclose(iFilePointer)
	}
}

public PreTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
	return (TrieKeyExists(g_tSteamIds, g_szSteamId[iAttacker]) && get_user_weapon(iAttacker) == BLOCKED_WEAPON && iAttacker == iInflictor) ? HAM_SUPERCEDE : HAM_IGNORED
}

Dont damage AWP

Публикувано на: 06 Мар 2019, 21:11
от lantimilan
OciXCrom написа: 06 Мар 2019, 20:47 Create a file named NoDamageAWP.ini in your amxmodx/configs folder and put each SteamID on a new line.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif

#if !defined MAX_AUTHID_LENGTH
const MAX_AUTHID_LENGTH = 64
#endif

const BLOCKED_WEAPON = CSW_AWP

new g_szSteamId[MAX_PLAYERS][MAX_AUTHID_LENGTH], Trie:g_tSteamIds

public plugin_init()
{
	register_plugin("No Damage AWP by SteamID", "1.0", "OciXCrom")
	RegisterHam(Ham_TakeDamage, "player", "PreTakeDamage", 0)
	g_tSteamIds = TrieCreate()
	ReadFile()
}

public plugin_end()
{
	TrieDestroy(g_tSteamIds)
}

public client_putinserver(id)
{
	get_user_authid(id, g_szSteamId[id], charsmax(g_szSteamId[]))
}

ReadFile()
{
	new szFilename[256]
	get_configsdir(szFilename, charsmax(szFilename))
	add(szFilename, charsmax(szFilename), "/NoDamageAWP.ini")

	new iFilePointer = fopen(szFilename, "rt")

	if(iFilePointer)
	{
		new szData[128]

		while(!feof(iFilePointer))
		{
			fgets(iFilePointer, szData, charsmax(szData))
			trim(szData)

			switch(szData[0])
			{
				case EOS, ';', '#': continue
				default:
				{
					trim(szData)
					TrieSetCell(g_tSteamIds, szData, 1)
				}
			}
		}

		fclose(iFilePointer)
	}
}

public PreTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
	return (TrieKeyExists(g_tSteamIds, g_szSteamId[iAttacker]) && get_user_weapon(iAttacker) == BLOCKED_WEAPON && iAttacker == iInflictor) ? HAM_SUPERCEDE : HAM_IGNORED
}
Its any possible to have in plugin steamid not have file .ini i need very much

Dont damage AWP

Публикувано на: 06 Мар 2019, 21:15
от OciXCrom
You mean inside the .sma file? But why? That way you will need to recompile the plugin every time you want to add/remove something.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <hamsandwich>

#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif

#if !defined MAX_AUTHID_LENGTH
const MAX_AUTHID_LENGTH = 64
#endif

const BLOCKED_WEAPON = CSW_AWP

new const g_szSteamIds[][] =
{
	"STEAM_:0:123456789",
	"STEAM_:0:123456789",
	"STEAM_:0:123456789"
}

new bool:g_bNoDamage[MAX_PLAYERS]

public plugin_init()
{
	register_plugin("No Damage AWP by SteamID", "1.0", "OciXCrom")
	RegisterHam(Ham_TakeDamage, "player", "PreTakeDamage", 0)
}

public client_putinserver(id)
{
	g_bNoDamage[id] = false

	new szAuthId[MAX_AUTHID_LENGTH]
	get_user_authid(id, szAuthId, charsmax(szAuthId))

	for(new i; i < sizeof(g_szSteamIds); i++)
	{
		if(equal(g_szSteamIds[i], szAuthId))
		{
			g_bNoDamage[id] = true
			break
		}
	}
}

public PreTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
	return (g_bNoDamage[iAttacker] && get_user_weapon(iAttacker) == BLOCKED_WEAPON && iAttacker == iInflictor) ? HAM_SUPERCEDE : HAM_IGNORED
}

Dont damage AWP

Публикувано на: 06 Мар 2019, 21:20
от lantimilan
Because some people who have acces in ftp can joke with this plugin and this form i stoped abuse

Added in 3 minutes 45 seconds:
Thanks for this great plugin closed topic thanks :D