Cerere editare knife mod

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
mezzzu
Membru eXtream
Membru eXtream
Posts: 2235
Joined: 19 Dec 2010, 17:31
Detinator Steam: Da
CS Status: Working...
Reputatie: Utilizator neserios (tepar)
Fost manager FURIEN.EXTREAMCS.COM
Restrictie moderator
Has thanked: 85 times
Been thanked: 137 times

04 Jan 2014, 17:51

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  

new knife_model[33] 
new g_Menu

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() { 
	
	register_plugin(PLUGIN, VERSION, AUTHOR) 
	
	register_event( "Damage", "event_damage", "be" )
	register_event("CurWeapon","CurWeapon","be","1=1") 
	
	g_Menu = register_menuid("Knife Mod")
	register_menucmd(g_Menu, 1023, "knifemenu")
	
	register_clcmd("say /knife", "display_knife")
	
	CVAR_HIGHSPEED = register_cvar("km_highspeed","340")
	CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
	CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3")
	CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75")
	CVAR_DAMAGE = register_cvar("km_damage", "2")
	CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400")
	CVAR_NORMGRAV = get_cvar_pointer("sv_gravity")
	
	set_task(480.0, "kmodmsg", 0, _, _, "b")
}

public plugin_precache() { 
	precache_model("models/knife-mod/v_butcher.mdl") 
	precache_model("models/knife-mod/p_butcher.mdl") 
	precache_model("models/knife-mod/v_machete.mdl")
	precache_model("models/knife-mod/p_machete.mdl")
	precache_model("models/knife-mod/v_bak.mdl")
	precache_model("models/knife-mod/p_bak.mdl")
	precache_model("models/knife-mod/v_pocket.mdl")
	precache_model("models/knife-mod/p_pocket.mdl")
	precache_model("models/v_knife.mdl") 
	precache_model("models/p_knife.mdl")
} 

public display_knife(id) {
	new menuBody[512]
	add(menuBody, 511, "\rKnife Mod\w^n^n")
	add(menuBody, 511, "1. Machete \y(More Damage/Low Speed)\w^n")
	add(menuBody, 511, "2. Bak Knife \y(No Footsteps)\w^n")
	add(menuBody, 511, "3. Pocket Knife \y(High Speed)\w^n")
	add(menuBody, 511, "4. Butcher Knife \y(Low Gravity)\w^n")
	add(menuBody, 511, "5. Default Knife \y(Health Regeneration)\w^n^n")
	add(menuBody, 511, "6. \rSuperKnife \y(ALL IN ONE)\w^n^n")
	add(menuBody, 511, "0. Exit^n")
	
	new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
	show_menu(id, keys, menuBody, -1, "Knife Mod")
}

public knifemenu(id, key) {
	switch(key) 
	{
		case 0: SetKnife(id , 4)
		case 1: SetKnife(id , 2)
		case 2: SetKnife(id , 3)
		case 3: SetKnife(id , 1)
		case 4: SetKnife(id , 0)
		default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
} 

public SetKnife(id , Knife) {
	knife_model[id] = Knife
	
	new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo) 
	if ( Weapon != CSW_KNIFE )
		return PLUGIN_HANDLED
	
	new vModel[56],pModel[56]
	
	switch(Knife)
	{
		case 0: {
			format(vModel,55,"models/v_knife.mdl")
			format(pModel,55,"models/p_knife.mdl")
		}
		case 1: {
			format(vModel,55,"models/knife-mod/v_butcher.mdl")
			format(pModel,55,"models/knife-mod/p_butcher.mdl")
		}
		case 2: {
			format(vModel,55,"models/knife-mod/v_bak.mdl")
			format(pModel,55,"models/knife-mod/p_bak.mdl")
		}
		case 3: {
			format(vModel,55,"models/knife-mod/v_pocket.mdl")
			format(pModel,55,"models/knife-mod/p_pocket.mdl")
		}
		case 4: {
			format(vModel,55,"models/knife-mod/v_machete.mdl")
			format(pModel,55,"models/knife-mod/p_machete.mdl")
		}
		case 6: {
			format(vModel,55,"models/knife-mod/v_sk.mdl")
			format(pmodel,55,"models/knife-mod/p_sk.mdl")
	} 
	
	entity_set_string(id, EV_SZ_viewmodel, vModel)
	entity_set_string(id, EV_SZ_weaponmodel, pModel)
	
	return PLUGIN_HANDLED;  
}

public event_damage( id ) {
	
	new victim_id = id;
	if( !is_user_connected( victim_id ) ) return PLUGIN_CONTINUE
	new dmg_take = read_data( 2 );
	new dmgtype = read_data( 3 );
	new Float:multiplier = get_pcvar_float(CVAR_DAMAGE);
	new Float:damage = dmg_take * multiplier;
	new health = get_user_health( victim_id );
	
	new iWeapID, attacker_id = get_user_attacker( victim_id, iWeapID );
	
	if( !is_user_connected( attacker_id ) || !is_user_alive( victim_id ) ) {
		return PLUGIN_HANDLED
	}
	
	if( iWeapID == CSW_KNIFE && knife_model[attacker_id] == 4 ) {
		
		if( floatround(damage) >= health ) {
			if( victim_id == attacker_id ) {
				return PLUGIN_CONTINUE
				}else{
				log_kill( attacker_id, victim_id, "knife", 0 );
			}
			
			return PLUGIN_CONTINUE
			}else {
			if( victim_id == attacker_id ) return PLUGIN_CONTINUE
			
			fakedamage( victim_id, "weapon_knife", damage, dmgtype );
		}
	}
	return PLUGIN_CONTINUE
}

public CurWeapon(id)
	{
	new Weapon = read_data(2)
	
	// Set Knife Model
	SetKnife(id, knife_model[id])   
	
	// Task Options
	
	if(knife_model[id] == 0 && !task_exists(id) && Weapon == CSW_KNIFE)
		set_task(TASK_INTERVAL , "task_healing",id,_,_,"b")
	else if(task_exists(id))
		remove_task(id)
	
	// Abilities
	set_user_footsteps(id , ( (knife_model[id] == 2 && Weapon == CSW_KNIFE) ? 1 : 0) )
	
	new Float:Gravity = ((knife_model[id] == 1 && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
	set_user_gravity(id , Gravity)
	
	// Speed
	new Float:Speed
	if(Weapon != CSW_KNIFE || knife_model[id] < 3)
		return PLUGIN_CONTINUE
	else if(knife_model[id] == 3)
		Speed = get_pcvar_float(CVAR_HIGHSPEED)
	else if(knife_model[id] == 4)
		Speed = get_pcvar_float(CVAR_LOWSPEED)
	
	set_user_maxspeed(id, Speed)
	
	return PLUGIN_HANDLED   
	
}

stock log_kill(killer, victim, weapon[],headshot) {
	user_silentkill( victim );
	
	message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
	write_byte( killer );
	write_byte( victim );
	write_byte( headshot );
	write_string( weapon );
	message_end();
	
	new kfrags = get_user_frags( killer );
	set_user_frags( killer, kfrags++ );
	new vfrags = get_user_frags( victim );
	set_user_frags( victim, vfrags++ );
	
	return  PLUGIN_CONTINUE
} 


public task_healing(id) {  
	new addhealth = get_pcvar_num(CVAR_HEALTH_ADD)  
	if (!addhealth)
		return  
	
	new maxhealth = get_pcvar_num(CVAR_HEALTH_MAX)  
	if (maxhealth > MAX_HEALTH) { 
		set_pcvar_num(CVAR_HEALTH_MAX, MAX_HEALTH)  
		maxhealth = MAX_HEALTH 
	}  
	
	new health = get_user_health(id)   
	
	if (is_user_alive(id) && (health < maxhealth)) { 
		set_user_health(id, health + addhealth)
		set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.1, 4)
		show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
		message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
		write_short(1<<10)
		write_short(1<<10)
		write_short(0x0000)
		write_byte(0)
		write_byte(200)
		write_byte(0)
		write_byte(75)
		message_end()
	}
	
	else {
		if (is_user_alive(id) && (health > maxhealth))
			remove_task(id)
	}
}  

public client_disconnect(id) {  
	if(task_exists(id)) remove_task(id)  
}  


public kmodmsg() { 
	
	client_print(0,print_chat,"[AMXX] Type /knife to change your knife skins")
}  

public client_authorized(id)
	{
	LoadData(id)
}

SaveData(id)
{ 
	
	new authid[32]
	get_user_authid(id, authid, 31)
	
	new vaultkey[64]
	new vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	format(vaultdata, 63, "%d", knife_model[id])
	set_vaultdata(vaultkey, vaultdata)
}

LoadData(id) 
{ 
	new authid[32] 
	get_user_authid(id,authid,31)
	
	new vaultkey[64], vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	get_vaultdata(vaultkey, vaultdata, 63)
	knife_model[id] = str_to_num(vaultdata)
	
} 
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Am inceput eu putin sa adaug inca un knife in meniu si mai exact : super knife . Acest knife ar trebui sa fie doar pentru ADMIN_LEVEL_H si sa primeasca ca beneficiu putererile urmatoare de GRAVITY,SPEED,REGENERARE care deja sunt setate in meniu (sa ramana aceleasi cvar-uri).

Dau si eu un multumesc ca rasplata :D
RoyalServer 2
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

04 Jan 2014, 18:30

I-am facut si un "update" | Afiseaza codul
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <vault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "0.2" 

#define ViewMaxModels 6
#define PlayerMaxModels 6

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255

new ViewModels [ ViewMaxModels + 1 ] [ ] = {
	"models/knife-mod/v_machete.mdl",
	"models/knife-mod/v_bak.mdl",
	"models/knife-mod/v_pocket.mdl",
	"models/knife-mod/v_butcher.mdl",
	"models/v_knife.mdl",
	"models/knife-mod/v_sk.mdl",
	""
	
};

new PlayerModels [ PlayerMaxModels + 1 ] [ ] = {
	"models/knife-mod/p_machete.mdl",
	"models/knife-mod/p_bak.mdl",
	"models/knife-mod/p_pocket.mdl",
	"models/knife-mod/p_butcher.mdl",
	"models/p_knife.mdl",
	"models/knife-mod/p_sk.mdl",
	""
};

new g_iKnife[33] 

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, "spunko & FaTzZu") 
	
	register_event( "Damage", "event_damage", "be" )
	register_event("CurWeapon","CurWeapon","be","1=1") 
	
	register_clcmd("say /knife", "display_knife")
	
	CVAR_HIGHSPEED = register_cvar("km_highspeed","340")
	CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
	CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3")
	CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75")
	CVAR_DAMAGE = register_cvar("km_damage", "2")
	CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400")
	CVAR_NORMGRAV = get_cvar_pointer("sv_gravity")
}

public plugin_precache() 
{ 
	new vmodel;
	for ( vmodel = 0; vmodel < sizeof ( ViewModels ); vmodel++ )
		engfunc ( EngFunc_PrecacheModel, ViewModels [ vmodel ] );
	
	new pmodel;
	for ( pmodel = 0; pmodel < sizeof ( PlayerModels ); pmodel++ )
		engfunc ( EngFunc_PrecacheModel, PlayerModels [ pmodel ] );
} 

public display_knife(id) 
{
	new menu = menu_create("\rKnife Mod \w^n^n", "knifemenu");  

	menu_additem(menu, "Machete \y(More Damage/Low Speed)\w^n", "1", 0);  
	menu_additem(menu, "Bak Knife \y(No Footsteps)\w^n", "2", 0);  
	menu_additem(menu, "Pocket Knife \y(High Speed)\w^n", "3", 0);  
	menu_additem(menu, "Butcher Knife \y(Low Gravity)\w^n", "4", 0);   
	menu_additem(menu, "Default Knife \y(Health Regeneration)\w^n^n", "5", 0);
	menu_additem(menu, "\rSuperKnife \y(ALL IN ONE)\w^n^n", "6", 0);

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);  
	menu_display(id, menu, 0);  
}

public knifemenu(id, menu, item) 
{
	if( item == MENU_EXIT )  
	{  
		menu_destroy(menu);  
		return PLUGIN_HANDLED;  
	}  
	new data[6], iName[64];  
	new access, callback;  
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);  
	new key = str_to_num(data);
	
	switch(key) 
	{
		case 1: g_iKnife[id] = 1
		case 2: g_iKnife[id] = 2
		case 3: g_iKnife[id] = 3
		case 4: g_iKnife[id] = 4
		case 5: g_iKnife[id] = 5
		case 6:
		{
			if(get_user_flags(id) & ADMIN_LEVEL_H)
				g_iKnife[id] = 6
			else
			{
				client_print(id, print_chat, "Nu ai acces la comanda")
				return 1;
			}
		}
	}
	SaveData(id)
	return PLUGIN_HANDLED
} 

public event_damage( id ) 
{
	new victim_id = id;
	
	if( !is_user_connected( victim_id ) ) return PLUGIN_CONTINUE
	
	new dmg_take = read_data( 2 );
	new dmgtype = read_data( 3 );
	new Float:multiplier = get_pcvar_float(CVAR_DAMAGE);
	new Float:damage = dmg_take * multiplier;
	new health = get_user_health( victim_id );
	
	new iWeapID, attacker_id = get_user_attacker( victim_id, iWeapID );
	
	if( !is_user_connected( attacker_id ) || !is_user_alive( victim_id ) ) 
	{
		return PLUGIN_HANDLED
	}
	
	if( iWeapID == CSW_KNIFE && (g_iKnife[attacker_id] == 1 || g_iKnife[attacker_id] == 6)) 
	{
		
		if( floatround(damage) >= health ) 
		{
			if( victim_id == attacker_id ) 
			{
				return PLUGIN_CONTINUE
			}
			else
			{
				log_kill( attacker_id, victim_id, "knife", 0 );
			}
			
			return PLUGIN_CONTINUE
		}
		else 
		{
			if( victim_id == attacker_id ) return PLUGIN_CONTINUE
			fakedamage( victim_id, "weapon_knife", damage, dmgtype );
		}
	}
	return PLUGIN_CONTINUE
}

public CurWeapon(id)
{
	new Weapon = read_data(2)
	
	switch(g_iKnife[id])
	{
		case 1:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 0 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 0 ] );
			}
		}
		case 2:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 1 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 1 ] );
			}
		}
		case 3:
		{
			
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 2 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 2 ] );
			}
		}
		case 4:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 3 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 3 ] );
			}
		}
		case 5:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 4 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 4 ] );
			}
		}
		case 6:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 5 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 5 ] );
			}
		}
	}
	

	
	if((g_iKnife[id] == 5 || g_iKnife[id] == 6) && !task_exists(id) && Weapon == CSW_KNIFE) set_task(TASK_INTERVAL , "task_healing",id,_,_,"b")
	else if(task_exists(id)) remove_task(id)
	
	set_user_footsteps(id , ( ( (g_iKnife[id] == 2 || g_iKnife[id] == 6) && Weapon == CSW_KNIFE) ? 1 : 0) )
	
	new Float:Gravity = (((g_iKnife[id] == 4 || g_iKnife[id] == 6) && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
	set_user_gravity(id , Gravity)
	
	new Float:Speed
	if(Weapon != CSW_KNIFE)
		return PLUGIN_CONTINUE

	switch(g_iKnife[id])
	{
		case 1: Speed = get_pcvar_float(CVAR_LOWSPEED)
		case 3: Speed = get_pcvar_float(CVAR_HIGHSPEED)
		case 6: Speed = get_pcvar_float(CVAR_HIGHSPEED)
	}
	set_user_maxspeed(id, Speed)
	
	return PLUGIN_HANDLED   
	
}

stock log_kill(killer, victim, weapon[],headshot) 
{
	user_silentkill( victim );
	
	message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
	write_byte( killer );
	write_byte( victim );
	write_byte( headshot );
	write_string( weapon );
	message_end();
	
	new kfrags = get_user_frags( killer );
	set_user_frags( killer, kfrags++ );
	new vfrags = get_user_frags( victim );
	set_user_frags( victim, vfrags++ );
	
	return  PLUGIN_CONTINUE
} 


public task_healing(id) 
{  
	new addhealth = get_pcvar_num(CVAR_HEALTH_ADD)  
	if (!addhealth)
		return  
	
	new maxhealth = get_pcvar_num(CVAR_HEALTH_MAX)  
	if (maxhealth > MAX_HEALTH) 
	{ 
		set_pcvar_num(CVAR_HEALTH_MAX, MAX_HEALTH)  
		maxhealth = MAX_HEALTH 
	}  
	
	new health = get_user_health(id)   
	
	if (is_user_alive(id) && (health < maxhealth)) 
	{ 
		set_user_health(id, health + addhealth)
		set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.1, 4)
		show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
		message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
		write_short(1<<10)
		write_short(1<<10)
		write_short(0x0000)
		write_byte(0)
		write_byte(200)
		write_byte(0)
		write_byte(75)
		message_end()
	}
	else 
	{
		if (is_user_alive(id) && (health > maxhealth))
			remove_task(id)
	}
}  

public client_disconnect(id)
	if(task_exists(id)) remove_task(id)   
public client_authorized(id)
	LoadData(id)

public SaveData(id)
{ 
	
	new authid[32]
	get_user_authid(id, authid, 31)
	
	new vaultkey[64]
	new vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	format(vaultdata, 63, "%d", g_iKnife[id])
	set_vaultdata(vaultkey, vaultdata)
}

public LoadData(id) 
{ 
	new authid[32] 
	get_user_authid(id,authid,31)
	
	new vaultkey[64], vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	get_vaultdata(vaultkey, vaultdata, 63)
	g_iKnife[id] = str_to_num(vaultdata)
	
}
Testeaza :D
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
mezzzu
Membru eXtream
Membru eXtream
Posts: 2235
Joined: 19 Dec 2010, 17:31
Detinator Steam: Da
CS Status: Working...
Reputatie: Utilizator neserios (tepar)
Fost manager FURIEN.EXTREAMCS.COM
Restrictie moderator
Has thanked: 85 times
Been thanked: 137 times

04 Jan 2014, 19:00

Default knife are un speed urias :)) care mai apoi apare si la celelalte cutite .

Sunt spatii mari intre randurile din meniu...
User avatar
DaNNe.
Fost moderator
Fost moderator
Posts: 2811
Joined: 08 Nov 2013, 20:43
Detinator Steam: Da
CS Status: Activitate scăzută
SteamID: /id/FurienMaster
Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 244 times
Been thanked: 129 times
Contact:

04 Jan 2014, 19:18

>:)

Ca sa scoti Spatiul sterge ^n din numele knifeului. :P :) >:)
Florian RF
Membru, skill 0
Membru, skill 0
Posts: 34
Joined: 01 Aug 2013, 23:00
Detinator Steam: Da
CS Status: ...
SteamID: akadrogatu
Location: Bucuresti
Has thanked: 4 times
Been thanked: 4 times
Contact:

04 Jan 2014, 21:32

mezzzu wrote:
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  

new knife_model[33] 
new g_Menu

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() { 
	
	register_plugin(PLUGIN, VERSION, AUTHOR) 
	
	register_event( "Damage", "event_damage", "be" )
	register_event("CurWeapon","CurWeapon","be","1=1") 
	
	g_Menu = register_menuid("Knife Mod")
	register_menucmd(g_Menu, 1023, "knifemenu")
	
	register_clcmd("say /knife", "display_knife")
	
	CVAR_HIGHSPEED = register_cvar("km_highspeed","340")
	CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
	CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3")
	CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75")
	CVAR_DAMAGE = register_cvar("km_damage", "2")
	CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400")
	CVAR_NORMGRAV = get_cvar_pointer("sv_gravity")
	
	set_task(480.0, "kmodmsg", 0, _, _, "b")
}

public plugin_precache() { 
	precache_model("models/knife-mod/v_butcher.mdl") 
	precache_model("models/knife-mod/p_butcher.mdl") 
	precache_model("models/knife-mod/v_machete.mdl")
	precache_model("models/knife-mod/p_machete.mdl")
	precache_model("models/knife-mod/v_bak.mdl")
	precache_model("models/knife-mod/p_bak.mdl")
	precache_model("models/knife-mod/v_pocket.mdl")
	precache_model("models/knife-mod/p_pocket.mdl")
	precache_model("models/v_knife.mdl") 
	precache_model("models/p_knife.mdl")
} 

public display_knife(id) {
	new menuBody[512]
	add(menuBody, 511, "\rKnife Mod\w^n^n")
	add(menuBody, 511, "1. Machete \y(More Damage/Low Speed)\w^n")
	add(menuBody, 511, "2. Bak Knife \y(No Footsteps)\w^n")
	add(menuBody, 511, "3. Pocket Knife \y(High Speed)\w^n")
	add(menuBody, 511, "4. Butcher Knife \y(Low Gravity)\w^n")
	add(menuBody, 511, "5. Default Knife \y(Health Regeneration)\w^n^n")
	add(menuBody, 511, "6. \rSuperKnife \y(ALL IN ONE)\w^n^n")
	add(menuBody, 511, "0. Exit^n")
	
	new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
	show_menu(id, keys, menuBody, -1, "Knife Mod")
}

public knifemenu(id, key) {
	switch(key) 
	{
		case 0: SetKnife(id , 4)
		case 1: SetKnife(id , 2)
		case 2: SetKnife(id , 3)
		case 3: SetKnife(id , 1)
		case 4: SetKnife(id , 0)
		default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
} 

public SetKnife(id , Knife) {
	knife_model[id] = Knife
	
	new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo) 
	if ( Weapon != CSW_KNIFE )
		return PLUGIN_HANDLED
	
	new vModel[56],pModel[56]
	
	switch(Knife)
	{
		case 0: {
			format(vModel,55,"models/v_knife.mdl")
			format(pModel,55,"models/p_knife.mdl")
		}
		case 1: {
			format(vModel,55,"models/knife-mod/v_butcher.mdl")
			format(pModel,55,"models/knife-mod/p_butcher.mdl")
		}
		case 2: {
			format(vModel,55,"models/knife-mod/v_bak.mdl")
			format(pModel,55,"models/knife-mod/p_bak.mdl")
		}
		case 3: {
			format(vModel,55,"models/knife-mod/v_pocket.mdl")
			format(pModel,55,"models/knife-mod/p_pocket.mdl")
		}
		case 4: {
			format(vModel,55,"models/knife-mod/v_machete.mdl")
			format(pModel,55,"models/knife-mod/p_machete.mdl")
		}
		case 6: {
			format(vModel,55,"models/knife-mod/v_sk.mdl")
			format(pmodel,55,"models/knife-mod/p_sk.mdl")
	} 
	
	entity_set_string(id, EV_SZ_viewmodel, vModel)
	entity_set_string(id, EV_SZ_weaponmodel, pModel)
	
	return PLUGIN_HANDLED;  
}

public event_damage( id ) {
	
	new victim_id = id;
	if( !is_user_connected( victim_id ) ) return PLUGIN_CONTINUE
	new dmg_take = read_data( 2 );
	new dmgtype = read_data( 3 );
	new Float:multiplier = get_pcvar_float(CVAR_DAMAGE);
	new Float:damage = dmg_take * multiplier;
	new health = get_user_health( victim_id );
	
	new iWeapID, attacker_id = get_user_attacker( victim_id, iWeapID );
	
	if( !is_user_connected( attacker_id ) || !is_user_alive( victim_id ) ) {
		return PLUGIN_HANDLED
	}
	
	if( iWeapID == CSW_KNIFE && knife_model[attacker_id] == 4 ) {
		
		if( floatround(damage) >= health ) {
			if( victim_id == attacker_id ) {
				return PLUGIN_CONTINUE
				}else{
				log_kill( attacker_id, victim_id, "knife", 0 );
			}
			
			return PLUGIN_CONTINUE
			}else {
			if( victim_id == attacker_id ) return PLUGIN_CONTINUE
			
			fakedamage( victim_id, "weapon_knife", damage, dmgtype );
		}
	}
	return PLUGIN_CONTINUE
}

public CurWeapon(id)
	{
	new Weapon = read_data(2)
	
	// Set Knife Model
	SetKnife(id, knife_model[id])   
	
	// Task Options
	
	if(knife_model[id] == 0 && !task_exists(id) && Weapon == CSW_KNIFE)
		set_task(TASK_INTERVAL , "task_healing",id,_,_,"b")
	else if(task_exists(id))
		remove_task(id)
	
	// Abilities
	set_user_footsteps(id , ( (knife_model[id] == 2 && Weapon == CSW_KNIFE) ? 1 : 0) )
	
	new Float:Gravity = ((knife_model[id] == 1 && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
	set_user_gravity(id , Gravity)
	
	// Speed
	new Float:Speed
	if(Weapon != CSW_KNIFE || knife_model[id] < 3)
		return PLUGIN_CONTINUE
	else if(knife_model[id] == 3)
		Speed = get_pcvar_float(CVAR_HIGHSPEED)
	else if(knife_model[id] == 4)
		Speed = get_pcvar_float(CVAR_LOWSPEED)
	
	set_user_maxspeed(id, Speed)
	
	return PLUGIN_HANDLED   
	
}

stock log_kill(killer, victim, weapon[],headshot) {
	user_silentkill( victim );
	
	message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
	write_byte( killer );
	write_byte( victim );
	write_byte( headshot );
	write_string( weapon );
	message_end();
	
	new kfrags = get_user_frags( killer );
	set_user_frags( killer, kfrags++ );
	new vfrags = get_user_frags( victim );
	set_user_frags( victim, vfrags++ );
	
	return  PLUGIN_CONTINUE
} 


public task_healing(id) {  
	new addhealth = get_pcvar_num(CVAR_HEALTH_ADD)  
	if (!addhealth)
		return  
	
	new maxhealth = get_pcvar_num(CVAR_HEALTH_MAX)  
	if (maxhealth > MAX_HEALTH) { 
		set_pcvar_num(CVAR_HEALTH_MAX, MAX_HEALTH)  
		maxhealth = MAX_HEALTH 
	}  
	
	new health = get_user_health(id)   
	
	if (is_user_alive(id) && (health < maxhealth)) { 
		set_user_health(id, health + addhealth)
		set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.1, 4)
		show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
		message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
		write_short(1<<10)
		write_short(1<<10)
		write_short(0x0000)
		write_byte(0)
		write_byte(200)
		write_byte(0)
		write_byte(75)
		message_end()
	}
	
	else {
		if (is_user_alive(id) && (health > maxhealth))
			remove_task(id)
	}
}  

public client_disconnect(id) {  
	if(task_exists(id)) remove_task(id)  
}  


public kmodmsg() { 
	
	client_print(0,print_chat,"[AMXX] Type /knife to change your knife skins")
}  

public client_authorized(id)
	{
	LoadData(id)
}

SaveData(id)
{ 
	
	new authid[32]
	get_user_authid(id, authid, 31)
	
	new vaultkey[64]
	new vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	format(vaultdata, 63, "%d", knife_model[id])
	set_vaultdata(vaultkey, vaultdata)
}

LoadData(id) 
{ 
	new authid[32] 
	get_user_authid(id,authid,31)
	
	new vaultkey[64], vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	get_vaultdata(vaultkey, vaultdata, 63)
	knife_model[id] = str_to_num(vaultdata)
	
} 
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Am inceput eu putin sa adaug inca un knife in meniu si mai exact : super knife . Acest knife ar trebui sa fie doar pentru ADMIN_LEVEL_H si sa primeasca ca beneficiu putererile urmatoare de GRAVITY,SPEED,REGENERARE care deja sunt setate in meniu (sa ramana aceleasi cvar-uri).

Dau si eu un multumesc ca rasplata :D
Poftim: http://www.girlshare.ro/33135637.7
Am testat și a funcționat, aștept răspuns de la tine dacă îți merge.

Edit: dorești și sunete în limba română la plugin ? (pentru detalii: http://www.extreamcs.com/forum/cereri-c ... 28747.html)
Y!M: floryan_m13
Email: [email protected]

Image
_____________________________________
  • Image http://www.Mafios.Ro
    • Caut staff pentru comunitate. Cine este interesat, PM.
    • Creez pluginuri AMXModX (UNICE) contra cost.
    • Creez teme PHPBB3 la comandă.
    • Vând/ofer domenii spre administrare.
    • Vând servere cs 1.6 / hlstatsx.
    • Cine este interesat rog să mă contacteze în privat.
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

04 Jan 2014, 23:18

Nu prea am timp acum ... incerc sa te rezolv maine :)
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
mezzzu
Membru eXtream
Membru eXtream
Posts: 2235
Joined: 19 Dec 2010, 17:31
Detinator Steam: Da
CS Status: Working...
Reputatie: Utilizator neserios (tepar)
Fost manager FURIEN.EXTREAMCS.COM
Restrictie moderator
Has thanked: 85 times
Been thanked: 137 times

05 Jan 2014, 00:42

@ Fatzzu , astept maine poate ma rezolvi , pana acum e perfect , dar acel speed si gravity se molipseste la fiecare knife in parte :))

@ FlorianRF eu am cerut sa mi se adauge inca un knife in menu , atata tot :D Mersi oricum pentru ce mi-ai dat .
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

05 Jan 2014, 13:30

edit gresisem eu ceva | Afiseaza codul
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <vault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "0.2" 

#define ViewMaxModels 6
#define PlayerMaxModels 6

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255

new ViewModels [ ViewMaxModels + 1 ] [ ] = {
	"models/knife-mod/v_machete.mdl",
	"models/knife-mod/v_bak.mdl",
	"models/knife-mod/v_pocket.mdl",
	"models/knife-mod/v_butcher.mdl",
	"models/v_knife.mdl",
	"models/knife-mod/v_sk.mdl",
	""
	
};

new PlayerModels [ PlayerMaxModels + 1 ] [ ] = {
	"models/knife-mod/p_machete.mdl",
	"models/knife-mod/p_bak.mdl",
	"models/knife-mod/p_pocket.mdl",
	"models/knife-mod/p_butcher.mdl",
	"models/p_knife.mdl",
	"models/knife-mod/p_sk.mdl",
	""
};

new g_iKnife[33] 

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, "spunko & FaTzZu") 
	
	register_event( "Damage", "event_damage", "be" )
	register_event("CurWeapon","CurWeapon","be","1=1") 
	
	register_clcmd("say /knife", "display_knife")
	
	CVAR_HIGHSPEED = register_cvar("km_highspeed","340")
	CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
	CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3")
	CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75")
	CVAR_DAMAGE = register_cvar("km_damage", "2")
	CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400")
	CVAR_NORMGRAV = get_cvar_pointer("sv_gravity")
}

public plugin_precache() 
{ 
	new vmodel;
	for ( vmodel = 0; vmodel < sizeof ( ViewModels ); vmodel++ )
		engfunc ( EngFunc_PrecacheModel, ViewModels [ vmodel ] );
	
	new pmodel;
	for ( pmodel = 0; pmodel < sizeof ( PlayerModels ); pmodel++ )
		engfunc ( EngFunc_PrecacheModel, PlayerModels [ pmodel ] );
} 

public display_knife(id) 
{
	new menu = menu_create("\rKnife Mod \w^n^n", "knifemenu");  

	menu_additem(menu, "Machete \y(More Damage/Low Speed)\w", "1", 0);  
	menu_additem(menu, "Bak Knife \y(No Footsteps)\w", "2", 0);  
	menu_additem(menu, "Pocket Knife \y(High Speed)\w", "3", 0);  
	menu_additem(menu, "Butcher Knife \y(Low Gravity)\w", "4", 0);   
	menu_additem(menu, "Default Knife \y(Health Regeneration)\w^n", "5", 0);
	menu_additem(menu, "\rSuperKnife \y(ALL IN ONE)\w^n^n", "6", 0);

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);  
	menu_display(id, menu, 0);  
}

public knifemenu(id, menu, item) 
{
	if( item == MENU_EXIT )  
	{  
		menu_destroy(menu);  
		return PLUGIN_HANDLED;  
	}  
	new data[6], iName[64];  
	new access, callback;  
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);  
	new key = str_to_num(data);
	
	switch(key) 
	{
		case 1: g_iKnife[id] = 1
		case 2: g_iKnife[id] = 2
		case 3: g_iKnife[id] = 3
		case 4: g_iKnife[id] = 4
		case 5: g_iKnife[id] = 5
		case 6:
		{
			if(get_user_flags(id) & ADMIN_LEVEL_H)
				g_iKnife[id] = 6
			else
			{
				client_print(id, print_chat, "Nu ai acces la comanda")
				return 1;
			}
		}
	}
	SaveData(id)
	return PLUGIN_HANDLED
} 

public event_damage( id ) 
{
	new victim_id = id;
	
	if( !is_user_connected( victim_id ) ) return PLUGIN_CONTINUE
	
	new dmg_take = read_data( 2 );
	new dmgtype = read_data( 3 );
	new Float:multiplier = get_pcvar_float(CVAR_DAMAGE);
	new Float:damage = dmg_take * multiplier;
	new health = get_user_health( victim_id );
	
	new iWeapID, attacker_id = get_user_attacker( victim_id, iWeapID );
	
	if( !is_user_connected( attacker_id ) || !is_user_alive( victim_id ) ) 
	{
		return PLUGIN_HANDLED
	}
	
	if( iWeapID == CSW_KNIFE && (g_iKnife[attacker_id] == 1 || g_iKnife[attacker_id] == 6)) 
	{
		
		if( floatround(damage) >= health ) 
		{
			if( victim_id == attacker_id ) 
			{
				return PLUGIN_CONTINUE
			}
			else
			{
				log_kill( attacker_id, victim_id, "knife", 0 );
			}
			
			return PLUGIN_CONTINUE
		}
		else 
		{
			if( victim_id == attacker_id ) return PLUGIN_CONTINUE
			fakedamage( victim_id, "weapon_knife", damage, dmgtype );
		}
	}
	return PLUGIN_CONTINUE
}

public CurWeapon(id)
{
	new Weapon = read_data(2)
	
	switch(g_iKnife[id])
	{
		case 1:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 0 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 0 ] );
			}
		}
		case 2:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 1 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 1 ] );
			}
		}
		case 3:
		{
			
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 2 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 2 ] );
			}
		}
		case 4:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 3 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 3 ] );
			}
		}
		case 5:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 4 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 4 ] );
			}
		}
		case 6:
		{
			if ( Weapon == CSW_KNIFE ) 
			{
				set_pev ( id, pev_viewmodel2, ViewModels [ 5 ] );
				set_pev ( id, pev_weaponmodel2, PlayerModels [ 5 ] );
			}
		}
	}
	

	
	if((g_iKnife[id] == 5 || g_iKnife[id] == 6) && !task_exists(id) && Weapon == CSW_KNIFE) set_task(TASK_INTERVAL , "task_healing",id,_,_,"b")
	else if(task_exists(id)) remove_task(id)
	
	set_user_footsteps(id , ( ( (g_iKnife[id] == 2 || g_iKnife[id] == 6) && Weapon == CSW_KNIFE) ? 1 : 0) )
	
	new Float:Gravity = (((g_iKnife[id] == 4 || g_iKnife[id] == 6) && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
	set_user_gravity(id , Gravity)
	
	new Float:Speed
	if(Weapon != CSW_KNIFE || g_iKnife[id] == 5 || g_iKnife[id] == 2 || g_iKnife[id] == 4)
		return PLUGIN_CONTINUE

	switch(g_iKnife[id])
	{
		case 1: Speed = get_pcvar_float(CVAR_LOWSPEED)
		case 3: Speed = get_pcvar_float(CVAR_HIGHSPEED)
		case 6: Speed = get_pcvar_float(CVAR_HIGHSPEED)
	}
	set_user_maxspeed(id, Speed)
	
	return PLUGIN_HANDLED   
	
}

stock log_kill(killer, victim, weapon[],headshot) 
{
	user_silentkill( victim );
	
	message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
	write_byte( killer );
	write_byte( victim );
	write_byte( headshot );
	write_string( weapon );
	message_end();
	
	new kfrags = get_user_frags( killer );
	set_user_frags( killer, kfrags++ );
	new vfrags = get_user_frags( victim );
	set_user_frags( victim, vfrags++ );
	
	return  PLUGIN_CONTINUE
} 


public task_healing(id) 
{  
	new addhealth = get_pcvar_num(CVAR_HEALTH_ADD)  
	if (!addhealth)
		return  
	
	new maxhealth = get_pcvar_num(CVAR_HEALTH_MAX)  
	if (maxhealth > MAX_HEALTH) 
	{ 
		set_pcvar_num(CVAR_HEALTH_MAX, MAX_HEALTH)  
		maxhealth = MAX_HEALTH 
	}  
	
	new health = get_user_health(id)   
	
	if (is_user_alive(id) && (health < maxhealth)) 
	{ 
		set_user_health(id, health + addhealth)
		set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.1, 4)
		show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
		message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
		write_short(1<<10)
		write_short(1<<10)
		write_short(0x0000)
		write_byte(0)
		write_byte(200)
		write_byte(0)
		write_byte(75)
		message_end()
	}
	else 
	{
		if (is_user_alive(id) && (health > maxhealth))
			remove_task(id)
	}
}  

public client_disconnect(id)
	if(task_exists(id)) remove_task(id)   
public client_authorized(id)
	LoadData(id)

public SaveData(id)
{ 
	
	new authid[32]
	get_user_authid(id, authid, 31)
	
	new vaultkey[64]
	new vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	format(vaultdata, 63, "%d", g_iKnife[id])
	set_vaultdata(vaultkey, vaultdata)
}

public LoadData(id) 
{ 
	new authid[32] 
	get_user_authid(id,authid,31)
	
	new vaultkey[64], vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	get_vaultdata(vaultkey, vaultdata, 63)
	g_iKnife[id] = str_to_num(vaultdata)
	
}
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
Florian RF
Membru, skill 0
Membru, skill 0
Posts: 34
Joined: 01 Aug 2013, 23:00
Detinator Steam: Da
CS Status: ...
SteamID: akadrogatu
Location: Bucuresti
Has thanked: 4 times
Been thanked: 4 times
Contact:

08 Jan 2014, 19:06

Florian RF wrote:
mezzzu wrote:
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  

new knife_model[33] 
new g_Menu

new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 

public plugin_init() { 
	
	register_plugin(PLUGIN, VERSION, AUTHOR) 
	
	register_event( "Damage", "event_damage", "be" )
	register_event("CurWeapon","CurWeapon","be","1=1") 
	
	g_Menu = register_menuid("Knife Mod")
	register_menucmd(g_Menu, 1023, "knifemenu")
	
	register_clcmd("say /knife", "display_knife")
	
	CVAR_HIGHSPEED = register_cvar("km_highspeed","340")
	CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
	CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3")
	CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75")
	CVAR_DAMAGE = register_cvar("km_damage", "2")
	CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400")
	CVAR_NORMGRAV = get_cvar_pointer("sv_gravity")
	
	set_task(480.0, "kmodmsg", 0, _, _, "b")
}

public plugin_precache() { 
	precache_model("models/knife-mod/v_butcher.mdl") 
	precache_model("models/knife-mod/p_butcher.mdl") 
	precache_model("models/knife-mod/v_machete.mdl")
	precache_model("models/knife-mod/p_machete.mdl")
	precache_model("models/knife-mod/v_bak.mdl")
	precache_model("models/knife-mod/p_bak.mdl")
	precache_model("models/knife-mod/v_pocket.mdl")
	precache_model("models/knife-mod/p_pocket.mdl")
	precache_model("models/v_knife.mdl") 
	precache_model("models/p_knife.mdl")
} 

public display_knife(id) {
	new menuBody[512]
	add(menuBody, 511, "\rKnife Mod\w^n^n")
	add(menuBody, 511, "1. Machete \y(More Damage/Low Speed)\w^n")
	add(menuBody, 511, "2. Bak Knife \y(No Footsteps)\w^n")
	add(menuBody, 511, "3. Pocket Knife \y(High Speed)\w^n")
	add(menuBody, 511, "4. Butcher Knife \y(Low Gravity)\w^n")
	add(menuBody, 511, "5. Default Knife \y(Health Regeneration)\w^n^n")
	add(menuBody, 511, "6. \rSuperKnife \y(ALL IN ONE)\w^n^n")
	add(menuBody, 511, "0. Exit^n")
	
	new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
	show_menu(id, keys, menuBody, -1, "Knife Mod")
}

public knifemenu(id, key) {
	switch(key) 
	{
		case 0: SetKnife(id , 4)
		case 1: SetKnife(id , 2)
		case 2: SetKnife(id , 3)
		case 3: SetKnife(id , 1)
		case 4: SetKnife(id , 0)
		default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
} 

public SetKnife(id , Knife) {
	knife_model[id] = Knife
	
	new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo) 
	if ( Weapon != CSW_KNIFE )
		return PLUGIN_HANDLED
	
	new vModel[56],pModel[56]
	
	switch(Knife)
	{
		case 0: {
			format(vModel,55,"models/v_knife.mdl")
			format(pModel,55,"models/p_knife.mdl")
		}
		case 1: {
			format(vModel,55,"models/knife-mod/v_butcher.mdl")
			format(pModel,55,"models/knife-mod/p_butcher.mdl")
		}
		case 2: {
			format(vModel,55,"models/knife-mod/v_bak.mdl")
			format(pModel,55,"models/knife-mod/p_bak.mdl")
		}
		case 3: {
			format(vModel,55,"models/knife-mod/v_pocket.mdl")
			format(pModel,55,"models/knife-mod/p_pocket.mdl")
		}
		case 4: {
			format(vModel,55,"models/knife-mod/v_machete.mdl")
			format(pModel,55,"models/knife-mod/p_machete.mdl")
		}
		case 6: {
			format(vModel,55,"models/knife-mod/v_sk.mdl")
			format(pmodel,55,"models/knife-mod/p_sk.mdl")
	} 
	
	entity_set_string(id, EV_SZ_viewmodel, vModel)
	entity_set_string(id, EV_SZ_weaponmodel, pModel)
	
	return PLUGIN_HANDLED;  
}

public event_damage( id ) {
	
	new victim_id = id;
	if( !is_user_connected( victim_id ) ) return PLUGIN_CONTINUE
	new dmg_take = read_data( 2 );
	new dmgtype = read_data( 3 );
	new Float:multiplier = get_pcvar_float(CVAR_DAMAGE);
	new Float:damage = dmg_take * multiplier;
	new health = get_user_health( victim_id );
	
	new iWeapID, attacker_id = get_user_attacker( victim_id, iWeapID );
	
	if( !is_user_connected( attacker_id ) || !is_user_alive( victim_id ) ) {
		return PLUGIN_HANDLED
	}
	
	if( iWeapID == CSW_KNIFE && knife_model[attacker_id] == 4 ) {
		
		if( floatround(damage) >= health ) {
			if( victim_id == attacker_id ) {
				return PLUGIN_CONTINUE
				}else{
				log_kill( attacker_id, victim_id, "knife", 0 );
			}
			
			return PLUGIN_CONTINUE
			}else {
			if( victim_id == attacker_id ) return PLUGIN_CONTINUE
			
			fakedamage( victim_id, "weapon_knife", damage, dmgtype );
		}
	}
	return PLUGIN_CONTINUE
}

public CurWeapon(id)
	{
	new Weapon = read_data(2)
	
	// Set Knife Model
	SetKnife(id, knife_model[id])   
	
	// Task Options
	
	if(knife_model[id] == 0 && !task_exists(id) && Weapon == CSW_KNIFE)
		set_task(TASK_INTERVAL , "task_healing",id,_,_,"b")
	else if(task_exists(id))
		remove_task(id)
	
	// Abilities
	set_user_footsteps(id , ( (knife_model[id] == 2 && Weapon == CSW_KNIFE) ? 1 : 0) )
	
	new Float:Gravity = ((knife_model[id] == 1 && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
	set_user_gravity(id , Gravity)
	
	// Speed
	new Float:Speed
	if(Weapon != CSW_KNIFE || knife_model[id] < 3)
		return PLUGIN_CONTINUE
	else if(knife_model[id] == 3)
		Speed = get_pcvar_float(CVAR_HIGHSPEED)
	else if(knife_model[id] == 4)
		Speed = get_pcvar_float(CVAR_LOWSPEED)
	
	set_user_maxspeed(id, Speed)
	
	return PLUGIN_HANDLED   
	
}

stock log_kill(killer, victim, weapon[],headshot) {
	user_silentkill( victim );
	
	message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
	write_byte( killer );
	write_byte( victim );
	write_byte( headshot );
	write_string( weapon );
	message_end();
	
	new kfrags = get_user_frags( killer );
	set_user_frags( killer, kfrags++ );
	new vfrags = get_user_frags( victim );
	set_user_frags( victim, vfrags++ );
	
	return  PLUGIN_CONTINUE
} 


public task_healing(id) {  
	new addhealth = get_pcvar_num(CVAR_HEALTH_ADD)  
	if (!addhealth)
		return  
	
	new maxhealth = get_pcvar_num(CVAR_HEALTH_MAX)  
	if (maxhealth > MAX_HEALTH) { 
		set_pcvar_num(CVAR_HEALTH_MAX, MAX_HEALTH)  
		maxhealth = MAX_HEALTH 
	}  
	
	new health = get_user_health(id)   
	
	if (is_user_alive(id) && (health < maxhealth)) { 
		set_user_health(id, health + addhealth)
		set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.1, 4)
		show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
		message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
		write_short(1<<10)
		write_short(1<<10)
		write_short(0x0000)
		write_byte(0)
		write_byte(200)
		write_byte(0)
		write_byte(75)
		message_end()
	}
	
	else {
		if (is_user_alive(id) && (health > maxhealth))
			remove_task(id)
	}
}  

public client_disconnect(id) {  
	if(task_exists(id)) remove_task(id)  
}  


public kmodmsg() { 
	
	client_print(0,print_chat,"[AMXX] Type /knife to change your knife skins")
}  

public client_authorized(id)
	{
	LoadData(id)
}

SaveData(id)
{ 
	
	new authid[32]
	get_user_authid(id, authid, 31)
	
	new vaultkey[64]
	new vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	format(vaultdata, 63, "%d", knife_model[id])
	set_vaultdata(vaultkey, vaultdata)
}

LoadData(id) 
{ 
	new authid[32] 
	get_user_authid(id,authid,31)
	
	new vaultkey[64], vaultdata[64]
	
	format(vaultkey, 63, "KMOD_%s", authid)
	get_vaultdata(vaultkey, vaultdata, 63)
	knife_model[id] = str_to_num(vaultdata)
	
} 
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Am inceput eu putin sa adaug inca un knife in meniu si mai exact : super knife . Acest knife ar trebui sa fie doar pentru ADMIN_LEVEL_H si sa primeasca ca beneficiu putererile urmatoare de GRAVITY,SPEED,REGENERARE care deja sunt setate in meniu (sa ramana aceleasi cvar-uri).

Dau si eu un multumesc ca rasplata :D
Poftim: http://www.girlshare.ro/33135637.7
Am testat și a funcționat, aștept răspuns de la tine dacă îți merge.

Edit: dorești și sunete în limba română la plugin ? (pentru detalii: http://www.extreamcs.com/forum/cereri-c ... 28747.html)
Rezolvat. Autorul a dorit ca sursa să rămână privată, dacă dorește cineva un astfel de plugin, PM și vă voi face.
Y!M: floryan_m13
Email: [email protected]

Image
_____________________________________
  • Image http://www.Mafios.Ro
    • Caut staff pentru comunitate. Cine este interesat, PM.
    • Creez pluginuri AMXModX (UNICE) contra cost.
    • Creez teme PHPBB3 la comandă.
    • Vând/ofer domenii spre administrare.
    • Vând servere cs 1.6 / hlstatsx.
    • Cine este interesat rog să mă contacteze în privat.
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 46 guests