MODEL PROBLEM

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
spedon
Membru, skill 0
Membru, skill 0
Posts: 31
Joined: 25 Nov 2016, 04:41
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 8 times
Contact:

02 May 2020, 20:04

L E V I N wrote:
27 Apr 2020, 22:01
i don't have the last include
sorry for late i was bussy this last week
zb_stock.ini

Code: Select all

#include <hamsandwich>

stock ColorChat(const id, const input[], any:...)
{  
    new count = 1, players[32];  
    static msg[192];  
    vformat(msg, 191, input, 3);  

    replace_all(msg, 191, "!g", "^x04"); // Green Color  
    replace_all(msg, 191, "!y", "^x01"); // Default Color  
    replace_all(msg, 191, "!t", "^x03"); // Team Color  

    if (id) players[0] = id; else get_players(players, count, "ch");  
    {
        for (new i = 0; i < count; i++)  
        {  
            if (is_user_connected(players[i]))  
            {  
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);  
                write_byte(players[i]);  
                write_string(msg);  
                message_end();  
            }  
        }  
    }  
}

stock ham_strip_weapon(id,weapon[])
{
    if(!equal(weapon,"weapon_",7)) return 0;

    new wId = get_weaponid(weapon);
    if(!wId) return 0;

    new wEnt;
    while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
    if(!wEnt) return 0;

    if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);

    if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
    ExecuteHamB(Ham_Item_Kill,wEnt);

    set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));

    return 1;
}
RoyalServer 2
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

02 May 2020, 20:38

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <biohazard>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <fun>
#include <zb_stocks>

native bool:bio_has_custom_skin(id)
native bio_update_custom_skin(id)

#define write_coord_fl(%1) engfunc(EngFunc_WriteCoord, %1)
#define message_begin_fl(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4)

new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame

new const V_USP_MODEL[] = "models/v_usp.mdl"
new const P_USP_MODEL[] = "models/p_usp.mdl"
new const W_USP_MODEL[]    = "models/w_usp.mdl"
new const W_OLD_USP_MODEL[]    = "models/w_usp.mdl"

enum _:Sprites
{
	SPRITE_FROST,
	SPRITE_FROST2,
	SPRITE_FLAKE
}


new g_iUSPFrostSpr, g_iMsgScreenFade, g_iMaxPlayers, g_iHudSync, g_iSpriteLaser, g_iGlassGibs, g_iFreezeDmg, g_fFrostTime, g_iDmgMultiplier, g_iStatusIcon
new bool:g_bHasFrostUSP[33], g_bIsFrozen[33]
new g_iDmg[33]

public plugin_init()
{
	register_plugin("ZU USP Neox Pistole", "1.5", "sPe3d*oN.")
	
	// Cvars
	g_fFrostTime = register_cvar("zu_neox_time", "2.5") // Freeze Time. It's Float you can make it 0.5
	g_iFreezeDmg = register_cvar("zu_freezing_neox_damage", "1000") // Damage Requried So Zombie got Frozen
	g_iDmgMultiplier = register_cvar("zu_multiplier_neox_damage", "5") // Multiplie Weapon Damage

	register_clcmd("say /neox", "CmdBuyNeox", ADMIN_LEVEL_H)
	register_clcmd("say_team /neox", "CmdBuyNeox", ADMIN_LEVEL_H)
	register_concmd("amx_neox", "CmdGiveNeox", ADMIN_RCON, "<name>")

	// Message IDS
	g_iHudSync = CreateHudSyncObj()
	g_iMsgScreenFade = get_user_msgid("ScreenFade")
	g_iStatusIcon = get_user_msgid("StatusIcon")

	// Server Max Slots
	g_iMaxPlayers = get_maxplayers()
	
	// Events
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_event("WeapPickup","CheckModel","b","1=19")
	register_event("CurWeapon","CurrentWeapon","be","1=1")
	register_event("DeathMsg", "EventDeathMsg", "a")
	
	// Forwards
	register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
	register_forward(FM_SetModel, "fw_SetModel")
	
	// Hams
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	RegisterHam(Ham_TraceAttack, "player", "TraceAttack", 1)
	RegisterHam(Ham_TraceAttack, "worldspawn", "TraceAttack", 1)
	RegisterHam(Ham_Item_AddToPlayer, "weapon_usp", "fw_FrostUSPAddToPlayer")
}

public plugin_precache() 
{
	// Models
	precache_model(V_USP_MODEL)
	precache_model(P_USP_MODEL)
	precache_model(W_USP_MODEL)
	
	
	// Sprites
	g_iSpriteLaser = precache_model( "sprites/Newlightning.spr")
}

public client_putinserver(id)
{
	g_bHasFrostUSP[id] = false
	g_bIsFrozen[id] = false
}

public client_disconnect(id)
{
	g_bHasFrostUSP[id] = false
	g_bIsFrozen[id] = false
	RemoveEntity(id)
}

public CmdBuyNeox(id,level,cid)
{	
        if (!cmd_access(id,level,cid,2))
	{
                ColorChat(id, "!y[!gZombie UniQue!y] !tAccess denied!y, !gNeox Pistole !yis only for !gVIP's Members")
                client_cmd( id, "spk ^"access denied^"" );
		return PLUGIN_HANDLED
	}

	if ( !is_user_alive(id) )
	{
                ColorChat(id, "!y[!gZombie UniQue!y] To Get !gNeox Pistole !yYou need to be alive!t!!")
		return PLUGIN_HANDLED
	}

	if (cs_get_user_team(id) == CS_TEAM_T)
	{
                ColorChat(id, "!y[!gZombie UniQue!y] You can't Get !gNeox !yvalid Only for !gHumans!t!!")
		return PLUGIN_HANDLED
	}

        if (g_bHasFrostUSP[id])
	{
                ColorChat(id, "!y[!gZombie UniQue!y] You can get !gNeox !yone time per round!t, !ywait next round!t!!")
		return PLUGIN_HANDLED
        }

	g_bHasFrostUSP[id] = true

	give_item(id, "weapon_usp")
        cs_set_user_bpammo(id, CSW_USP, 200)
	g_bHasFrostUSP[id] = true

        new szName[32]
        get_user_name(id, szName, charsmax(szName))
   
        set_hudmessage(0, 200, 255, -1.0, 0.21, 1, 0.0, 5.0, 1.0, 1.0, -1)
        show_hudmessage(0, "%s Have Now a Neox Pistole!!", szName)
        ColorChat(id, "!y[!gZombie UniQue!y] !yYou Have Got !gNeox Pistole")
        return PLUGIN_HANDLED
}

public CmdGiveNeox(id,level,cid)
{
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED;

	new arg[32];
	read_argv(1,arg,31);
	
	new player = cmd_target(id,arg,7);
	if (!player) 
		return PLUGIN_HANDLED;
	
	new name[32];
	get_user_name(player,name,31);

	if (is_user_zombie(player))
	{
		client_print(id, print_console, "!y you can't !ggive Neox Pistole to !g%s !yhe is !tzombie!", name)
		return PLUGIN_HANDLED;
	}
	
	new szAdminName[32]
	get_user_name(id, szAdminName, charsmax(szAdminName))
	
        ColorChat(id, "!y[!gZombie UniQue!y] !tADMIN !g%s !tgive !gNeox Pistole !tto Player !g%s", szAdminName, name)

	give_item(player, "weapon_usp")
        cs_set_user_bpammo(player, CSW_USP, 200)
	g_bHasFrostUSP[player] = true
	
	return PLUGIN_HANDLED
}

public TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], pentru, iDamageType)
{
	if(!is_user_alive(iAttacker))
		return 
	
	if(get_user_weapon(iAttacker) != CSW_USP || !g_bHasFrostUSP[iAttacker])
		return
	
	set_hudmessage(0, 200, 255, -1.0, 0.17, 1, 0.0, 2.0, 1.0, 1.0, -1)
	ShowSyncHudMsg(iAttacker, g_iHudSync, "", g_iDmg[iAttacker], get_pcvar_num(g_iFreezeDmg))
	
	new vec1[3], vec2[3]
	get_user_origin(iAttacker, vec1, 1) 
	get_user_origin(iAttacker, vec2, 4)

	make_beam(vec1, vec2, g_iSpriteLaser, 0, 200, 255, 255)
}

public event_round_start()
{
	for (new i = 1; i <= g_iMaxPlayers; i++)
	{
		g_bHasFrostUSP[i] = false
		g_bIsFrozen[i] = false
		g_iDmg[i] = 0
		
		if(is_user_alive(i))
		{
			Remove_Rendering(i)
		}
	}
}

public EventDeathMsg()
{
	new iVictim = read_data(2)
	RemoveEntity(iVictim)
	Remove_Rendering(iVictim)
	g_bIsFrozen[iVictim] = false
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
	if(!is_user_connected(victim) || !is_user_connected(attacker) || attacker == victim || !attacker)
		return HAM_IGNORED


	if(g_bHasFrostUSP[attacker] && (get_user_weapon(attacker) == CSW_USP))
		SetHamParamFloat(4, damage * get_pcvar_num(g_iDmgMultiplier))
	
	// For Frost Effect Ring
	static Float:originF[3]
	pev(victim, pev_origin, originF)
	
	// For Frost Effect Sound
	static originF2[3] 
	get_user_origin(victim, originF2)
	
	if((get_user_weapon(attacker) == CSW_USP) && g_bHasFrostUSP[attacker])
	{
		g_iDmg[attacker] += (floatround(damage) * get_pcvar_num(g_iDmgMultiplier))
	}
	
	if((g_iDmg[attacker] >= get_pcvar_num(g_iFreezeDmg)) && (get_user_weapon(attacker) == CSW_USP) && g_bHasFrostUSP[attacker])
	{
		new sName[32]
		get_user_name(victim, sName, charsmax(sName))
		FrostEffect(victim)
		FrostEffectRing(originF)
		FrostEffectSound(originF2)
	}
	return HAM_IGNORED
}

public CheckModel(id)
{
	
	if (is_user_alive(id))
	{
		set_pev(id, pev_viewmodel2, V_USP_MODEL)
		set_pev(id, pev_weaponmodel2, P_USP_MODEL)
	}
	return PLUGIN_HANDLED
}

public CurrentWeapon(id)
{
	if ((get_user_weapon(id) == CSW_USP) && g_bHasFrostUSP[id] == true)
	{
		CheckModel(id)
	}
	else
	{
		ClearSyncHud(id, g_iHudSync)
	}
	return PLUGIN_HANDLED
}

public FrostEffect(id)
{
	// Only effect alive unfrozen zombies
	if (!is_user_alive(id) || !is_user_zombie(id) || g_bIsFrozen[id])
		return
	
	message_begin(MSG_ONE_UNRELIABLE, g_iMsgScreenFade, _, id)
	write_short(4096*1) // duration
	write_short(4096*1) // hold time
	write_short(0x0000) // fade type
	write_byte(0) // red
	write_byte(50) // green
	write_byte(200) // blue
	write_byte(100) // alpha
	message_end()

	message_begin(MSG_ONE, g_iStatusIcon, {0,0,0}, id)
	write_byte(1) // Status [0=Hide, 1=Show, 2=Flash]
	write_string("dmg_cold") // Sprite Name
	write_byte(000) // Red
	write_byte(206) // Green
	write_byte(209) // Blue
	message_end()
	
	new ent = create_entity("info_target")
	
	
	new Float:iOrigin[3]
	entity_get_vector(id, EV_VEC_origin, iOrigin)
	set_pev(ent, pev_body, 1)
	iOrigin[2] -= 35
	entity_set_origin(ent, iOrigin)
	set_pev(ent, pev_owner, id)
	set_rendering(ent, kRenderFxNone, 255, 255, 255, kRenderTransAdd, 255)
	entity_set_string(ent, EV_SZ_classname, "ent_frozen")
	entity_set_int(ent, EV_INT_solid, 2)
	new Float: iOriginNew[3]
	entity_get_vector(id, EV_VEC_origin, iOriginNew)
	switch(bio_has_custom_skin(id))
	{
		case false:	set_user_rendering(id, kRenderFxGlowShell, 0, 200, 250, kRenderNormal, 16)
		case true:	set_user_rendering(bio_update_custom_skin(id), kRenderFxGlowShell, 0, 200, 250, kRenderNormal, 16)
	}
	g_bIsFrozen[id] = true
	set_task(get_pcvar_float(g_fFrostTime), "RemoveFrost", id) // Time to Remove Frost Effect 
}

public fw_PlayerPreThink(id)
{
	// Not alive or Not Zombie
	if (!is_user_alive(id) || !g_bIsFrozen[id])
		return

	// Stop motion
	set_pev(id, pev_velocity, Float:{0.0,0.0,0.0})
	set_user_maxspeed(id, 1.0)
	

}

// Frost Effect Sound
public FrostEffectSound(iOrigin[3])
{
	new Entity = create_entity("info_target")

	new Float:flOrigin[3]
	IVecFVec(iOrigin, flOrigin)
	entity_set_origin(Entity, flOrigin)
	emit_sound(Entity, CHAN_WEAPON, "warcraft3/impalehit.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
	remove_entity(Entity)
}


// Frost Effect Ring
FrostEffectRing(const Float:originF3[3])
{
	// Largest ring
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0)
	write_byte(TE_BEAMCYLINDER) // TE id
	engfunc(EngFunc_WriteCoord, originF3[0]) // x
	engfunc(EngFunc_WriteCoord, originF3[1]) // y
	engfunc(EngFunc_WriteCoord, originF3[2]) // z
	engfunc(EngFunc_WriteCoord, originF3[0]) // x axis
	engfunc(EngFunc_WriteCoord, originF3[1]) // y axis
	engfunc(EngFunc_WriteCoord, originF3[2]+100.0) // z axis
	write_short(g_iUSPFrostSpr) // sprite
	write_byte(0) // startframe
	write_byte(0) // framerate
	write_byte(4) // life
	write_byte(60) // width
	write_byte(0) // noise
	write_byte(0) // red
	write_byte(200) // green
	write_byte(255) // blue
	write_byte(200) // brightness
	write_byte(0) // speed
	message_end()
}

// Remove Frost Effect
public RemoveFrost(id)
{
	// Not alive or not frozen anymore
	if (!is_user_alive(id) || !g_bIsFrozen[id])
		return
	
	// Unfreeze
	g_bIsFrozen[id] = false;
	set_task(0.1, "remove_jibs", id)

	// Rest Player Speed
	ExecuteHamB(Ham_Player_ResetMaxSpeed, id)
	
	Remove_Rendering(id)
	RemoveStatusIcon(id)
}

public remove_jibs(id)
{
	RemoveEntity(id)
	
	new Float:origin[3]
	pev(id,pev_origin,origin)
	
	message_begin_fl(MSG_PVS,SVC_TEMPENTITY,origin,0)
	write_byte(TE_IMPLOSION)
	write_coord_fl(origin[0]) // x
	write_coord_fl(origin[1]) // y
	write_coord_fl(origin[2] + 8.0) // z
	write_byte(64) // radius
	write_byte(10) // count
	write_byte(3) // duration
	message_end()
	
	message_begin_fl(MSG_PVS,SVC_TEMPENTITY,origin,0)
	write_byte(TE_SPARKS)
	write_coord_fl(origin[0]) // x
	write_coord_fl(origin[1]) // y
	write_coord_fl(origin[2]) // z
	message_end()
	
	message_begin_fl(MSG_PAS,SVC_TEMPENTITY,origin,0)
	write_byte(TE_BREAKMODEL)
	write_coord_fl(origin[0]) // x
	write_coord_fl(origin[1]) // y
	write_coord_fl(origin[2] + 24.0) // z
	write_coord_fl(16.0) // size x
	write_coord_fl(16.0) // size y
	write_coord_fl(16.0) // size z
	write_coord(random_num(-50,50)) // velocity x
	write_coord(random_num(-50,50)) // velocity y
	write_coord_fl(0) // velocity z
	write_byte(10) // random velocity
	write_short(g_iGlassGibs) // model
	write_byte(10) // count
	write_byte(25) // life
	write_byte(0x01) // flags
	message_end()

}

stock ColorPrint(const id, const input[], any: ...)
{
	new count = 1, players[32]
	static msg[192]
	vformat(msg, 191, input, 3)
	
	replace_all(msg, 191, "!g", "^4")
	replace_all(msg, 191, "!y", "^1")
	replace_all(msg, 191, "!t", "^3")
	replace_all(msg, 191, "!t2", "^0")
	
	if (id) players[0] = id;else get_players(players, count, "ch")
	{
		for (new i = 0; i < count; i++)
		{
			if (is_user_connected( players[i]))
			{
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
				write_byte(players[i])
				write_string(msg)
				message_end()
			}
		}
	}
}

make_beam(const origin2[3], const origin[3], sprite, red, green, blue, alpha)
{
	//BEAMENTPOINTS
	message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte (0) //TE_BEAMENTPOINTS 0
	write_coord(origin2[0])
	write_coord(origin2[1])
	write_coord(origin2[2])
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2])
	write_short(sprite) // sprite
	write_byte(1) // framestart
	write_byte(5) // framerate
	write_byte(2) // life
	write_byte(20) // width
	write_byte(0) // noise 
	write_byte(red) // r, g, b
	write_byte(green) // r, g, b 
	write_byte(blue) // r, g, b 
	write_byte(alpha) // brightness
	write_byte(150) // speed
	message_end()
}

public RemoveStatusIcon(id)
{
	// Remove Status Icon
	message_begin(MSG_ONE, g_iStatusIcon, {0,0,0}, id)
	write_byte(0) // Status [0=Hide, 1=Show, 2=Flash]
	write_string("dmg_cold") // Sprite Name
	message_end()
}

public fw_SetModel(entity, model[])
{
	
	if(!is_valid_ent(entity)) 
		return FMRES_IGNORED

	if(!equali(model, W_OLD_USP_MODEL)) 
		return FMRES_IGNORED


	static iOwner, iStoredUSPID

	// Frost USP Owner
	iOwner = entity_get_edict(entity, EV_ENT_owner)

	// Get drop weapon index (Frost USP) to use in fw_FrostUSPAddToPlayer forward
	iStoredUSPID = find_ent_by_owner(-1, "weapon_usp", entity)

	// If Player Has Frost USP and It's weapon_usp
	if(g_bHasFrostUSP[iOwner] && is_valid_ent(iStoredUSPID))
	{
		// Setting weapon options
		entity_set_int(iStoredUSPID, EV_INT_impulse, 1997)

		// Rest Var
		g_bHasFrostUSP[iOwner] = false
		
		// Set weaponbox new model
		entity_set_model(entity, W_USP_MODEL)
		return FMRES_SUPERCEDE
	}
	return FMRES_IGNORED
}

public fw_FrostUSPAddToPlayer(FrostUSP, id)
{
	// Make sure that this is USP
	if(is_valid_ent(FrostUSP) && is_user_connected(id) && entity_get_int(FrostUSP, EV_INT_impulse) == 1997)
	{
		// Update Var
		g_bHasFrostUSP[id] = true

		// Reset weapon options
		entity_set_int(FrostUSP, EV_INT_impulse, 0)
		return HAM_HANDLED
	}
	return HAM_IGNORED
}

stock Remove_Rendering(id)
{
	switch(bio_has_custom_skin(id))
	{
		case false:	set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderNormal, 16)
		case true:	set_user_rendering(bio_update_custom_skin(id), kRenderFxNone, 255, 255, 255, kRenderNormal, 16)
	}
}

public RemoveEntity(id)
{
	if(!is_user_connected(id))
		return
		
	new iEnt = find_ent_by_owner(-1, "ent_frozen", id);
	
	if(pev_valid(iEnt))
		remove_entity(iEnt)
}
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
spedon
Membru, skill 0
Membru, skill 0
Posts: 31
Joined: 25 Nov 2016, 04:41
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 8 times
Contact:

03 May 2020, 03:24

L E V I N wrote:
02 May 2020, 20:38

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <biohazard>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <fun>
#include <zb_stocks>

native bool:bio_has_custom_skin(id)
native bio_update_custom_skin(id)

#define write_coord_fl(%1) engfunc(EngFunc_WriteCoord, %1)
#define message_begin_fl(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4)

new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame

new const V_USP_MODEL[] = "models/v_usp.mdl"
new const P_USP_MODEL[] = "models/p_usp.mdl"
new const W_USP_MODEL[]    = "models/w_usp.mdl"
new const W_OLD_USP_MODEL[]    = "models/w_usp.mdl"

enum _:Sprites
{
	SPRITE_FROST,
	SPRITE_FROST2,
	SPRITE_FLAKE
}


new g_iUSPFrostSpr, g_iMsgScreenFade, g_iMaxPlayers, g_iHudSync, g_iSpriteLaser, g_iGlassGibs, g_iFreezeDmg, g_fFrostTime, g_iDmgMultiplier, g_iStatusIcon
new bool:g_bHasFrostUSP[33], g_bIsFrozen[33]
new g_iDmg[33]

public plugin_init()
{
	register_plugin("ZU USP Neox Pistole", "1.5", "sPe3d*oN.")
	
	// Cvars
	g_fFrostTime = register_cvar("zu_neox_time", "2.5") // Freeze Time. It's Float you can make it 0.5
	g_iFreezeDmg = register_cvar("zu_freezing_neox_damage", "1000") // Damage Requried So Zombie got Frozen
	g_iDmgMultiplier = register_cvar("zu_multiplier_neox_damage", "5") // Multiplie Weapon Damage

	register_clcmd("say /neox", "CmdBuyNeox", ADMIN_LEVEL_H)
	register_clcmd("say_team /neox", "CmdBuyNeox", ADMIN_LEVEL_H)
	register_concmd("amx_neox", "CmdGiveNeox", ADMIN_RCON, "<name>")

	// Message IDS
	g_iHudSync = CreateHudSyncObj()
	g_iMsgScreenFade = get_user_msgid("ScreenFade")
	g_iStatusIcon = get_user_msgid("StatusIcon")

	// Server Max Slots
	g_iMaxPlayers = get_maxplayers()
	
	// Events
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_event("WeapPickup","CheckModel","b","1=19")
	register_event("CurWeapon","CurrentWeapon","be","1=1")
	register_event("DeathMsg", "EventDeathMsg", "a")
	
	// Forwards
	register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
	register_forward(FM_SetModel, "fw_SetModel")
	
	// Hams
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	RegisterHam(Ham_TraceAttack, "player", "TraceAttack", 1)
	RegisterHam(Ham_TraceAttack, "worldspawn", "TraceAttack", 1)
	RegisterHam(Ham_Item_AddToPlayer, "weapon_usp", "fw_FrostUSPAddToPlayer")
}

public plugin_precache() 
{
	// Models
	precache_model(V_USP_MODEL)
	precache_model(P_USP_MODEL)
	precache_model(W_USP_MODEL)
	
	
	// Sprites
	g_iSpriteLaser = precache_model( "sprites/Newlightning.spr")
}

public client_putinserver(id)
{
	g_bHasFrostUSP[id] = false
	g_bIsFrozen[id] = false
}

public client_disconnect(id)
{
	g_bHasFrostUSP[id] = false
	g_bIsFrozen[id] = false
	RemoveEntity(id)
}

public CmdBuyNeox(id,level,cid)
{	
        if (!cmd_access(id,level,cid,2))
	{
                ColorChat(id, "!y[!gZombie UniQue!y] !tAccess denied!y, !gNeox Pistole !yis only for !gVIP's Members")
                client_cmd( id, "spk ^"access denied^"" );
		return PLUGIN_HANDLED
	}

	if ( !is_user_alive(id) )
	{
                ColorChat(id, "!y[!gZombie UniQue!y] To Get !gNeox Pistole !yYou need to be alive!t!!")
		return PLUGIN_HANDLED
	}

	if (cs_get_user_team(id) == CS_TEAM_T)
	{
                ColorChat(id, "!y[!gZombie UniQue!y] You can't Get !gNeox !yvalid Only for !gHumans!t!!")
		return PLUGIN_HANDLED
	}

        if (g_bHasFrostUSP[id])
	{
                ColorChat(id, "!y[!gZombie UniQue!y] You can get !gNeox !yone time per round!t, !ywait next round!t!!")
		return PLUGIN_HANDLED
        }

	g_bHasFrostUSP[id] = true

	give_item(id, "weapon_usp")
        cs_set_user_bpammo(id, CSW_USP, 200)
	g_bHasFrostUSP[id] = true

        new szName[32]
        get_user_name(id, szName, charsmax(szName))
   
        set_hudmessage(0, 200, 255, -1.0, 0.21, 1, 0.0, 5.0, 1.0, 1.0, -1)
        show_hudmessage(0, "%s Have Now a Neox Pistole!!", szName)
        ColorChat(id, "!y[!gZombie UniQue!y] !yYou Have Got !gNeox Pistole")
        return PLUGIN_HANDLED
}

public CmdGiveNeox(id,level,cid)
{
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED;

	new arg[32];
	read_argv(1,arg,31);
	
	new player = cmd_target(id,arg,7);
	if (!player) 
		return PLUGIN_HANDLED;
	
	new name[32];
	get_user_name(player,name,31);

	if (is_user_zombie(player))
	{
		client_print(id, print_console, "!y you can't !ggive Neox Pistole to !g%s !yhe is !tzombie!", name)
		return PLUGIN_HANDLED;
	}
	
	new szAdminName[32]
	get_user_name(id, szAdminName, charsmax(szAdminName))
	
        ColorChat(id, "!y[!gZombie UniQue!y] !tADMIN !g%s !tgive !gNeox Pistole !tto Player !g%s", szAdminName, name)

	give_item(player, "weapon_usp")
        cs_set_user_bpammo(player, CSW_USP, 200)
	g_bHasFrostUSP[player] = true
	
	return PLUGIN_HANDLED
}

public TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], pentru, iDamageType)
{
	if(!is_user_alive(iAttacker))
		return 
	
	if(get_user_weapon(iAttacker) != CSW_USP || !g_bHasFrostUSP[iAttacker])
		return
	
	set_hudmessage(0, 200, 255, -1.0, 0.17, 1, 0.0, 2.0, 1.0, 1.0, -1)
	ShowSyncHudMsg(iAttacker, g_iHudSync, "", g_iDmg[iAttacker], get_pcvar_num(g_iFreezeDmg))
	
	new vec1[3], vec2[3]
	get_user_origin(iAttacker, vec1, 1) 
	get_user_origin(iAttacker, vec2, 4)

	make_beam(vec1, vec2, g_iSpriteLaser, 0, 200, 255, 255)
}

public event_round_start()
{
	for (new i = 1; i <= g_iMaxPlayers; i++)
	{
		g_bHasFrostUSP[i] = false
		g_bIsFrozen[i] = false
		g_iDmg[i] = 0
		
		if(is_user_alive(i))
		{
			Remove_Rendering(i)
		}
	}
}

public EventDeathMsg()
{
	new iVictim = read_data(2)
	RemoveEntity(iVictim)
	Remove_Rendering(iVictim)
	g_bIsFrozen[iVictim] = false
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
	if(!is_user_connected(victim) || !is_user_connected(attacker) || attacker == victim || !attacker)
		return HAM_IGNORED


	if(g_bHasFrostUSP[attacker] && (get_user_weapon(attacker) == CSW_USP))
		SetHamParamFloat(4, damage * get_pcvar_num(g_iDmgMultiplier))
	
	// For Frost Effect Ring
	static Float:originF[3]
	pev(victim, pev_origin, originF)
	
	// For Frost Effect Sound
	static originF2[3] 
	get_user_origin(victim, originF2)
	
	if((get_user_weapon(attacker) == CSW_USP) && g_bHasFrostUSP[attacker])
	{
		g_iDmg[attacker] += (floatround(damage) * get_pcvar_num(g_iDmgMultiplier))
	}
	
	if((g_iDmg[attacker] >= get_pcvar_num(g_iFreezeDmg)) && (get_user_weapon(attacker) == CSW_USP) && g_bHasFrostUSP[attacker])
	{
		new sName[32]
		get_user_name(victim, sName, charsmax(sName))
		FrostEffect(victim)
		FrostEffectRing(originF)
		FrostEffectSound(originF2)
	}
	return HAM_IGNORED
}

public CheckModel(id)
{
	
	if (is_user_alive(id))
	{
		set_pev(id, pev_viewmodel2, V_USP_MODEL)
		set_pev(id, pev_weaponmodel2, P_USP_MODEL)
	}
	return PLUGIN_HANDLED
}

public CurrentWeapon(id)
{
	if ((get_user_weapon(id) == CSW_USP) && g_bHasFrostUSP[id] == true)
	{
		CheckModel(id)
	}
	else
	{
		ClearSyncHud(id, g_iHudSync)
	}
	return PLUGIN_HANDLED
}

public FrostEffect(id)
{
	// Only effect alive unfrozen zombies
	if (!is_user_alive(id) || !is_user_zombie(id) || g_bIsFrozen[id])
		return
	
	message_begin(MSG_ONE_UNRELIABLE, g_iMsgScreenFade, _, id)
	write_short(4096*1) // duration
	write_short(4096*1) // hold time
	write_short(0x0000) // fade type
	write_byte(0) // red
	write_byte(50) // green
	write_byte(200) // blue
	write_byte(100) // alpha
	message_end()

	message_begin(MSG_ONE, g_iStatusIcon, {0,0,0}, id)
	write_byte(1) // Status [0=Hide, 1=Show, 2=Flash]
	write_string("dmg_cold") // Sprite Name
	write_byte(000) // Red
	write_byte(206) // Green
	write_byte(209) // Blue
	message_end()
	
	new ent = create_entity("info_target")
	
	
	new Float:iOrigin[3]
	entity_get_vector(id, EV_VEC_origin, iOrigin)
	set_pev(ent, pev_body, 1)
	iOrigin[2] -= 35
	entity_set_origin(ent, iOrigin)
	set_pev(ent, pev_owner, id)
	set_rendering(ent, kRenderFxNone, 255, 255, 255, kRenderTransAdd, 255)
	entity_set_string(ent, EV_SZ_classname, "ent_frozen")
	entity_set_int(ent, EV_INT_solid, 2)
	new Float: iOriginNew[3]
	entity_get_vector(id, EV_VEC_origin, iOriginNew)
	switch(bio_has_custom_skin(id))
	{
		case false:	set_user_rendering(id, kRenderFxGlowShell, 0, 200, 250, kRenderNormal, 16)
		case true:	set_user_rendering(bio_update_custom_skin(id), kRenderFxGlowShell, 0, 200, 250, kRenderNormal, 16)
	}
	g_bIsFrozen[id] = true
	set_task(get_pcvar_float(g_fFrostTime), "RemoveFrost", id) // Time to Remove Frost Effect 
}

public fw_PlayerPreThink(id)
{
	// Not alive or Not Zombie
	if (!is_user_alive(id) || !g_bIsFrozen[id])
		return

	// Stop motion
	set_pev(id, pev_velocity, Float:{0.0,0.0,0.0})
	set_user_maxspeed(id, 1.0)
	

}

// Frost Effect Sound
public FrostEffectSound(iOrigin[3])
{
	new Entity = create_entity("info_target")

	new Float:flOrigin[3]
	IVecFVec(iOrigin, flOrigin)
	entity_set_origin(Entity, flOrigin)
	emit_sound(Entity, CHAN_WEAPON, "warcraft3/impalehit.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
	remove_entity(Entity)
}


// Frost Effect Ring
FrostEffectRing(const Float:originF3[3])
{
	// Largest ring
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0)
	write_byte(TE_BEAMCYLINDER) // TE id
	engfunc(EngFunc_WriteCoord, originF3[0]) // x
	engfunc(EngFunc_WriteCoord, originF3[1]) // y
	engfunc(EngFunc_WriteCoord, originF3[2]) // z
	engfunc(EngFunc_WriteCoord, originF3[0]) // x axis
	engfunc(EngFunc_WriteCoord, originF3[1]) // y axis
	engfunc(EngFunc_WriteCoord, originF3[2]+100.0) // z axis
	write_short(g_iUSPFrostSpr) // sprite
	write_byte(0) // startframe
	write_byte(0) // framerate
	write_byte(4) // life
	write_byte(60) // width
	write_byte(0) // noise
	write_byte(0) // red
	write_byte(200) // green
	write_byte(255) // blue
	write_byte(200) // brightness
	write_byte(0) // speed
	message_end()
}

// Remove Frost Effect
public RemoveFrost(id)
{
	// Not alive or not frozen anymore
	if (!is_user_alive(id) || !g_bIsFrozen[id])
		return
	
	// Unfreeze
	g_bIsFrozen[id] = false;
	set_task(0.1, "remove_jibs", id)

	// Rest Player Speed
	ExecuteHamB(Ham_Player_ResetMaxSpeed, id)
	
	Remove_Rendering(id)
	RemoveStatusIcon(id)
}

public remove_jibs(id)
{
	RemoveEntity(id)
	
	new Float:origin[3]
	pev(id,pev_origin,origin)
	
	message_begin_fl(MSG_PVS,SVC_TEMPENTITY,origin,0)
	write_byte(TE_IMPLOSION)
	write_coord_fl(origin[0]) // x
	write_coord_fl(origin[1]) // y
	write_coord_fl(origin[2] + 8.0) // z
	write_byte(64) // radius
	write_byte(10) // count
	write_byte(3) // duration
	message_end()
	
	message_begin_fl(MSG_PVS,SVC_TEMPENTITY,origin,0)
	write_byte(TE_SPARKS)
	write_coord_fl(origin[0]) // x
	write_coord_fl(origin[1]) // y
	write_coord_fl(origin[2]) // z
	message_end()
	
	message_begin_fl(MSG_PAS,SVC_TEMPENTITY,origin,0)
	write_byte(TE_BREAKMODEL)
	write_coord_fl(origin[0]) // x
	write_coord_fl(origin[1]) // y
	write_coord_fl(origin[2] + 24.0) // z
	write_coord_fl(16.0) // size x
	write_coord_fl(16.0) // size y
	write_coord_fl(16.0) // size z
	write_coord(random_num(-50,50)) // velocity x
	write_coord(random_num(-50,50)) // velocity y
	write_coord_fl(0) // velocity z
	write_byte(10) // random velocity
	write_short(g_iGlassGibs) // model
	write_byte(10) // count
	write_byte(25) // life
	write_byte(0x01) // flags
	message_end()

}

stock ColorPrint(const id, const input[], any: ...)
{
	new count = 1, players[32]
	static msg[192]
	vformat(msg, 191, input, 3)
	
	replace_all(msg, 191, "!g", "^4")
	replace_all(msg, 191, "!y", "^1")
	replace_all(msg, 191, "!t", "^3")
	replace_all(msg, 191, "!t2", "^0")
	
	if (id) players[0] = id;else get_players(players, count, "ch")
	{
		for (new i = 0; i < count; i++)
		{
			if (is_user_connected( players[i]))
			{
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
				write_byte(players[i])
				write_string(msg)
				message_end()
			}
		}
	}
}

make_beam(const origin2[3], const origin[3], sprite, red, green, blue, alpha)
{
	//BEAMENTPOINTS
	message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte (0) //TE_BEAMENTPOINTS 0
	write_coord(origin2[0])
	write_coord(origin2[1])
	write_coord(origin2[2])
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2])
	write_short(sprite) // sprite
	write_byte(1) // framestart
	write_byte(5) // framerate
	write_byte(2) // life
	write_byte(20) // width
	write_byte(0) // noise 
	write_byte(red) // r, g, b
	write_byte(green) // r, g, b 
	write_byte(blue) // r, g, b 
	write_byte(alpha) // brightness
	write_byte(150) // speed
	message_end()
}

public RemoveStatusIcon(id)
{
	// Remove Status Icon
	message_begin(MSG_ONE, g_iStatusIcon, {0,0,0}, id)
	write_byte(0) // Status [0=Hide, 1=Show, 2=Flash]
	write_string("dmg_cold") // Sprite Name
	message_end()
}

public fw_SetModel(entity, model[])
{
	
	if(!is_valid_ent(entity)) 
		return FMRES_IGNORED

	if(!equali(model, W_OLD_USP_MODEL)) 
		return FMRES_IGNORED


	static iOwner, iStoredUSPID

	// Frost USP Owner
	iOwner = entity_get_edict(entity, EV_ENT_owner)

	// Get drop weapon index (Frost USP) to use in fw_FrostUSPAddToPlayer forward
	iStoredUSPID = find_ent_by_owner(-1, "weapon_usp", entity)

	// If Player Has Frost USP and It's weapon_usp
	if(g_bHasFrostUSP[iOwner] && is_valid_ent(iStoredUSPID))
	{
		// Setting weapon options
		entity_set_int(iStoredUSPID, EV_INT_impulse, 1997)

		// Rest Var
		g_bHasFrostUSP[iOwner] = false
		
		// Set weaponbox new model
		entity_set_model(entity, W_USP_MODEL)
		return FMRES_SUPERCEDE
	}
	return FMRES_IGNORED
}

public fw_FrostUSPAddToPlayer(FrostUSP, id)
{
	// Make sure that this is USP
	if(is_valid_ent(FrostUSP) && is_user_connected(id) && entity_get_int(FrostUSP, EV_INT_impulse) == 1997)
	{
		// Update Var
		g_bHasFrostUSP[id] = true

		// Reset weapon options
		entity_set_int(FrostUSP, EV_INT_impulse, 0)
		return HAM_HANDLED
	}
	return HAM_IGNORED
}

stock Remove_Rendering(id)
{
	switch(bio_has_custom_skin(id))
	{
		case false:	set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderNormal, 16)
		case true:	set_user_rendering(bio_update_custom_skin(id), kRenderFxNone, 255, 255, 255, kRenderNormal, 16)
	}
}

public RemoveEntity(id)
{
	if(!is_user_connected(id))
		return
		
	new iEnt = find_ent_by_owner(-1, "ent_frozen", id);
	
	if(pev_valid(iEnt))
		remove_entity(iEnt)
}
same problem :dissapointed_emoji: :dissapointed_emoji:
Image
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

03 May 2020, 14:14

i told you to change the frostnade plg
and put
frostnade
bio
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 “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 10 guests