lockLocked

Cerere modificare plugin [REZOLVAT]

person Dumnezeu_
schedule Dec 14, 2017
forum 8
visibility 195
Dec 14, 2017 at 11:34 AM
Original Post
#1
Member

1) Nume: Dumnezeu

2) Nume Plugin: Heartbomb

3) Ce vrei să fie modificat: Pe link-ul de mai jos o sa gasiti niste sunete, modele si sprites + pluginul. In mod normal acel plugin este pentru zombie plague, dar eu as vrea sa fie modificat ca sa indeplineasca o singura sarcina: sa inlocuiasca grenada HE obisnuita cu aceea de pe link (ma refer doar audiovizual; fara damage mai mare sau alte chestii din plugin)

Tin sa precizez ca modelul am reusit sa il inlocuiesc folosind pluginul GHW Weapon Replacement, iar sunetele folosind un plugin de precache (doar sunetele legate de model, cele de la explozie nu). Pe de alta parte, sprites nu am idee cum sa le inlocuiesc.

4) Link descărcare plugin: https://zombie-mod.ru/engine/download.php?id=8797

5) Y!M/Skype: Nu folosesc. Daca e nevoie sa fiu contactat imi puteti trimite PM pe forum sau pe Steam: http://steamcommunity.com/id/killmenow_

 

Multumesc anticipat.

Dec 15, 2017 at 11:02 AM
#2
Member

Sa inteleg tu vrei skin-ul ala pe he?

Dec 15, 2017 at 12:13 PM
#3
Member

Da, cu tot ce are (modele, sunete si sprites).

Dec 15, 2017 at 12:35 PM
#4
Member

Poti sa modifici tu skin-ul la he si sa adaugi sprites

Dec 27, 2017 at 5:32 PM
#5
Member

Pai si cum ar trebui sa fac asta? Cum ziceam, modelele le-am inlocuit. Dar sunetele si sprites care sunt folosite de HE nu sunt in folderul cstrike, ci in cel de la Half-Life. Daca stiam sa le modific singur nu cred ca mai faceam acest topic.

Dec 29, 2017 at 3:10 PM
#6
Member

Citeste de aici.

Daca mai ai intrebari topicul o sa fie deschis.

Dec 29, 2017 at 7:15 PM
#7
Member

Citeste de aici.

Daca mai ai intrebari topicul o sa fie deschis.

Pluginul asta il folosesc deja, cu el am schimbat modelul.

Pentru sunete si sprites nu merge..

Jan 6, 2018 at 10:40 PM
#8
Member
Spoiler

#include <amxmodx>
#include <fakemeta>
//#include <zombieplague>
#include <fun>
#include <hamsandwich>
#include <engine>

#define PLUGIN "Heart Bomb"
#define VERSION "1.0"
#define AUTHOR "TeRKe"

new const NADE_TYPE_heartbomb = 1337
/*new const Float:RADIUS = 300.0
new const item_cost = 3
new const item_name[] = "[Grenade] rHeart Bomb"*/

new const v_model_heartbomb[] = "models/zm/v_heartbomb.mdl"
new const p_model_heartbomb[] = "models/zm/p_heartbomb.mdl"
new const w_model_heartbomb[] = "models/zm/w_heartbomb.mdl"
new const g_soundexpl[] = "weapons/heartbomb_exp.wav"

new /*item_id,*/decal
new has_bomb[33]
new spriteexpl,gmsgWeaponList
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	RegisterHam( Ham_Item_AddToPlayer, "weapon_hegrenade", "fw_AddToPlayer" )
	RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")
	RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
	register_message(get_user_msgid("DeathMsg"), "message_deathmsg")
	register_forward(FM_SetModel, "fw_SetModel")	
	decal = engfunc(EngFunc_DecalIndex,"{scorch3")
	gmsgWeaponList = get_user_msgid("WeaponList")
	register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
	//item_id = zp_register_extra_item(item_name,item_cost,ZP_TEAM_HUMAN)
}

public plugin_precache()
{
	engfunc(EngFunc_PrecacheModel, w_model_heartbomb)
	engfunc(EngFunc_PrecacheModel, v_model_heartbomb)
	engfunc(EngFunc_PrecacheModel, p_model_heartbomb)
	engfunc(EngFunc_PrecacheSound, g_soundexpl)
	spriteexpl = precache_model("sprites/heartbomb_exp.spr")
	precache_generic( "sprites/weapon_heartbomb.txt" )
	precache_generic( "sprites/zm/640hud46.spr" )
	precache_generic( "sprites/zm/640hud7.spr" )
	precache_sound( "weapons/heartbomb_deploy.wav" )
	precache_sound( "weapons/heartbomb_arrow.wav" )
	precache_sound( "weapons/heartbomb_pin.wav" )

	//register_clcmd("weapon_heartbomb", "Hook_Select")
}

public Hook_Select(id)
{
    engclient_cmd(id, "weapon_hegrenade")
    return PLUGIN_HANDLED
}

public fw_AddToPlayer( iEnt, Player )
{
    if( pev_valid( iEnt ) && is_user_connected( Player ) )
    {
	if( has_bomb[ Player ] ){
	Sprite(Player)
	}
	else if(!has_bomb[Player]){
	Sprite1(Player)
	}
    }
} 

public Sprite(id)
{
  
    message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
    write_string("weapon_heartbomb")
    write_byte(12)
    write_byte(1)
    write_byte(-1)
    write_byte(-1)
    write_byte(3)
    write_byte(1)
    write_byte(4)
    write_byte(24)
    message_end()

}
public Sprite1(id)
{
    
    message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
    write_string("weapon_hegrenade")
    write_byte(12)
    write_byte(1)
    write_byte(-1)
    write_byte(-1)
    write_byte(3)
    write_byte(1)
    write_byte(4)
    write_byte(24)
    message_end()

}

public client_disconnect(id)
{
	has_bomb[id] = 0
}

/*public zp_extra_item_selected(player, itemid)
{
	if(itemid == item_id)
	{
		has_bomb[player] = 1	
		give_item(player,"weapon_hegrenade")
		Sprite(player)
	}
	
}*/

public fw_PlayerKilled(victim, attacker, shouldgib)
{
	has_bomb[victim] = 0	
}

public fw_ThinkGrenade(entity)
{	
	if(!pev_valid(entity))
		return HAM_IGNORED
		
	static Float:dmgtime	
	pev(entity, pev_dmgtime, dmgtime)
	
	if (dmgtime > get_gametime())
		return HAM_IGNORED
	
	if(pev(entity, pev_flTimeStepSound) == NADE_TYPE_heartbomb)
		heart_explode(entity)
	
	return HAM_SUPERCEDE
}

public fw_SetModel(ent, const model[])
{
	new id = pev(ent, pev_owner)
	
	if(!pev_valid(ent) || !equal(model[9], "hegrenade.mdl") || !has_bomb[id] /*|| zp_get_user_zombie(id)*/)
		return FMRES_IGNORED
	static classname[32]; pev(ent, pev_classname, classname, 31)
	if(equal(classname, "grenade"))
	{
		set_pcvar_num(get_cvar_pointer("zp_fire_grenades"),0)
		engfunc(EngFunc_SetModel, ent, w_model_heartbomb)
		has_bomb[id] = 0
		set_pev(ent, pev_flTimeStepSound, NADE_TYPE_heartbomb)
		return FMRES_SUPERCEDE
	}
	return FMRES_IGNORED
	
}


public heart_explode(ent)
{
	static Float:flOrigin [ 3 ]
	pev ( ent, pev_origin, flOrigin )
//	new id = pev(ent, pev_owner)
	engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON,g_soundexpl, 1.0, ATTN_NORM, 0, PITCH_NORM)
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, flOrigin, 0)
	write_byte(TE_SPRITE)
	engfunc(EngFunc_WriteCoord, flOrigin[0]+random_float(-5.0, 5.0))
	engfunc(EngFunc_WriteCoord, flOrigin[1]+random_float(-5.0, 5.0))
	engfunc(EngFunc_WriteCoord, flOrigin[2]+50.0)
	write_short(spriteexpl)
	write_byte(30)
	write_byte(200)
	message_end()	
	engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, flOrigin, 0)
	write_byte(TE_WORLDDECAL)
	engfunc(EngFunc_WriteCoord, flOrigin[0])
	engfunc(EngFunc_WriteCoord, flOrigin[1])
	engfunc(EngFunc_WriteCoord, flOrigin[2])
	write_byte(decal)
	message_end()
	/*for ( new victim = 1; victim < get_maxplayers(); victim++ )
	{
		new Float:flVictimOrigin [ 3 ]
		pev ( victim, pev_origin, flVictimOrigin )
		new Float:flDistance = get_distance_f ( flOrigin, flVictimOrigin )
		if ( flDistance <= RADIUS && zp_get_user_zombie(victim))
		{
			if (!is_user_alive(victim))
				continue;
			ExecuteHamB(Ham_TakeDamage,victim,0,id,1000.0,DMG_BULLET | DMG_BLAST)
		}
	}*/
	set_pcvar_num(get_cvar_pointer("zp_fire_grenades"),1)
	remove_entity(ent)
}

public message_deathmsg(msg_id, msg_dest, id)
{
	new weapon[33], attacker , victim
	
	get_msg_arg_string(4, weapon , 32)
	
	attacker = get_msg_arg_int(1)
	victim = get_msg_arg_int(2)
	
	if(!is_user_alive(attacker) || get_user_weapon(attacker) != CSW_HEGRENADE|| !has_bomb[attacker] || attacker == victim)
		return PLUGIN_CONTINUE


	message_begin(MSG_BROADCAST, msg_id)
	write_byte(attacker)
	write_byte(victim)
	write_byte(0)
	write_string("hegrenade")
	message_end()

	return PLUGIN_CONTINUE
}

public replace_models(id)
{
	if (!is_user_alive(id))
		return
	
	if(get_user_weapon(id) == CSW_HEGRENADE && has_bomb[id])
	{
		set_pev(id, pev_viewmodel2, v_model_heartbomb)
		set_pev(id, pev_weaponmodel2, p_model_heartbomb)
		
	}
}

public message_cur_weapon(msg_id, msg_dest, msg_entity)
{
	replace_models(msg_entity)
}
 
Jan 9, 2018 at 12:53 PM
#9
Member

Marcat ca si rezolvat.

@locked

Join the Discussion

You need to be logged in to post a reply.

loginLogin to Reply