Cerere Plugin SK Player Skin

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
User avatar
Gabriel963
Fost moderator
Fost moderator
Posts: 1658
Joined: 03 Feb 2013, 13:03
Detinator Steam: Da
CS Status: Retried
Reputatie: Membru Club eXtreamCS (1 luna)
Fost Moderator
Location: Bucharest, Romania.
Has thanked: 20 times
Been thanked: 85 times

29 Mar 2014, 13:18

Event-urile, first blood/godlike/humili , BlackPack, SuperKnife bloody , asasin rosu cand ai sk. etc. :)
Image
RoyalServer
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3850
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: 76561198063679589
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

29 Mar 2014, 13:29

| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

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

#define VERSION "0.2.0"

#define FIRST_PLAYER_ID	1

new g_iMaxPlayers
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

#define XO_WEAPON 4
#define m_pPlayer 41

#define XO_PLAYER		5
#define m_pActiveItem	373

new g_bHasSuperKnife
#define SetUserSuperKnife(%1)		g_bHasSuperKnife |= 1<<(%1&31)
#define RemoveUserSuperKnife(%1)	g_bHasSuperKnife &= ~(1<<(%1&31))
#define HasUserSuperKnife(%1)		g_bHasSuperKnife & 1<<(%1&31)

new g_iszSuperKnifeModel
new Float:g_flSuperKnifeDamageFactor

new g_iCost[2]

public RoundStart ( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0;
		cs_reset_user_model ( id );
	}
}

public plugin_precache()
{
	register_plugin("Furien SuperKnife", VERSION, "ConnorMcLeod")

        //register_logevent ( "RoundStart" , 2 , "1=Round_Start" );
        register_event ( "HLTV" , "RoundStart" , "a" , "1=0" , "2=0" );

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

	precache_model( "models/player/skinfurienx/skinfurienx.mdl" );

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

	new szFurienName[32], szAntiName[32]

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

		parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))

		switch( szKey[0] )
		{
			case 'A':
			{
				switch( szKey[7] )
				{
					case 'M':
					{
						if( equal(szKey, "ANTI_NAME" ) )
						{
							copy(szAntiName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "ANTI_COST" ) )
						{
							g_iCost[AntiFurien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'F':
			{
				switch( szKey[9] )
				{
					case 'M':
					{
						if( equal(szKey, "FURIEN_NAME" ) )
						{
							copy(szFurienName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "FURIEN_COST" ) )
						{
							g_iCost[Furien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'K':
			{
				switch( szKey[6] )
				{
					case 'M':
					{
						if( equal(szKey, "KNIFE_MODEL" ) )
						{
							precache_model(szValue)
							g_iszSuperKnifeModel = engfunc(EngFunc_AllocString, szValue)
						}
					}
					case 'D':
					{
						if( equal(szKey, "KNIFE_DAMAGE" ) )
						{
							g_flSuperKnifeDamageFactor = str_to_float(szValue)
						}
					}
				}
			}
		}
	}
	fclose( fp )

	if( g_iCost[Furien] || g_iCost[AntiFurien] )
	{
		furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_superknife")	

		RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", true)
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", false)
		RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", true)

		g_iMaxPlayers = get_maxplayers()
	}
}

public client_putinserver(id)
{
	cs_reset_user_model(id)
	RemoveUserSuperKnife(id)
}

public furien_buy_superknife( id )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iCost[iTeam]
	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( ~HasUserSuperKnife(id) )
	{
		if( furien_try_buy(id, iItemCost) )
		{
			SetUserSuperKnife(id)
			if( get_user_weapon(id) == CSW_KNIFE )
			{
				ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
			}
			return ShopBought
		}
		else
		{
			return ShopNotEnoughMoney
		}
	}
	return ShopAlreadyHaveOne
}

public CKnife_Deploy( iKnife )
{
	new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)

	if( HasUserSuperKnife(id) && get_user_team ( id ) == 1 )
	{
		set_pev(id, pev_viewmodel, g_iszSuperKnifeModel)
		cs_set_user_model( id, "skinfurienx" );
	}else
	if( HasUserSuperKnife(id)&&get_user_weapon(id) != CSW_KNIFE ) {
		cs_reset_user_model(id);
	}
}

public CBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
{
	if( IsPlayer(iInflictor) && HasUserSuperKnife(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat( 4, flDamage * g_flSuperKnifeDamageFactor )
	}
}

public Ham_CBasePlayer_Killed_Post(id)
{
	RemoveUserSuperKnife(id)
	cs_reset_user_model(id)
}

public furien_team_change( /*iFurien */ )
{
	if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
	{
		new iPlayers[32], iNum, id
		get_players(iPlayers, iNum, "a")
		for(new i; i<iNum; i++) // sau new i = 0
		{
			id = iPlayers
			if( HasUserSuperKnife(id) )
			{
				RemoveUserSuperKnife(id)
				cs_reset_user_model(id)
				if( get_user_weapon(id) == CSW_KNIFE )
				{
					cs_reset_user_model(id)
					ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
				}
			}
		}
		g_bHasSuperKnife = 0
		cs_reset_user_model(id)
	}
}

public furien_round_restart( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0
		cs_reset_user_model ( id );
	}
}


Nu pricep ce vrei..cand dai tu restart sa se schimbe modelele :-??
Eu stiu ca era un cvar de baza de la modul furien cu care setai daca , atunci cand cumpara super knife( la tine + skin ) de la shopul de baza , urmatoarea runda sa ii rama
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
Snow.
Membru, skill +1
Membru, skill +1
Posts: 243
Joined: 18 Mar 2014, 21:59
Detinator Steam: Nu
Has thanked: 58 times
Been thanked: 24 times

29 Mar 2014, 13:43

@Gabriel963 -> publice sau ... ?

@Adryyy -> Tot la fel ...
Deci ... cand se schimba runda sa iti ramana SK, dar daca dau restart la joc sa nu iti ramana ...
Ion Creanga - Romania Juna, 1869 wrote:Stiu ca sunt prost, dar cand ma uit in jurul meu, prind curaj !
Image
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3850
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: 76561198063679589
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

29 Mar 2014, 14:01

Aaa ok incearca acum
| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

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

#define VERSION "0.2.0"

#define FIRST_PLAYER_ID	1

new g_iMaxPlayers
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

#define XO_WEAPON 4
#define m_pPlayer 41

#define XO_PLAYER		5
#define m_pActiveItem	373

new g_bHasSuperKnife
#define SetUserSuperKnife(%1)		g_bHasSuperKnife |= 1<<(%1&31)
#define RemoveUserSuperKnife(%1)	g_bHasSuperKnife &= ~(1<<(%1&31))
#define HasUserSuperKnife(%1)		g_bHasSuperKnife & 1<<(%1&31)

new g_iszSuperKnifeModel
new Float:g_flSuperKnifeDamageFactor

new g_iCost[2]

public RoundStart ( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0;
		cs_reset_user_model ( id );
	}
}

public plugin_precache()
{
	register_plugin("Furien SuperKnife", VERSION, "ConnorMcLeod")

        register_logevent ( "RoundStart" , 2 , "1=Round_Start" );

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

	precache_model( "models/player/skinfurienx/skinfurienx.mdl" );

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

	new szFurienName[32], szAntiName[32]

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

		parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))

		switch( szKey[0] )
		{
			case 'A':
			{
				switch( szKey[7] )
				{
					case 'M':
					{
						if( equal(szKey, "ANTI_NAME" ) )
						{
							copy(szAntiName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "ANTI_COST" ) )
						{
							g_iCost[AntiFurien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'F':
			{
				switch( szKey[9] )
				{
					case 'M':
					{
						if( equal(szKey, "FURIEN_NAME" ) )
						{
							copy(szFurienName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "FURIEN_COST" ) )
						{
							g_iCost[Furien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'K':
			{
				switch( szKey[6] )
				{
					case 'M':
					{
						if( equal(szKey, "KNIFE_MODEL" ) )
						{
							precache_model(szValue)
							g_iszSuperKnifeModel = engfunc(EngFunc_AllocString, szValue)
						}
					}
					case 'D':
					{
						if( equal(szKey, "KNIFE_DAMAGE" ) )
						{
							g_flSuperKnifeDamageFactor = str_to_float(szValue)
						}
					}
				}
			}
		}
	}
	fclose( fp )

	if( g_iCost[Furien] || g_iCost[AntiFurien] )
	{
		furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_superknife")	

		RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", true)
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", false)
		RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", true)

		g_iMaxPlayers = get_maxplayers()
	}
}

public client_putinserver(id)
{
	cs_reset_user_model(id)
	RemoveUserSuperKnife(id)
}

public furien_buy_superknife( id )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iCost[iTeam]
	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( ~HasUserSuperKnife(id) )
	{
		if( furien_try_buy(id, iItemCost) )
		{
			SetUserSuperKnife(id)
			if( get_user_weapon(id) == CSW_KNIFE )
			{
				ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
			}
			return ShopBought
		}
		else
		{
			return ShopNotEnoughMoney
		}
	}
	return ShopAlreadyHaveOne
}

public CKnife_Deploy( iKnife )
{
	new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)

	if( HasUserSuperKnife(id) && get_user_team ( id ) == 1 )
	{
		set_pev(id, pev_viewmodel, g_iszSuperKnifeModel)
		cs_set_user_model( id, "skinfurienx" );
	}else
	if( HasUserSuperKnife(id)&&get_user_weapon(id) != CSW_KNIFE ) {
		cs_reset_user_model(id);
	}
}

public CBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
{
	if( IsPlayer(iInflictor) && HasUserSuperKnife(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat( 4, flDamage * g_flSuperKnifeDamageFactor )
	}
}

public Ham_CBasePlayer_Killed_Post(id)
{
	RemoveUserSuperKnife(id)
	cs_reset_user_model(id)
}

public furien_team_change( /*iFurien */ )
{
	if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
	{
		new iPlayers[32], iNum, id
		get_players(iPlayers, iNum, "a")
		for(new i; i<iNum; i++) // sau new i = 0
		{
			id = iPlayers
			if( HasUserSuperKnife(id) )
			{
				RemoveUserSuperKnife(id)
				cs_reset_user_model(id)
				if( get_user_weapon(id) == CSW_KNIFE )
				{
					cs_reset_user_model(id)
					ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
				}
			}
		}
		g_bHasSuperKnife = 0
		cs_reset_user_model(id)
	}
}

public furien_round_restart( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0
		cs_reset_user_model ( id );
	}
}
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
Snow.
Membru, skill +1
Membru, skill +1
Posts: 243
Joined: 18 Mar 2014, 21:59
Detinator Steam: Nu
Has thanked: 58 times
Been thanked: 24 times

29 Mar 2014, 14:20

Nimic schimbat .
Ion Creanga - Romania Juna, 1869 wrote:Stiu ca sunt prost, dar cand ma uit in jurul meu, prind curaj !
Image
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

29 Mar 2014, 14:20

Adryyy wrote:Aaa ok incearca acum
| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

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

#define VERSION "0.2.0"

#define FIRST_PLAYER_ID	1

new g_iMaxPlayers
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

#define XO_WEAPON 4
#define m_pPlayer 41

#define XO_PLAYER		5
#define m_pActiveItem	373

new g_bHasSuperKnife
#define SetUserSuperKnife(%1)		g_bHasSuperKnife |= 1<<(%1&31)
#define RemoveUserSuperKnife(%1)	g_bHasSuperKnife &= ~(1<<(%1&31))
#define HasUserSuperKnife(%1)		g_bHasSuperKnife & 1<<(%1&31)

new g_iszSuperKnifeModel
new Float:g_flSuperKnifeDamageFactor

new g_iCost[2]

public RoundStart ( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0;
		cs_reset_user_model ( id );
	}
}

public plugin_precache()
{
	register_plugin("Furien SuperKnife", VERSION, "ConnorMcLeod")

        register_logevent ( "RoundStart" , 2 , "1=Round_Start" );

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

	precache_model( "models/player/skinfurienx/skinfurienx.mdl" );

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

	new szFurienName[32], szAntiName[32]

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

		parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))

		switch( szKey[0] )
		{
			case 'A':
			{
				switch( szKey[7] )
				{
					case 'M':
					{
						if( equal(szKey, "ANTI_NAME" ) )
						{
							copy(szAntiName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "ANTI_COST" ) )
						{
							g_iCost[AntiFurien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'F':
			{
				switch( szKey[9] )
				{
					case 'M':
					{
						if( equal(szKey, "FURIEN_NAME" ) )
						{
							copy(szFurienName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "FURIEN_COST" ) )
						{
							g_iCost[Furien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'K':
			{
				switch( szKey[6] )
				{
					case 'M':
					{
						if( equal(szKey, "KNIFE_MODEL" ) )
						{
							precache_model(szValue)
							g_iszSuperKnifeModel = engfunc(EngFunc_AllocString, szValue)
						}
					}
					case 'D':
					{
						if( equal(szKey, "KNIFE_DAMAGE" ) )
						{
							g_flSuperKnifeDamageFactor = str_to_float(szValue)
						}
					}
				}
			}
		}
	}
	fclose( fp )

	if( g_iCost[Furien] || g_iCost[AntiFurien] )
	{
		furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_superknife")	

		RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", true)
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", false)
		RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", true)

		g_iMaxPlayers = get_maxplayers()
	}
}

public client_putinserver(id)
{
	cs_reset_user_model(id)
	RemoveUserSuperKnife(id)
}

public furien_buy_superknife( id )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iCost[iTeam]
	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( ~HasUserSuperKnife(id) )
	{
		if( furien_try_buy(id, iItemCost) )
		{
			SetUserSuperKnife(id)
			if( get_user_weapon(id) == CSW_KNIFE )
			{
				ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
			}
			return ShopBought
		}
		else
		{
			return ShopNotEnoughMoney
		}
	}
	return ShopAlreadyHaveOne
}

public CKnife_Deploy( iKnife )
{
	new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)

	if( HasUserSuperKnife(id) && get_user_team ( id ) == 1 )
	{
		set_pev(id, pev_viewmodel, g_iszSuperKnifeModel)
		cs_set_user_model( id, "skinfurienx" );
	}else
	if( HasUserSuperKnife(id)&&get_user_weapon(id) != CSW_KNIFE ) {
		cs_reset_user_model(id);
	}
}

public CBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
{
	if( IsPlayer(iInflictor) && HasUserSuperKnife(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat( 4, flDamage * g_flSuperKnifeDamageFactor )
	}
}

public Ham_CBasePlayer_Killed_Post(id)
{
	RemoveUserSuperKnife(id)
	cs_reset_user_model(id)
}

public furien_team_change( /*iFurien */ )
{
	if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
	{
		new iPlayers[32], iNum, id
		get_players(iPlayers, iNum, "a")
		for(new i; i<iNum; i++) // sau new i = 0
		{
			id = iPlayers
			if( HasUserSuperKnife(id) )
			{
				RemoveUserSuperKnife(id)
				cs_reset_user_model(id)
				if( get_user_weapon(id) == CSW_KNIFE )
				{
					cs_reset_user_model(id)
					ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
				}
			}
		}
		g_bHasSuperKnife = 0
		cs_reset_user_model(id)
	}
}

public furien_round_restart( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0
		cs_reset_user_model ( id );
	}
}

Foloseste eventul ResetHUD pentru a reseta modelul la player!
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3850
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: 76561198063679589
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

29 Mar 2014, 14:40

Adventx wrote:
Adryyy wrote:Aaa ok incearca acum
| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

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

#define VERSION "0.2.0"

#define FIRST_PLAYER_ID	1

new g_iMaxPlayers
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

#define XO_WEAPON 4
#define m_pPlayer 41

#define XO_PLAYER		5
#define m_pActiveItem	373

new g_bHasSuperKnife
#define SetUserSuperKnife(%1)		g_bHasSuperKnife |= 1<<(%1&31)
#define RemoveUserSuperKnife(%1)	g_bHasSuperKnife &= ~(1<<(%1&31))
#define HasUserSuperKnife(%1)		g_bHasSuperKnife & 1<<(%1&31)

new g_iszSuperKnifeModel
new Float:g_flSuperKnifeDamageFactor

new g_iCost[2]

public RoundStart ( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0;
		cs_reset_user_model ( id );
	}
}

public plugin_precache()
{
	register_plugin("Furien SuperKnife", VERSION, "ConnorMcLeod")

        register_logevent ( "RoundStart" , 2 , "1=Round_Start" );

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

	precache_model( "models/player/skinfurienx/skinfurienx.mdl" );

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

	new szFurienName[32], szAntiName[32]

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

		parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))

		switch( szKey[0] )
		{
			case 'A':
			{
				switch( szKey[7] )
				{
					case 'M':
					{
						if( equal(szKey, "ANTI_NAME" ) )
						{
							copy(szAntiName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "ANTI_COST" ) )
						{
							g_iCost[AntiFurien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'F':
			{
				switch( szKey[9] )
				{
					case 'M':
					{
						if( equal(szKey, "FURIEN_NAME" ) )
						{
							copy(szFurienName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "FURIEN_COST" ) )
						{
							g_iCost[Furien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'K':
			{
				switch( szKey[6] )
				{
					case 'M':
					{
						if( equal(szKey, "KNIFE_MODEL" ) )
						{
							precache_model(szValue)
							g_iszSuperKnifeModel = engfunc(EngFunc_AllocString, szValue)
						}
					}
					case 'D':
					{
						if( equal(szKey, "KNIFE_DAMAGE" ) )
						{
							g_flSuperKnifeDamageFactor = str_to_float(szValue)
						}
					}
				}
			}
		}
	}
	fclose( fp )

	if( g_iCost[Furien] || g_iCost[AntiFurien] )
	{
		furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_superknife")	

		RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", true)
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", false)
		RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", true)

		g_iMaxPlayers = get_maxplayers()
	}
}

public client_putinserver(id)
{
	cs_reset_user_model(id)
	RemoveUserSuperKnife(id)
}

public furien_buy_superknife( id )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iCost[iTeam]
	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( ~HasUserSuperKnife(id) )
	{
		if( furien_try_buy(id, iItemCost) )
		{
			SetUserSuperKnife(id)
			if( get_user_weapon(id) == CSW_KNIFE )
			{
				ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
			}
			return ShopBought
		}
		else
		{
			return ShopNotEnoughMoney
		}
	}
	return ShopAlreadyHaveOne
}

public CKnife_Deploy( iKnife )
{
	new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)

	if( HasUserSuperKnife(id) && get_user_team ( id ) == 1 )
	{
		set_pev(id, pev_viewmodel, g_iszSuperKnifeModel)
		cs_set_user_model( id, "skinfurienx" );
	}else
	if( HasUserSuperKnife(id)&&get_user_weapon(id) != CSW_KNIFE ) {
		cs_reset_user_model(id);
	}
}

public CBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
{
	if( IsPlayer(iInflictor) && HasUserSuperKnife(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat( 4, flDamage * g_flSuperKnifeDamageFactor )
	}
}

public Ham_CBasePlayer_Killed_Post(id)
{
	RemoveUserSuperKnife(id)
	cs_reset_user_model(id)
}

public furien_team_change( /*iFurien */ )
{
	if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
	{
		new iPlayers[32], iNum, id
		get_players(iPlayers, iNum, "a")
		for(new i; i<iNum; i++) // sau new i = 0
		{
			id = iPlayers
			if( HasUserSuperKnife(id) )
			{
				RemoveUserSuperKnife(id)
				cs_reset_user_model(id)
				if( get_user_weapon(id) == CSW_KNIFE )
				{
					cs_reset_user_model(id)
					ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
				}
			}
		}
		g_bHasSuperKnife = 0
		cs_reset_user_model(id)
	}
}

public furien_round_restart( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0
		cs_reset_user_model ( id );
	}
}

Foloseste eventul ResetHUD pentru a reseta modelul la player!


Da o pusesem ca a 2 solutie :P , rezolvat.

| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

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

#define VERSION "0.2.0"

#define FIRST_PLAYER_ID	1

new g_iMaxPlayers
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

#define XO_WEAPON 4
#define m_pPlayer 41

#define XO_PLAYER		5
#define m_pActiveItem	373

new g_bHasSuperKnife
#define SetUserSuperKnife(%1)		g_bHasSuperKnife |= 1<<(%1&31)
#define RemoveUserSuperKnife(%1)	g_bHasSuperKnife &= ~(1<<(%1&31))
#define HasUserSuperKnife(%1)		g_bHasSuperKnife & 1<<(%1&31)

new g_iszSuperKnifeModel
new Float:g_flSuperKnifeDamageFactor

new g_iCost[2]

public RoundStart ( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0;
		cs_reset_user_model ( id );
	}
}

public plugin_precache()
{
	register_plugin("Furien SuperKnife", VERSION, "ConnorMcLeod")

	register_event ( "ResetHUD" , "RoundStart" , "b" );

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

	precache_model( "models/player/skinfurienx/skinfurienx.mdl" );

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

	new szFurienName[32], szAntiName[32]

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

		parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))

		switch( szKey[0] )
		{
			case 'A':
			{
				switch( szKey[7] )
				{
					case 'M':
					{
						if( equal(szKey, "ANTI_NAME" ) )
						{
							copy(szAntiName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "ANTI_COST" ) )
						{
							g_iCost[AntiFurien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'F':
			{
				switch( szKey[9] )
				{
					case 'M':
					{
						if( equal(szKey, "FURIEN_NAME" ) )
						{
							copy(szFurienName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "FURIEN_COST" ) )
						{
							g_iCost[Furien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'K':
			{
				switch( szKey[6] )
				{
					case 'M':
					{
						if( equal(szKey, "KNIFE_MODEL" ) )
						{
							precache_model(szValue)
							g_iszSuperKnifeModel = engfunc(EngFunc_AllocString, szValue)
						}
					}
					case 'D':
					{
						if( equal(szKey, "KNIFE_DAMAGE" ) )
						{
							g_flSuperKnifeDamageFactor = str_to_float(szValue)
						}
					}
				}
			}
		}
	}
	fclose( fp )

	if( g_iCost[Furien] || g_iCost[AntiFurien] )
	{
		furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_superknife")	

		RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", true)
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", false)
		RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", true)

		g_iMaxPlayers = get_maxplayers()
	}
}

public client_putinserver(id)
{
	cs_reset_user_model(id)
	RemoveUserSuperKnife(id)
}

public furien_buy_superknife( id )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iCost[iTeam]
	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( ~HasUserSuperKnife(id) )
	{
		if( furien_try_buy(id, iItemCost) )
		{
			SetUserSuperKnife(id)
			if( get_user_weapon(id) == CSW_KNIFE )
			{
				ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
			}
			return ShopBought
		}
		else
		{
			return ShopNotEnoughMoney
		}
	}
	return ShopAlreadyHaveOne
}

public CKnife_Deploy( iKnife )
{
	new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)

	if( HasUserSuperKnife(id) && get_user_team ( id ) == 1 )
	{
		set_pev(id, pev_viewmodel, g_iszSuperKnifeModel)
		cs_set_user_model( id, "skinfurienx" );
	}else
	if( HasUserSuperKnife(id)&&get_user_weapon(id) != CSW_KNIFE ) {
		cs_reset_user_model(id);
	}
}

public CBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
{
	if( IsPlayer(iInflictor) && HasUserSuperKnife(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat( 4, flDamage * g_flSuperKnifeDamageFactor )
	}
}

public Ham_CBasePlayer_Killed_Post(id)
{
	RemoveUserSuperKnife(id)
	cs_reset_user_model(id)
}

public furien_team_change( /*iFurien */ )
{
	if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
	{
		new iPlayers[32], iNum, id
		get_players(iPlayers, iNum, "a")
		for(new i; i<iNum; i++) // sau new i = 0
		{
			id = iPlayers
			if( HasUserSuperKnife(id) )
			{
				RemoveUserSuperKnife(id)
				cs_reset_user_model(id)
				if( get_user_weapon(id) == CSW_KNIFE )
				{
					cs_reset_user_model(id)
					ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
				}
			}
		}
		g_bHasSuperKnife = 0
		cs_reset_user_model(id)
	}
}

public furien_round_restart( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0
		cs_reset_user_model ( id );
	}
}
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
First Time
Membru, skill +1
Membru, skill +1
Posts: 113
Joined: 05 Feb 2014, 19:38
Detinator Steam: Da
Has thanked: 16 times
Been thanked: 7 times
Contact:

29 Mar 2014, 23:41

Adryyy wrote:Pui ' amx_bloodyknife ' pe ' 0 ' in ' amxx.cfg ' pe ultima linie
cum pot face ca dupa primul kill sk sa fie plin de singe?
connect furien.watf.ro — Powered by WATF.ro
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3850
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: 76561198063679589
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

30 Mar 2014, 00:18

First Time wrote:
Adryyy wrote:Pui ' amx_bloodyknife ' pe ' 0 ' in ' amxx.cfg ' pe ultima linie
cum pot face ca dupa primul kill sk sa fie plin de singe?
Pui inloc de ' 0 ' ' 1 '
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
Snow.
Membru, skill +1
Membru, skill +1
Posts: 243
Joined: 18 Mar 2014, 21:59
Detinator Steam: Nu
Has thanked: 58 times
Been thanked: 24 times

30 Mar 2014, 13:02

Adryyy wrote:
Adventx wrote:
Adryyy wrote:Aaa ok incearca acum
| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

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

#define VERSION "0.2.0"

#define FIRST_PLAYER_ID	1

new g_iMaxPlayers
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

#define XO_WEAPON 4
#define m_pPlayer 41

#define XO_PLAYER		5
#define m_pActiveItem	373

new g_bHasSuperKnife
#define SetUserSuperKnife(%1)		g_bHasSuperKnife |= 1<<(%1&31)
#define RemoveUserSuperKnife(%1)	g_bHasSuperKnife &= ~(1<<(%1&31))
#define HasUserSuperKnife(%1)		g_bHasSuperKnife & 1<<(%1&31)

new g_iszSuperKnifeModel
new Float:g_flSuperKnifeDamageFactor

new g_iCost[2]

public RoundStart ( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0;
		cs_reset_user_model ( id );
	}
}

public plugin_precache()
{
	register_plugin("Furien SuperKnife", VERSION, "ConnorMcLeod")

        register_logevent ( "RoundStart" , 2 , "1=Round_Start" );

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

	precache_model( "models/player/skinfurienx/skinfurienx.mdl" );

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

	new szFurienName[32], szAntiName[32]

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

		parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))

		switch( szKey[0] )
		{
			case 'A':
			{
				switch( szKey[7] )
				{
					case 'M':
					{
						if( equal(szKey, "ANTI_NAME" ) )
						{
							copy(szAntiName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "ANTI_COST" ) )
						{
							g_iCost[AntiFurien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'F':
			{
				switch( szKey[9] )
				{
					case 'M':
					{
						if( equal(szKey, "FURIEN_NAME" ) )
						{
							copy(szFurienName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "FURIEN_COST" ) )
						{
							g_iCost[Furien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'K':
			{
				switch( szKey[6] )
				{
					case 'M':
					{
						if( equal(szKey, "KNIFE_MODEL" ) )
						{
							precache_model(szValue)
							g_iszSuperKnifeModel = engfunc(EngFunc_AllocString, szValue)
						}
					}
					case 'D':
					{
						if( equal(szKey, "KNIFE_DAMAGE" ) )
						{
							g_flSuperKnifeDamageFactor = str_to_float(szValue)
						}
					}
				}
			}
		}
	}
	fclose( fp )

	if( g_iCost[Furien] || g_iCost[AntiFurien] )
	{
		furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_superknife")	

		RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", true)
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", false)
		RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", true)

		g_iMaxPlayers = get_maxplayers()
	}
}

public client_putinserver(id)
{
	cs_reset_user_model(id)
	RemoveUserSuperKnife(id)
}

public furien_buy_superknife( id )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iCost[iTeam]
	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( ~HasUserSuperKnife(id) )
	{
		if( furien_try_buy(id, iItemCost) )
		{
			SetUserSuperKnife(id)
			if( get_user_weapon(id) == CSW_KNIFE )
			{
				ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
			}
			return ShopBought
		}
		else
		{
			return ShopNotEnoughMoney
		}
	}
	return ShopAlreadyHaveOne
}

public CKnife_Deploy( iKnife )
{
	new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)

	if( HasUserSuperKnife(id) && get_user_team ( id ) == 1 )
	{
		set_pev(id, pev_viewmodel, g_iszSuperKnifeModel)
		cs_set_user_model( id, "skinfurienx" );
	}else
	if( HasUserSuperKnife(id)&&get_user_weapon(id) != CSW_KNIFE ) {
		cs_reset_user_model(id);
	}
}

public CBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
{
	if( IsPlayer(iInflictor) && HasUserSuperKnife(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat( 4, flDamage * g_flSuperKnifeDamageFactor )
	}
}

public Ham_CBasePlayer_Killed_Post(id)
{
	RemoveUserSuperKnife(id)
	cs_reset_user_model(id)
}

public furien_team_change( /*iFurien */ )
{
	if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
	{
		new iPlayers[32], iNum, id
		get_players(iPlayers, iNum, "a")
		for(new i; i<iNum; i++) // sau new i = 0
		{
			id = iPlayers
			if( HasUserSuperKnife(id) )
			{
				RemoveUserSuperKnife(id)
				cs_reset_user_model(id)
				if( get_user_weapon(id) == CSW_KNIFE )
				{
					cs_reset_user_model(id)
					ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
				}
			}
		}
		g_bHasSuperKnife = 0
		cs_reset_user_model(id)
	}
}

public furien_round_restart( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0
		cs_reset_user_model ( id );
	}
}

Foloseste eventul ResetHUD pentru a reseta modelul la player!


Da o pusesem ca a 2 solutie :P , rezolvat.

| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

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

#define VERSION "0.2.0"

#define FIRST_PLAYER_ID	1

new g_iMaxPlayers
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

#define XO_WEAPON 4
#define m_pPlayer 41

#define XO_PLAYER		5
#define m_pActiveItem	373

new g_bHasSuperKnife
#define SetUserSuperKnife(%1)		g_bHasSuperKnife |= 1<<(%1&31)
#define RemoveUserSuperKnife(%1)	g_bHasSuperKnife &= ~(1<<(%1&31))
#define HasUserSuperKnife(%1)		g_bHasSuperKnife & 1<<(%1&31)

new g_iszSuperKnifeModel
new Float:g_flSuperKnifeDamageFactor

new g_iCost[2]

public RoundStart ( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0;
		cs_reset_user_model ( id );
	}
}

public plugin_precache()
{
	register_plugin("Furien SuperKnife", VERSION, "ConnorMcLeod")

	register_event ( "ResetHUD" , "RoundStart" , "b" );

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

	precache_model( "models/player/skinfurienx/skinfurienx.mdl" );

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

	new szFurienName[32], szAntiName[32]

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

		parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))

		switch( szKey[0] )
		{
			case 'A':
			{
				switch( szKey[7] )
				{
					case 'M':
					{
						if( equal(szKey, "ANTI_NAME" ) )
						{
							copy(szAntiName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "ANTI_COST" ) )
						{
							g_iCost[AntiFurien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'F':
			{
				switch( szKey[9] )
				{
					case 'M':
					{
						if( equal(szKey, "FURIEN_NAME" ) )
						{
							copy(szFurienName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "FURIEN_COST" ) )
						{
							g_iCost[Furien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'K':
			{
				switch( szKey[6] )
				{
					case 'M':
					{
						if( equal(szKey, "KNIFE_MODEL" ) )
						{
							precache_model(szValue)
							g_iszSuperKnifeModel = engfunc(EngFunc_AllocString, szValue)
						}
					}
					case 'D':
					{
						if( equal(szKey, "KNIFE_DAMAGE" ) )
						{
							g_flSuperKnifeDamageFactor = str_to_float(szValue)
						}
					}
				}
			}
		}
	}
	fclose( fp )

	if( g_iCost[Furien] || g_iCost[AntiFurien] )
	{
		furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_superknife")	

		RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", true)
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", false)
		RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", true)

		g_iMaxPlayers = get_maxplayers()
	}
}

public client_putinserver(id)
{
	cs_reset_user_model(id)
	RemoveUserSuperKnife(id)
}

public furien_buy_superknife( id )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iCost[iTeam]
	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( ~HasUserSuperKnife(id) )
	{
		if( furien_try_buy(id, iItemCost) )
		{
			SetUserSuperKnife(id)
			if( get_user_weapon(id) == CSW_KNIFE )
			{
				ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
			}
			return ShopBought
		}
		else
		{
			return ShopNotEnoughMoney
		}
	}
	return ShopAlreadyHaveOne
}

public CKnife_Deploy( iKnife )
{
	new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)

	if( HasUserSuperKnife(id) && get_user_team ( id ) == 1 )
	{
		set_pev(id, pev_viewmodel, g_iszSuperKnifeModel)
		cs_set_user_model( id, "skinfurienx" );
	}else
	if( HasUserSuperKnife(id)&&get_user_weapon(id) != CSW_KNIFE ) {
		cs_reset_user_model(id);
	}
}

public CBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
{
	if( IsPlayer(iInflictor) && HasUserSuperKnife(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat( 4, flDamage * g_flSuperKnifeDamageFactor )
	}
}

public Ham_CBasePlayer_Killed_Post(id)
{
	RemoveUserSuperKnife(id)
	cs_reset_user_model(id)
}

public furien_team_change( /*iFurien */ )
{
	if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
	{
		new iPlayers[32], iNum, id
		get_players(iPlayers, iNum, "a")
		for(new i; i<iNum; i++) // sau new i = 0
		{
			id = iPlayers
			if( HasUserSuperKnife(id) )
			{
				RemoveUserSuperKnife(id)
				cs_reset_user_model(id)
				if( get_user_weapon(id) == CSW_KNIFE )
				{
					cs_reset_user_model(id)
					ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
				}
			}
		}
		g_bHasSuperKnife = 0
		cs_reset_user_model(id)
	}
}

public furien_round_restart( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0
		cs_reset_user_model ( id );
	}
}


EDIT: Acuma nu mai primesti SK a 2-a runda .
Ion Creanga - Romania Juna, 1869 wrote:Stiu ca sunt prost, dar cand ma uit in jurul meu, prind curaj !
Image
User avatar
First Time
Membru, skill +1
Membru, skill +1
Posts: 113
Joined: 05 Feb 2014, 19:38
Detinator Steam: Da
Has thanked: 16 times
Been thanked: 7 times
Contact:

30 Mar 2014, 14:24

Adryyy wrote:
First Time wrote:
Adryyy wrote:Pui ' amx_bloodyknife ' pe ' 0 ' in ' amxx.cfg ' pe ultima linie
cum pot face ca dupa primul kill sk sa fie plin de singe?
Pui inloc de ' 0 ' ' 1 '
si nu merge . daca pun "amx_bloodyknife 1" lucreaza dar il pune ca default , iar daca pun " amx_bloodyknife 0 " deloc nu luzreaza " as vrea sa lucreze doar pentru SuperKnife!
connect furien.watf.ro — Powered by WATF.ro
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3850
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: 76561198063679589
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

30 Mar 2014, 19:01

First Time wrote:
Adryyy wrote:
First Time wrote: cum pot face ca dupa primul kill sk sa fie plin de singe?
Pui inloc de ' 0 ' ' 1 '
si nu merge . daca pun "amx_bloodyknife 1" lucreaza dar il pune ca default , iar daca pun " amx_bloodyknife 0 " deloc nu luzreaza " as vrea sa lucreze doar pentru SuperKnife!
Incearca => https://forums.alliedmods.net/showthrea ... 83?p=96783
Snow. wrote:
Adryyy wrote:
Adventx wrote: Foloseste eventul ResetHUD pentru a reseta modelul la player!
Da o pusesem ca a 2 solutie :P , rezolvat.
SURSA EDITATA RECENT | Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

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

#define VERSION "0.2.0"

#define FIRST_PLAYER_ID	1

new g_iMaxPlayers
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

#define XO_WEAPON 4
#define m_pPlayer 41

#define XO_PLAYER		5
#define m_pActiveItem	373

new g_bHasSuperKnife
#define SetUserSuperKnife(%1)		g_bHasSuperKnife |= 1<<(%1&31)
#define RemoveUserSuperKnife(%1)	g_bHasSuperKnife &= ~(1<<(%1&31))
#define HasUserSuperKnife(%1)		g_bHasSuperKnife & 1<<(%1&31)

new g_iszSuperKnifeModel
new Float:g_flSuperKnifeDamageFactor

new g_iCost[2]
/*
public RoundStart ( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0;
		cs_reset_user_model ( id );
	}
}
*/
public plugin_precache()
{
	register_plugin("Furien SuperKnife", VERSION, "ConnorMcLeod")

	//register_event ( "ResetHUD" , "RoundStart" , "b" );

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

	precache_model( "models/player/skinfurienx/skinfurienx.mdl" );

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

	new szFurienName[32], szAntiName[32]

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

		parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))

		switch( szKey[0] )
		{
			case 'A':
			{
				switch( szKey[7] )
				{
					case 'M':
					{
						if( equal(szKey, "ANTI_NAME" ) )
						{
							copy(szAntiName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "ANTI_COST" ) )
						{
							g_iCost[AntiFurien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'F':
			{
				switch( szKey[9] )
				{
					case 'M':
					{
						if( equal(szKey, "FURIEN_NAME" ) )
						{
							copy(szFurienName, charsmax(szAntiName), szValue)
						}
					}
					case 'S':
					{
						if( equal(szKey, "FURIEN_COST" ) )
						{
							g_iCost[Furien] = str_to_num(szValue)
						}
					}
				}
			}
			case 'K':
			{
				switch( szKey[6] )
				{
					case 'M':
					{
						if( equal(szKey, "KNIFE_MODEL" ) )
						{
							precache_model(szValue)
							g_iszSuperKnifeModel = engfunc(EngFunc_AllocString, szValue)
						}
					}
					case 'D':
					{
						if( equal(szKey, "KNIFE_DAMAGE" ) )
						{
							g_flSuperKnifeDamageFactor = str_to_float(szValue)
						}
					}
				}
			}
		}
	}
	fclose( fp )

	if( g_iCost[Furien] || g_iCost[AntiFurien] )
	{
		furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_superknife")	

		RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", true)
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", false)
		RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", true)

		g_iMaxPlayers = get_maxplayers()
	}
}

public client_putinserver(id)
{
	cs_reset_user_model(id)
	RemoveUserSuperKnife(id)
}

public furien_buy_superknife( id )
{
	new iTeam = furien_get_user_team(id)
	if( iTeam == -1 )
	{
		return ShopCloseMenu
	}

	new iItemCost = g_iCost[iTeam]
	if( iItemCost <= 0 )
	{
		return ShopTeamNotAvail
	}

	if( ~HasUserSuperKnife(id) )
	{
		if( furien_try_buy(id, iItemCost) )
		{
			SetUserSuperKnife(id)
			if( get_user_weapon(id) == CSW_KNIFE )
			{
				ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
			}
			return ShopBought
		}
		else
		{
			return ShopNotEnoughMoney
		}
	}
	return ShopAlreadyHaveOne
}

public CKnife_Deploy( iKnife )
{
	new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)

	if( HasUserSuperKnife(id) && get_user_team ( id ) == 1 )
	{
		set_pev(id, pev_viewmodel, g_iszSuperKnifeModel)
		cs_set_user_model( id, "skinfurienx" );
	}else
	if( HasUserSuperKnife(id)&&get_user_weapon(id) != CSW_KNIFE ) {
		cs_reset_user_model(id);
	}
}

public CBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
{
	if( IsPlayer(iInflictor) && HasUserSuperKnife(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE )
	{
		SetHamParamFloat( 4, flDamage * g_flSuperKnifeDamageFactor )
	}
}

public Ham_CBasePlayer_Killed_Post(id)
{
	RemoveUserSuperKnife(id)
	cs_reset_user_model(id)
}

public furien_team_change( /*iFurien */ )
{
	if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
	{
		new iPlayers[32], iNum, id
		get_players(iPlayers, iNum, "a")
		for(new i; i<iNum; i++) // sau new i = 0
		{
			id = iPlayers
			if( HasUserSuperKnife(id) )
			{
				RemoveUserSuperKnife(id)
				cs_reset_user_model(id)
				if( get_user_weapon(id) == CSW_KNIFE )
				{
					cs_reset_user_model(id)
					ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, m_pActiveItem, XO_PLAYER))
				}
			}
		}
		g_bHasSuperKnife = 0
		cs_reset_user_model(id)
	}
}

public furien_round_restart( id )
{
	if ( is_user_connected ( id ) )
	{
		g_bHasSuperKnife = 0
		cs_reset_user_model ( id );
		RemoveUserSuperKnife( id );
	}
}


EDIT: Acuma nu mai primesti SK a 2-a runda .


Am editat sursa din acest post , try.
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 20 guests