Modificare plugin weapons

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
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

22 Feb 2013, 19:17

Acest plugin, ofera 3 arme la jucatori (contra cost) Ei bine, eu vreau ca doar echipa CT sa aibe acces la acest meniu cu arme speciale.
Daca esti terro si scri /goldmenu sa iti apara un mesaj de genul "Trebuie sa fi CT ca sa accesezi acest meniu"
Si as mai dori ca armele cumparate de acolo sa aiba gloante nelimitate si NOCLIP (sa nu incarci niciodata.)
arme | Afiseaza codul
//////////////////////////
//Golden AK Mod         //                 ===  ===
//Created by: Rolnaaba  //                 (. ) (. )
//Version: 6.0          //                    () 
//////////////////////////                  _______
//
//  **WHAT IT DOES**
//  ----------------
//    This plugin allows you to buy different Golden Weapons with no recoil, higher damage,
//  and a cool model. Admins can turn on and off the whole Golden-Weapons plugin, 
//  as well as change the cost of the Golden weapons. The Golden Weapons only last one
//  round so do as much damage as u can!
//  
//  **ADMIN COMANDS**
//  -----------------
//  admin_Goldenweapons 1/0 ---(if 1 the plugin if on , if 0 the plugin is off)
//  admin_AKcost  ---(the amount the AK will cost to buy Default is 10000)
//  admin_M4cost  ---(the amount the M4 will cost to buy Default is 10000)
//  admin_MPcost  ---(the amount the MP5 Navy will cost to buy Default is 10000)
//
//  **CLIENT COMANDS**
//  ------------------
//  /Goldenprice  ---(list the price of all the weapons)
//  /Goldenmenu  ---(opens the menu to buy the weapons)
//  
//  **SPECIAL THANKS TO**
//  ---------------------
//  --wonsae, he helped to create the plugin and has my undieing gratatude!!
//  (he fixed almost ever problem I came in contact with)
//  --ThomasNguyen, the whole plugin was his idea, I just made it, and wonsae made it work

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>

new g_Menu;
new bool:hasAK[33] = false;
new bool:hasM4[33] = false;
new bool:hasMP[33] = false;
new CVAR_ENABLE;
new CVAR_DAMAGE;
new CVAR_AKCOST;
new CVAR_M4COST;
new CVAR_MP5COST;

new gKiller = 0;
new gVictim = 0;
new gHeadshot = 0;
new gWeapon[33];
new gChangeDeathEvent = 0;

new bool:g_restart_attempt[33];

public plugin_init() {
	register_plugin("GoldenWeapons", "6.0a", "Rolnaaba");
	
	g_Menu = register_menuid("Golden Weapons");
	register_menucmd(g_Menu, 1023, "Goldenmenu");
	register_clcmd("say /goldmenu", "showmenu");
	register_clcmd("amx_goldmenu", "showmenu");
	
	CVAR_ENABLE = register_cvar("admin_Goldenweapons", "1");
	CVAR_DAMAGE = register_cvar("admin_Goldendamage", "3");
	CVAR_AKCOST = register_cvar("admin_AKcost", "16000"); 
	CVAR_M4COST = register_cvar("admin_M4cost", "16000");
	CVAR_MP5COST = register_cvar("admin_MPcost", "13000");
	
	register_event("CurWeapon","event_curweapon","be", "1=1");
	register_event("Damage", "event_damage", "be");
	
	//to detect Player Spawn, WHAT FUN!! (THANKS TO VEN)
	register_event("ResetHUD", "event_hud_reset", "be");
	register_clcmd("fullupdate", "clcmd_fullupdate") ;
	register_event("TextMsg", "event_restart_attempt", "a", "2=#Game_will_restart_in");
	
	register_message(get_user_msgid("DeathMsg"), "Hook_DeathMsg");
}   

public clcmd_fullupdate() {
	return PLUGIN_HANDLED_MAIN;
}

public event_restart_attempt() {
	new players[32], num;
	get_players(players, num, "a");
	for (new i; i < num; ++i)
		g_restart_attempt[players] = true;
}
 
public event_hud_reset(id) {
	if (g_restart_attempt[id]) {
		g_restart_attempt[id] = false;
		return;
	}
	event_player_spawn(id);
}

public plugin_precache() {    
	precache_model("models/GoldenAK/v_ak47.mdl");
	precache_model("models/GoldenAK/p_ak47.mdl");
	precache_model("models/GoldenM4/v_m4a1.mdl");
	precache_model("models/GoldenM4/p_m4a1.mdl");
	precache_model("models/GoldenMP5/v_mp5.mdl");
	precache_model("models/GoldenMP5/p_mp5.mdl");
}   

public Goldenmenu(id, key) {
	switch(key) {
		case 0: SetAK(id);
		case 1: SetM4(id);
		case 2: SetMP5(id);
		default: return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}

public showmenu(id) {
	new akcost = get_pcvar_num(CVAR_AKCOST);
	new m4cost = get_pcvar_num(CVAR_M4COST);
	new mp5cost = get_pcvar_num(CVAR_MP5COST);
	
	new menu[512];
	format(menu, 511, "\rGOLD WEAPONS\w^n^n1. Cumpara Ak-47 De Aur           \y(%i$)\w^n2. Cumpara Carabina M4 De Aur       \y(%i$)\w^n3. Cumpara Swat MP5 De Aur         \y(%i$)\w^n^n0. Iesire^n", akcost, m4cost, mp5cost);
	
	new keys = (1<<0|1<<1|1<<2|1<<9);
	show_menu(id, keys, menu, -1, "Golden Weapons");
}

public SetAK(id) {
	if(!get_pcvar_num(CVAR_ENABLE)) {    
		client_print(id,print_chat,"Golden Weapons Mod is disabled, sorry");
		return PLUGIN_HANDLED;
	} else {
		new money = cs_get_user_money(id);
		new price = get_pcvar_num(CVAR_AKCOST);
		
		if(!is_user_alive(id)) {
			client_print(id, print_chat, "You can only buy Golden Weapons when alive");
		} else if(hasAK[id]) {
			client_print(id, print_chat, "You already have a Golden AK");
		} else if(money < price) {
			client_print(id, print_chat, "You can't afford that!");
		} else {
			hasAK[id] = true;
			strip_user_weapons(id);
			cs_set_user_money(id, money - price);
			
			give_item(id,"weapon_ak47");
			give_item(id,"ammo_762nato");
			give_item(id,"ammo_762nato");
			give_item(id,"ammo_762nato");
			
			client_print(id,print_chat,"You have bought the Golden AK for %i doallars",price);
		}
	}
	return PLUGIN_HANDLED;
}

public SetM4(id) {   
	if(get_pcvar_num(CVAR_ENABLE) == 0) {     
		client_print(id,print_chat,"Golden Weapons Mod is disabled");    
		return PLUGIN_HANDLED; 
	} else {
		new money = cs_get_user_money(id);
		new price = get_pcvar_num(CVAR_M4COST);
		
		if(!is_user_alive(id)) {
			client_print(id, print_chat, "You can only buy Golden Weapons when alive");
		} else if(hasM4[id]) {
			client_print(id, print_chat, "You already have a Golden M4");
		} else if(money < price) {
			client_print(id, print_chat, "You can't afford that!");
		} else {  
			hasM4[id] = true; 
			strip_user_weapons(id);
			cs_set_user_money(id,cs_get_user_money(id) - price);
			
			give_item(id,"weapon_m4a1");
			give_item(id,"ammo_556nato");
			give_item(id,"ammo_556nato");
			give_item(id,"ammo_556nato");
			
			client_print(id,print_chat,"You have bought the Golden M4A1 for %i dollars",price);
		}	 
	} 
	return PLUGIN_HANDLED;
}

public SetMP5(id) {
	if(get_pcvar_num(CVAR_ENABLE) == 0) {     
		client_print(id,print_chat,"This mod is disabled");    
		return PLUGIN_HANDLED;  
	} else {
		new money = cs_get_user_money(id);
		new price = get_pcvar_num(CVAR_MP5COST);
		
		if(!is_user_alive(id)) {
			client_print(id, print_chat, "You can only buy Golden Weapons when alive");
		} else if(hasMP[id]) {
			client_print(id, print_chat, "You already have a Golden MP5NAVY");
		} else if(money < price) {
			client_print(id, print_chat, "You can't afford that!");
		} else {
			hasMP[id] = true;
			strip_user_weapons(id);   
			cs_set_user_money(id,cs_get_user_money(id) - price);
			
			give_item(id,"weapon_mp5navy");
			give_item(id,"ammo_9mm");
			give_item(id,"ammo_9mm");
			give_item(id,"ammo_9mm");
			give_item(id,"ammo_9mm");
			
			client_print(id,print_chat,"You have bought the Golden MP5NAVY for %i dollars",price);
		}
	} 	
	return PLUGIN_HANDLED; 
}

public event_curweapon(id) { 
	new clip, ammo, weapon = get_user_weapon(id, clip, ammo);
	
	if(hasAK[id] == true && weapon == CSW_AK47) { 
		set_pev(id, pev_viewmodel, "models/GoldenAK/v_ak47.mdl");
		set_pev(id, pev_weaponmodel, "models/GoldenAK/p_ak47.mdl");
		
		if(pev(id, pev_button) & IN_ATTACK) {
			set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
		}
	}
	if(hasM4[id] == true && weapon == CSW_M4A1) {
		set_pev(id, pev_viewmodel, "models/GoldenM4/v_m4a1.mdl");
		set_pev(id, pev_weaponmodel, "models/GoldenM4/p_m4a1.mdl");
		
		if(pev(id, pev_button) & IN_ATTACK)  {   
			set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
		}
	}
	if(hasMP[id] == true && weapon == CSW_MP5NAVY) {
		set_pev(id, pev_viewmodel, "models/GoldenMP/v_mp5.mdl");
		set_pev(id, pev_weaponmodel, "models/GoldenMP/p_mp5.mdl");
		
		if(pev(id, pev_button) & IN_ATTACK) {   
			set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
		}
	}
	return PLUGIN_CONTINUE;
}

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_AK47 && hasAK[attacker_id] == true) {
		if(floatround(damage) >= health) {
			if(victim_id == attacker_id) {
				return PLUGIN_CONTINUE;
			}else{
				log_kill(attacker_id, victim_id, "ak47", 0);
			}
			return PLUGIN_CONTINUE;
			
		} else {
			if(victim_id == attacker_id) return PLUGIN_CONTINUE;
			
			FAKE_DAMAGE(victim_id, "weapon_ak47", damage, dmgtype);
		}
	} else if( iWeapID == CSW_M4A1 && hasM4[attacker_id] == true  ) {
		
		if( floatround(damage) >= health ) {
			if( victim_id == attacker_id ) {
				return PLUGIN_CONTINUE;
			}else{
				log_kill( attacker_id, victim_id, "m4a1", 0 );
			}
			return PLUGIN_CONTINUE;
			
		}else {
			if(victim_id == attacker_id) return PLUGIN_CONTINUE;
			
			FAKE_DAMAGE(victim_id, "weapon_m4a1", damage, dmgtype);
		}
	} else if(iWeapID == CSW_MP5NAVY && hasMP[attacker_id] == true ) {
		
		if(floatround(damage) >= health) {
			if( victim_id == attacker_id ) {
				return PLUGIN_CONTINUE;
			}else{
				log_kill(attacker_id, victim_id, "mp5navy", 0);
			}
			return PLUGIN_CONTINUE;
			
		}else {
			if( victim_id == attacker_id ) return PLUGIN_CONTINUE;
			
			FAKE_DAMAGE(victim_id, "weapon_mp5navy", damage, dmgtype);
		}
	}
	return PLUGIN_CONTINUE;
}

stock log_kill(killer, victim, weapon[],headshot) {
	user_kill(victim, 1);
	
	gKiller = killer;
	gVictim = victim;
	gHeadshot = headshot;
	copy(gWeapon, 32, weapon);
	
	gChangeDeathEvent = 1;
	
	// Update killers scorboard with new info
	message_begin(MSG_ALL, get_user_msgid("ScoreInfo"))
	write_byte(killer)
	write_short(get_user_frags(killer))
	write_short(get_user_deaths(killer))
	write_short(0)
	write_short(get_user_team(killer))
	message_end()
	
	// Update victims scoreboard with correct info
	message_begin(MSG_ALL, get_user_msgid("ScoreInfo"))
	write_byte(victim)
	write_short(get_user_frags(victim))
	write_short(get_user_deaths(victim))
	write_short(0)
	write_short(get_user_team(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 event_player_spawn(id) { 
	new clip, ammo, weapon = get_user_weapon(id, clip, ammo);
	new CsTeams:team = cs_get_user_team(id);
	
	if(hasAK[id] && weapon == CSW_AK47) { 
		hasAK[id] = false;
		set_pev(id, pev_viewmodel, "models/v_ak47.mdl");
		set_pev(id, pev_weaponmodel, "models/p_ak47.mdl");
		
		if (team == CS_TEAM_T) {
			give_item(id,"weapon_glock18");
			give_item(id,"ammo_9mm");
			give_item(id,"weapon_knife");
		} else {
			give_item(id,"weapon_usp");
			give_item(id,"ammo_45acp");
			give_item(id,"ammo_45acp");
			give_item(id,"weapon_knife");
		}
	} else if(hasM4[id] && weapon == CSW_M4A1) {
		hasM4[id] = false;
		set_pev(id, pev_viewmodel, "models/v_m4a1.mdl");
		set_pev(id, pev_weaponmodel, "models/p_m4a1.mdl");
		
		if (team == CS_TEAM_T) {
			give_item(id,"weapon_glock18");
			give_item(id,"ammo_9mm");
			give_item(id,"weapon_knife");
		} else {
			give_item(id,"weapon_usp");
			give_item(id,"ammo_45acp");
			give_item(id,"ammo_45acp");
			give_item(id,"weapon_knife");
		}
	} else if(hasMP[id] && weapon == CSW_MP5NAVY) {
		hasMP[id] = false;
		set_pev(id, pev_viewmodel, "models/v_mp5.mdl");
		set_pev(id, pev_weaponmodel, "models/p_mp5.mdl");
		
		if (team == CS_TEAM_T) {
			give_item(id,"weapon_glock18");
			give_item(id,"ammo_9mm");
			give_item(id,"weapon_knife");
		} else {
			give_item(id,"weapon_usp");
			give_item(id,"ammo_45acp");
			give_item(id,"ammo_45acp");
			give_item(id,"weapon_knife");
		}
	}
	return PLUGIN_CONTINUE;
}

//thanks to ojos.inc, god I love that include lol
stock FAKE_DAMAGE(idvictim, szClassname[], Float:takedmgdamage, damagetype) {
	new entity = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"trigger_hurt"));
	if(entity) {
		new szDamage[16];
		format(szDamage,15,"%f",takedmgdamage * 2);
		DISPATCH_KEYVALUE(entity,"dmg",szDamage);
		
		format(szDamage,15,"%i",damagetype);
		DISPATCH_KEYVALUE(entity,"damagetype",szDamage);
		
		dllfunc(DLLFunc_Spawn, entity);
		
		set_pev(entity, pev_classname, szClassname);
		dllfunc(DLLFunc_Touch, entity, idvictim);
		
		engfunc(EngFunc_RemoveEntity, entity);
		return 1;
	}
	return 0;
}

stock DISPATCH_KEYVALUE(idEntity, szKeyName[], szValue[]) {
	set_kvd(0, KV_KeyName, szKeyName);
	set_kvd(0, KV_Value, szValue);
	set_kvd(0, KV_fHandled, 0);
	return dllfunc(DLLFunc_KeyValue, idEntity, 0);
}

public Hook_DeathMsg(msg_id, msg_dest, entid) {
	if(gChangeDeathEvent) {
		//As of AMX Mod X 1.5, the middle parameter of set_* no longer does anything.
		set_msg_arg_int(1, 1, gKiller);
		set_msg_arg_int(2, 1, gVictim);
		set_msg_arg_int(3, 1, gHeadshot);
		set_msg_arg_string(4, gWeapon);
		
		gChangeDeathEvent = 0;
		
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
RoyalServer
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

23 Feb 2013, 15:31

UP! Inca am nevoie de el. Se-ncumeta cineva sa ma ajute?
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

24 Feb 2013, 17:47

Up. Tot mai am nevoie de el.
User avatar
eNd.
Membru, skill +1
Membru, skill +1
Posts: 236
Joined: 19 Jan 2013, 21:18
Detinator Steam: Da
CS Status: Whoa...
SteamID: skitaila03
Has thanked: 18 times
Been thanked: 79 times

24 Feb 2013, 19:14

Pentru 1.
| Afiseaza codul
public showmenu(id) {
	new akcost = get_pcvar_num(CVAR_AKCOST);
	new m4cost = get_pcvar_num(CVAR_M4COST);
	new mp5cost = get_pcvar_num(CVAR_MP5COST);
	
	new menu[512];
	format(menu, 511, "\rGOLD WEAPONS\w^n^n1. Cumpara Ak-47 De Aur           \y(%i$)\w^n2. Cumpara Carabina M4 De Aur       \y(%i$)\w^n3. Cumpara Swat MP5 De Aur         \y(%i$)\w^n^n0. Iesire^n", akcost, m4cost, mp5cost);
	
	new keys = (1<<0|1<<1|1<<2|1<<9);
	show_menu(id, keys, menu, -1, "Golden Weapons");
}
->
| Afiseaza codul
public showmenu(id) {
	if(cs_get_user_team(id) != CS_TEAM_CT)
		return PLUGIN_HANDLED

	new akcost = get_pcvar_num(CVAR_AKCOST);
	new m4cost = get_pcvar_num(CVAR_M4COST);
	new mp5cost = get_pcvar_num(CVAR_MP5COST);
	
	new menu[512];
	format(menu, 511, "\rGOLD WEAPONS\w^n^n1. Cumpara Ak-47 De Aur           \y(%i$)\w^n2. Cumpara Carabina M4 De Aur       \y(%i$)\w^n3. Cumpara Swat MP5 De Aur         \y(%i$)\w^n^n0. Iesire^n", akcost, m4cost, mp5cost);
	
	new keys = (1<<0|1<<1|1<<2|1<<9);
	show_menu(id, keys, menu, -1, "Golden Weapons");
}
Image
ImageImage
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

25 Feb 2013, 10:57

Mersi, dar nu poți pune și un mesaj?
User avatar
eNd.
Membru, skill +1
Membru, skill +1
Posts: 236
Joined: 19 Jan 2013, 21:18
Detinator Steam: Da
CS Status: Whoa...
SteamID: skitaila03
Has thanked: 18 times
Been thanked: 79 times

25 Feb 2013, 15:14

| Afiseaza codul
if(cs_get_user_team(id) != CS_TEAM_CT) client_print(id, print_chat, "Nu ai acces.") return PLUGIN_HANDLED
:-?
Image
ImageImage
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

25 Feb 2013, 17:53

eNd. wrote:
| Afiseaza codul
if(cs_get_user_team(id) != CS_TEAM_CT) client_print(id, print_chat, "Nu ai acces.") return PLUGIN_HANDLED
:-?
Nu merge :)
Mai astept!

EDIT: oare merge asa?

Code: Select all

if(cs_get_user_team(id) != CS_TEAM_CT) {
		client_print(id, print_chat, "[AMXX] Poti accesa acest meniu doar daca esti CT.")
		return PLUGIN_HANDLED
User avatar
eNd.
Membru, skill +1
Membru, skill +1
Posts: 236
Joined: 19 Jan 2013, 21:18
Detinator Steam: Da
CS Status: Whoa...
SteamID: skitaila03
Has thanked: 18 times
Been thanked: 79 times

25 Feb 2013, 18:44

RoCoFeLu wrote:
eNd. wrote:
| Afiseaza codul
if(cs_get_user_team(id) != CS_TEAM_CT) client_print(id, print_chat, "Nu ai acces.") return PLUGIN_HANDLED
:-?
Nu merge :)
Mai astept!

EDIT: oare merge asa?
| Afiseaza codul
if(cs_get_user_team(id) == CS_TEAM_T) {
		client_print(id, print_chat, "[AMXX] Poti accesa acest meniu doar daca esti CT.")
		return PLUGIN_HANDLED
                }
Vezi asa..
Image
ImageImage
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

27 Feb 2013, 23:11

eNd. wrote:
RoCoFeLu wrote:
eNd. wrote:
| Afiseaza codul
if(cs_get_user_team(id) != CS_TEAM_CT) client_print(id, print_chat, "Nu ai acces.") return PLUGIN_HANDLED
:-?
Nu merge :)
Mai astept!

EDIT: oare merge asa?
| Afiseaza codul
if(cs_get_user_team(id) == CS_TEAM_T) {
		client_print(id, print_chat, "[AMXX] Poti accesa acest meniu doar daca esti CT.")
		return PLUGIN_HANDLED
                }
Vezi asa..
Nu a mers
User avatar
sDs|Aragon*
Membru, skill +2
Membru, skill +2
Posts: 576
Joined: 29 Dec 2011, 21:38
Detinator Steam: Da
SteamID: Mihai_Parkour10
Reputatie: Fost scripter eXtreamCS
Has thanked: 4 times
Been thanked: 132 times

28 Feb 2013, 00:33

| Afiseaza codul
//////////////////////////
//Golden AK Mod         //                 ===  ===
//Created by: Rolnaaba  //                 (. ) (. )
//Version: 6.0          //                    () 
//////////////////////////                  _______
//
//  **WHAT IT DOES**
//  ----------------
//    This plugin allows you to buy different Golden Weapons with no recoil, higher damage,
//  and a cool model. Admins can turn on and off the whole Golden-Weapons plugin, 
//  as well as change the cost of the Golden weapons. The Golden Weapons only last one
//  round so do as much damage as u can!
//  
//  **ADMIN COMANDS**
//  -----------------
//  admin_Goldenweapons 1/0 ---(if 1 the plugin if on , if 0 the plugin is off)
//  admin_AKcost  ---(the amount the AK will cost to buy Default is 10000)
//  admin_M4cost  ---(the amount the M4 will cost to buy Default is 10000)
//  admin_MPcost  ---(the amount the MP5 Navy will cost to buy Default is 10000)
//
//  **CLIENT COMANDS**
//  ------------------
//  /Goldenprice  ---(list the price of all the weapons)
//  /Goldenmenu  ---(opens the menu to buy the weapons)
//  
//  **SPECIAL THANKS TO**
//  ---------------------
//  --wonsae, he helped to create the plugin and has my undieing gratatude!!
//  (he fixed almost ever problem I came in contact with)
//  --ThomasNguyen, the whole plugin was his idea, I just made it, and wonsae made it work

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>

new g_Menu;
new bool:hasAK[33] = false;
new bool:hasM4[33] = false;
new bool:hasMP[33] = false;
new CVAR_ENABLE;
new CVAR_DAMAGE;
new CVAR_AKCOST;
new CVAR_M4COST;
new CVAR_MP5COST;

new gKiller = 0;
new gVictim = 0;
new gHeadshot = 0;
new gWeapon[33];
new gChangeDeathEvent = 0;

new bool:g_restart_attempt[33];

public plugin_init() {
	register_plugin("GoldenWeapons", "6.0a", "Rolnaaba");
	
	g_Menu = register_menuid("Golden Weapons");
	register_menucmd(g_Menu, 1023, "Goldenmenu");
	register_clcmd("say /goldmenu", "showmenu");
	register_clcmd("amx_goldmenu", "showmenu");
	
	CVAR_ENABLE = register_cvar("admin_Goldenweapons", "1");
	CVAR_DAMAGE = register_cvar("admin_Goldendamage", "3");
	CVAR_AKCOST = register_cvar("admin_AKcost", "16000"); 
	CVAR_M4COST = register_cvar("admin_M4cost", "16000");
	CVAR_MP5COST = register_cvar("admin_MPcost", "13000");
	
	register_event("CurWeapon","event_curweapon","be", "1=1");
	register_event("Damage", "event_damage", "be");
	
	//to detect Player Spawn, WHAT FUN!! (THANKS TO VEN)
	register_event("ResetHUD", "event_hud_reset", "be");
	register_clcmd("fullupdate", "clcmd_fullupdate") ;
	register_event("TextMsg", "event_restart_attempt", "a", "2=#Game_will_restart_in");
	
	register_message(get_user_msgid("DeathMsg"), "Hook_DeathMsg");
}   

public clcmd_fullupdate() {
	return PLUGIN_HANDLED_MAIN;
}

public event_restart_attempt() {
	new players[32], num;
	get_players(players, num, "a");
	for (new i; i < num; ++i)
		g_restart_attempt[players] = true;
}
 
public event_hud_reset(id) {
	if (g_restart_attempt[id]) {
		g_restart_attempt[id] = false;
		return;
	}
	event_player_spawn(id);
}

public plugin_precache() {    
	precache_model("models/GoldenAK/v_ak47.mdl");
	precache_model("models/GoldenAK/p_ak47.mdl");
	precache_model("models/GoldenM4/v_m4a1.mdl");
	precache_model("models/GoldenM4/p_m4a1.mdl");
	precache_model("models/GoldenMP5/v_mp5.mdl");
	precache_model("models/GoldenMP5/p_mp5.mdl");
}   

public Goldenmenu(id, key) {
	switch(key) {
		case 0: SetAK(id);
		case 1: SetM4(id);
		case 2: SetMP5(id);
		default: return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}

public showmenu(id) {
	if(get_user_team(id) == 2) {
		new akcost = get_pcvar_num(CVAR_AKCOST);
		new m4cost = get_pcvar_num(CVAR_M4COST);
		new mp5cost = get_pcvar_num(CVAR_MP5COST);
	
		new menu[512];
		format(menu, 511, "\rGOLD WEAPONS\w^n^n1. Cumpara Ak-47 De Aur           \y(%i$)\w^n2. Cumpara Carabina M4 De Aur       \y(%i$)\w^n3. Cumpara Swat MP5 De Aur         \y(%i$)\w^n^n0. Iesire^n", akcost, m4cost, mp5cost);
	
		new keys = (1<<0|1<<1|1<<2|1<<9);
		show_menu(id, keys, menu, -1, "Golden Weapons");
	}
}

public SetAK(id) {
	if(!get_pcvar_num(CVAR_ENABLE)) {    
		client_print(id,print_chat,"Golden Weapons Mod is disabled, sorry");
		return PLUGIN_HANDLED;
	} else {
		new money = cs_get_user_money(id);
		new price = get_pcvar_num(CVAR_AKCOST);
		
		if(!is_user_alive(id)) {
			client_print(id, print_chat, "You can only buy Golden Weapons when alive");
		} else if(hasAK[id]) {
			client_print(id, print_chat, "You already have a Golden AK");
		} else if(money < price) {
			client_print(id, print_chat, "You can't afford that!");
		} else {
			hasAK[id] = true;
			strip_user_weapons(id);
			cs_set_user_money(id, money - price);
			
			give_item(id,"weapon_ak47");
			give_item(id,"ammo_762nato");
			give_item(id,"ammo_762nato");
			give_item(id,"ammo_762nato");
			
			client_print(id,print_chat,"You have bought the Golden AK for %i doallars",price);
		}
	}
	return PLUGIN_HANDLED;
}

public SetM4(id) {   
	if(get_pcvar_num(CVAR_ENABLE) == 0) {     
		client_print(id,print_chat,"Golden Weapons Mod is disabled");    
		return PLUGIN_HANDLED; 
	} else {
		new money = cs_get_user_money(id);
		new price = get_pcvar_num(CVAR_M4COST);
		
		if(!is_user_alive(id)) {
			client_print(id, print_chat, "You can only buy Golden Weapons when alive");
		} else if(hasM4[id]) {
			client_print(id, print_chat, "You already have a Golden M4");
		} else if(money < price) {
			client_print(id, print_chat, "You can't afford that!");
		} else {  
			hasM4[id] = true; 
			strip_user_weapons(id);
			cs_set_user_money(id,cs_get_user_money(id) - price);
			
			give_item(id,"weapon_m4a1");
			give_item(id,"ammo_556nato");
			give_item(id,"ammo_556nato");
			give_item(id,"ammo_556nato");
			
			client_print(id,print_chat,"You have bought the Golden M4A1 for %i dollars",price);
		}	 
	} 
	return PLUGIN_HANDLED;
}

public SetMP5(id) {
	if(get_pcvar_num(CVAR_ENABLE) == 0) {     
		client_print(id,print_chat,"This mod is disabled");    
		return PLUGIN_HANDLED;  
	} else {
		new money = cs_get_user_money(id);
		new price = get_pcvar_num(CVAR_MP5COST);
		
		if(!is_user_alive(id)) {
			client_print(id, print_chat, "You can only buy Golden Weapons when alive");
		} else if(hasMP[id]) {
			client_print(id, print_chat, "You already have a Golden MP5NAVY");
		} else if(money < price) {
			client_print(id, print_chat, "You can't afford that!");
		} else {
			hasMP[id] = true;
			strip_user_weapons(id);   
			cs_set_user_money(id,cs_get_user_money(id) - price);
			
			give_item(id,"weapon_mp5navy");
			give_item(id,"ammo_9mm");
			give_item(id,"ammo_9mm");
			give_item(id,"ammo_9mm");
			give_item(id,"ammo_9mm");
			
			client_print(id,print_chat,"You have bought the Golden MP5NAVY for %i dollars",price);
		}
	} 	
	return PLUGIN_HANDLED; 
}

public event_curweapon(id) { 
	new clip, ammo, weapon = get_user_weapon(id, clip, ammo);
	
	if(hasAK[id] == true && weapon == CSW_AK47) { 
		set_pev(id, pev_viewmodel, "models/GoldenAK/v_ak47.mdl");
		set_pev(id, pev_weaponmodel, "models/GoldenAK/p_ak47.mdl");
		
		if(pev(id, pev_button) & IN_ATTACK) {
			set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
		}
	}
	if(hasM4[id] == true && weapon == CSW_M4A1) {
		set_pev(id, pev_viewmodel, "models/GoldenM4/v_m4a1.mdl");
		set_pev(id, pev_weaponmodel, "models/GoldenM4/p_m4a1.mdl");
		
		if(pev(id, pev_button) & IN_ATTACK)  {   
			set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
		}
	}
	if(hasMP[id] == true && weapon == CSW_MP5NAVY) {
		set_pev(id, pev_viewmodel, "models/GoldenMP/v_mp5.mdl");
		set_pev(id, pev_weaponmodel, "models/GoldenMP/p_mp5.mdl");
		
		if(pev(id, pev_button) & IN_ATTACK) {   
			set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
		}
	}
	return PLUGIN_CONTINUE;
}

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_AK47 && hasAK[attacker_id] == true) {
		if(floatround(damage) >= health) {
			if(victim_id == attacker_id) {
				return PLUGIN_CONTINUE;
			}else{
				log_kill(attacker_id, victim_id, "ak47", 0);
			}
			return PLUGIN_CONTINUE;
			
		} else {
			if(victim_id == attacker_id) return PLUGIN_CONTINUE;
			
			FAKE_DAMAGE(victim_id, "weapon_ak47", damage, dmgtype);
		}
	} else if( iWeapID == CSW_M4A1 && hasM4[attacker_id] == true  ) {
		
		if( floatround(damage) >= health ) {
			if( victim_id == attacker_id ) {
				return PLUGIN_CONTINUE;
			}else{
				log_kill( attacker_id, victim_id, "m4a1", 0 );
			}
			return PLUGIN_CONTINUE;
			
		}else {
			if(victim_id == attacker_id) return PLUGIN_CONTINUE;
			
			FAKE_DAMAGE(victim_id, "weapon_m4a1", damage, dmgtype);
		}
	} else if(iWeapID == CSW_MP5NAVY && hasMP[attacker_id] == true ) {
		
		if(floatround(damage) >= health) {
			if( victim_id == attacker_id ) {
				return PLUGIN_CONTINUE;
			}else{
				log_kill(attacker_id, victim_id, "mp5navy", 0);
			}
			return PLUGIN_CONTINUE;
			
		}else {
			if( victim_id == attacker_id ) return PLUGIN_CONTINUE;
			
			FAKE_DAMAGE(victim_id, "weapon_mp5navy", damage, dmgtype);
		}
	}
	return PLUGIN_CONTINUE;
}

stock log_kill(killer, victim, weapon[],headshot) {
	user_kill(victim, 1);
	
	gKiller = killer;
	gVictim = victim;
	gHeadshot = headshot;
	copy(gWeapon, 32, weapon);
	
	gChangeDeathEvent = 1;
	
	// Update killers scorboard with new info
	message_begin(MSG_ALL, get_user_msgid("ScoreInfo"))
	write_byte(killer)
	write_short(get_user_frags(killer))
	write_short(get_user_deaths(killer))
	write_short(0)
	write_short(get_user_team(killer))
	message_end()
	
	// Update victims scoreboard with correct info
	message_begin(MSG_ALL, get_user_msgid("ScoreInfo"))
	write_byte(victim)
	write_short(get_user_frags(victim))
	write_short(get_user_deaths(victim))
	write_short(0)
	write_short(get_user_team(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 event_player_spawn(id) { 
	new clip, ammo, weapon = get_user_weapon(id, clip, ammo);
	new CsTeams:team = cs_get_user_team(id);
	
	if(hasAK[id] && weapon == CSW_AK47) { 
		hasAK[id] = false;
		set_pev(id, pev_viewmodel, "models/v_ak47.mdl");
		set_pev(id, pev_weaponmodel, "models/p_ak47.mdl");
		
		if (team == CS_TEAM_T) {
			give_item(id,"weapon_glock18");
			give_item(id,"ammo_9mm");
			give_item(id,"weapon_knife");
		} else {
			give_item(id,"weapon_usp");
			give_item(id,"ammo_45acp");
			give_item(id,"ammo_45acp");
			give_item(id,"weapon_knife");
		}
	} else if(hasM4[id] && weapon == CSW_M4A1) {
		hasM4[id] = false;
		set_pev(id, pev_viewmodel, "models/v_m4a1.mdl");
		set_pev(id, pev_weaponmodel, "models/p_m4a1.mdl");
		
		if (team == CS_TEAM_T) {
			give_item(id,"weapon_glock18");
			give_item(id,"ammo_9mm");
			give_item(id,"weapon_knife");
		} else {
			give_item(id,"weapon_usp");
			give_item(id,"ammo_45acp");
			give_item(id,"ammo_45acp");
			give_item(id,"weapon_knife");
		}
	} else if(hasMP[id] && weapon == CSW_MP5NAVY) {
		hasMP[id] = false;
		set_pev(id, pev_viewmodel, "models/v_mp5.mdl");
		set_pev(id, pev_weaponmodel, "models/p_mp5.mdl");
		
		if (team == CS_TEAM_T) {
			give_item(id,"weapon_glock18");
			give_item(id,"ammo_9mm");
			give_item(id,"weapon_knife");
		} else {
			give_item(id,"weapon_usp");
			give_item(id,"ammo_45acp");
			give_item(id,"ammo_45acp");
			give_item(id,"weapon_knife");
		}
	}
	return PLUGIN_CONTINUE;
}

//thanks to ojos.inc, god I love that include lol
stock FAKE_DAMAGE(idvictim, szClassname[], Float:takedmgdamage, damagetype) {
	new entity = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"trigger_hurt"));
	if(entity) {
		new szDamage[16];
		format(szDamage,15,"%f",takedmgdamage * 2);
		DISPATCH_KEYVALUE(entity,"dmg",szDamage);
		
		format(szDamage,15,"%i",damagetype);
		DISPATCH_KEYVALUE(entity,"damagetype",szDamage);
		
		dllfunc(DLLFunc_Spawn, entity);
		
		set_pev(entity, pev_classname, szClassname);
		dllfunc(DLLFunc_Touch, entity, idvictim);
		
		engfunc(EngFunc_RemoveEntity, entity);
		return 1;
	}
	return 0;
}

stock DISPATCH_KEYVALUE(idEntity, szKeyName[], szValue[]) {
	set_kvd(0, KV_KeyName, szKeyName);
	set_kvd(0, KV_Value, szValue);
	set_kvd(0, KV_fHandled, 0);
	return dllfunc(DLLFunc_KeyValue, idEntity, 0);
}

public Hook_DeathMsg(msg_id, msg_dest, entid) {
	if(gChangeDeathEvent) {
		//As of AMX Mod X 1.5, the middle parameter of set_* no longer does anything.
		set_msg_arg_int(1, 1, gKiller);
		set_msg_arg_int(2, 1, gVictim);
		set_msg_arg_int(3, 1, gHeadshot);
		set_msg_arg_string(4, gWeapon);
		
		gChangeDeathEvent = 0;
		
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
User avatar
Hades Ownage
Membru eXtream
Membru eXtream
Posts: 3182
Joined: 22 Oct 2008, 10:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Fost Scripter eXtreamCS
Nume anterior: hadesownage
Location: Iasi
Has thanked: 324 times
Been thanked: 406 times

28 Feb 2013, 20:49

| Afiseaza codul
[code=php]#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>

new g_Menu;
new bool:hasAK[33] = false;
new bool:hasM4[33] = false;
new bool:hasMP[33] = false;
new CVAR_ENABLE;
new CVAR_DAMAGE;
new CVAR_AKCOST;
new CVAR_M4COST;
new CVAR_MP5COST;

new gKiller = 0;
new gVictim = 0;
new gHeadshot = 0;
new gWeapon[33];
new gChangeDeathEvent = 0;

new bool:g_restart_attempt[33];

public plugin_init() {
    register_plugin("GoldenWeapons", "6.0a", "Rolnaaba");
    
    g_Menu = register_menuid("Golden Weapons");
    register_menucmd(g_Menu, 1023, "Goldenmenu");
    register_clcmd("say /goldmenu", "showmenu");
    register_clcmd("amx_goldmenu", "showmenu");
    
    CVAR_ENABLE = register_cvar("admin_Goldenweapons", "1");
    CVAR_DAMAGE = register_cvar("admin_Goldendamage", "3");
    CVAR_AKCOST = register_cvar("admin_AKcost", "16000"); 
    CVAR_M4COST = register_cvar("admin_M4cost", "16000");
    CVAR_MP5COST = register_cvar("admin_MPcost", "13000");
    
    register_event("CurWeapon","event_curweapon","be", "1=1");
    register_event("Damage", "event_damage", "be");
    
    //to detect Player Spawn, WHAT FUN!! (THANKS TO VEN)
    register_event("ResetHUD", "event_hud_reset", "be");
    register_clcmd("fullupdate", "clcmd_fullupdate") ;
    register_event("TextMsg", "event_restart_attempt", "a", "2=#Game_will_restart_in");
    
    register_message(get_user_msgid("DeathMsg"), "Hook_DeathMsg");
}   

public clcmd_fullupdate() {
    return PLUGIN_HANDLED_MAIN;
}

public event_restart_attempt() {
    new players[32], num;
    get_players(players, num, "a");
    for (new i; i < num; ++i)
        g_restart_attempt[players] = true;
}

public event_hud_reset(id) {
    if (g_restart_attempt[id]) {
        g_restart_attempt[id] = false;
        return;
    }
    event_player_spawn(id);
}

public plugin_precache() {    
    precache_model("models/GoldenAK/v_ak47.mdl");
    precache_model("models/GoldenAK/p_ak47.mdl");
    precache_model("models/GoldenM4/v_m4a1.mdl");
    precache_model("models/GoldenM4/p_m4a1.mdl");
    precache_model("models/GoldenMP5/v_mp5.mdl");
    precache_model("models/GoldenMP5/p_mp5.mdl");
}   

public Goldenmenu(id, key) {
    switch(key) {
        case 0: SetAK(id);
            case 1: SetM4(id);
            case 2: SetMP5(id);
            default: return PLUGIN_HANDLED;
    }
    return PLUGIN_HANDLED;
}

public showmenu(id) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        new akcost = get_pcvar_num(CVAR_AKCOST);
        new m4cost = get_pcvar_num(CVAR_M4COST);
        new mp5cost = get_pcvar_num(CVAR_MP5COST);
        
        new menu[512];
        format(menu, 511, "\rGOLD WEAPONS\w^n^n1. Cumpara Ak-47 De Aur           \y(%i$)\w^n2. Cumpara Carabina M4 De Aur       \y(%i$)\w^n3. Cumpara Swat MP5 De Aur         \y(%i$)\w^n^n0. Iesire^n", akcost, m4cost, mp5cost);
        
        new keys = (1<<0|1<<1|1<<2|1<<9);
        show_menu(id, keys, menu, -1, "Golden Weapons");
    }
    else {
        client_print(id,print_chat,"Nu ai acces !");
    }
}


public SetAK(id) {
    if(!get_pcvar_num(CVAR_ENABLE)) {    
        client_print(id,print_chat,"Golden Weapons Mod is disabled, sorry");
        return PLUGIN_HANDLED;
        } else {
        new money = cs_get_user_money(id);
        new price = get_pcvar_num(CVAR_AKCOST);
        
        if(!is_user_alive(id)) {
            client_print(id, print_chat, "You can only buy Golden Weapons when alive");
            } else if(hasAK[id]) {
            client_print(id, print_chat, "You already have a Golden AK");
            } else if(money < price) {
            client_print(id, print_chat, "You can't afford that!");
            } else {
            hasAK[id] = true;
            strip_user_weapons(id);
            cs_set_user_money(id, money - price);
            
            give_item(id,"weapon_ak47");
            give_item(id,"ammo_762nato");
            give_item(id,"ammo_762nato");
            give_item(id,"ammo_762nato");
            
            client_print(id,print_chat,"You have bought the Golden AK for %i doallars",price);
        }
    }
    return PLUGIN_HANDLED;
}

public SetM4(id) {   
    if(get_pcvar_num(CVAR_ENABLE) == 0) {     
        client_print(id,print_chat,"Golden Weapons Mod is disabled");    
        return PLUGIN_HANDLED; 
        } else {
        new money = cs_get_user_money(id);
        new price = get_pcvar_num(CVAR_M4COST);
        
        if(!is_user_alive(id)) {
            client_print(id, print_chat, "You can only buy Golden Weapons when alive");
            } else if(hasM4[id]) {
            client_print(id, print_chat, "You already have a Golden M4");
            } else if(money < price) {
            client_print(id, print_chat, "You can't afford that!");
            } else {  
            hasM4[id] = true; 
            strip_user_weapons(id);
            cs_set_user_money(id,cs_get_user_money(id) - price);
            
            give_item(id,"weapon_m4a1");
            give_item(id,"ammo_556nato");
            give_item(id,"ammo_556nato");
            give_item(id,"ammo_556nato");
            
            client_print(id,print_chat,"You have bought the Golden M4A1 for %i dollars",price);
        }     
    } 
    return PLUGIN_HANDLED;
}

public SetMP5(id) {
    if(get_pcvar_num(CVAR_ENABLE) == 0) {     
        client_print(id,print_chat,"This mod is disabled");    
        return PLUGIN_HANDLED;  
        } else {
        new money = cs_get_user_money(id);
        new price = get_pcvar_num(CVAR_MP5COST);
        
        if(!is_user_alive(id)) {
            client_print(id, print_chat, "You can only buy Golden Weapons when alive");
            } else if(hasMP[id]) {
            client_print(id, print_chat, "You already have a Golden MP5NAVY");
            } else if(money < price) {
            client_print(id, print_chat, "You can't afford that!");
            } else {
            hasMP[id] = true;
            strip_user_weapons(id);   
            cs_set_user_money(id,cs_get_user_money(id) - price);
            
            give_item(id,"weapon_mp5navy");
            give_item(id,"ammo_9mm");
            give_item(id,"ammo_9mm");
            give_item(id,"ammo_9mm");
            give_item(id,"ammo_9mm");
            
            client_print(id,print_chat,"You have bought the Golden MP5NAVY for %i dollars",price);
        }
    }     
    return PLUGIN_HANDLED; 
}

public event_curweapon(id) { 
    new clip, ammo, weapon = get_user_weapon(id, clip, ammo);
    
    if(hasAK[id] == true && weapon == CSW_AK47) { 
        set_pev(id, pev_viewmodel, "models/GoldenAK/v_ak47.mdl");
        set_pev(id, pev_weaponmodel, "models/GoldenAK/p_ak47.mdl");
        
        if(pev(id, pev_button) & IN_ATTACK) {
            set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
        }
    }
    if(hasM4[id] == true && weapon == CSW_M4A1) {
        set_pev(id, pev_viewmodel, "models/GoldenM4/v_m4a1.mdl");
        set_pev(id, pev_weaponmodel, "models/GoldenM4/p_m4a1.mdl");
        
        if(pev(id, pev_button) & IN_ATTACK)  {   
            set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
        }
    }
    if(hasMP[id] == true && weapon == CSW_MP5NAVY) {
        set_pev(id, pev_viewmodel, "models/GoldenMP/v_mp5.mdl");
        set_pev(id, pev_weaponmodel, "models/GoldenMP/p_mp5.mdl");
        
        if(pev(id, pev_button) & IN_ATTACK) {   
            set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0});
        }
    }
    return PLUGIN_CONTINUE;
}

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_AK47 && hasAK[attacker_id] == true) {
        if(floatround(damage) >= health) {
            if(victim_id == attacker_id) {
                return PLUGIN_CONTINUE;
                }else{
                log_kill(attacker_id, victim_id, "ak47", 0);
            }
            return PLUGIN_CONTINUE;
            
            } else {
            if(victim_id == attacker_id) return PLUGIN_CONTINUE;
            
            FAKE_DAMAGE(victim_id, "weapon_ak47", damage, dmgtype);
        }
        } else if( iWeapID == CSW_M4A1 && hasM4[attacker_id] == true  ) {
        
        if( floatround(damage) >= health ) {
            if( victim_id == attacker_id ) {
                return PLUGIN_CONTINUE;
                }else{
                log_kill( attacker_id, victim_id, "m4a1", 0 );
            }
            return PLUGIN_CONTINUE;
            
            }else {
            if(victim_id == attacker_id) return PLUGIN_CONTINUE;
            
            FAKE_DAMAGE(victim_id, "weapon_m4a1", damage, dmgtype);
        }
        } else if(iWeapID == CSW_MP5NAVY && hasMP[attacker_id] == true ) {
        
        if(floatround(damage) >= health) {
            if( victim_id == attacker_id ) {
                return PLUGIN_CONTINUE;
                }else{
                log_kill(attacker_id, victim_id, "mp5navy", 0);
            }
            return PLUGIN_CONTINUE;
            
            }else {
            if( victim_id == attacker_id ) return PLUGIN_CONTINUE;
            
            FAKE_DAMAGE(victim_id, "weapon_mp5navy", damage, dmgtype);
        }
    }
    return PLUGIN_CONTINUE;
}

stock log_kill(killer, victim, weapon[],headshot) {
    user_kill(victim, 1);
    
    gKiller = killer;
    gVictim = victim;
    gHeadshot = headshot;
    copy(gWeapon, 32, weapon);
    
    gChangeDeathEvent = 1;
    
    // Update killers scorboard with new info
    message_begin(MSG_ALL, get_user_msgid("ScoreInfo"))
    write_byte(killer)
    write_short(get_user_frags(killer))
    write_short(get_user_deaths(killer))
    write_short(0)
    write_short(get_user_team(killer))
    message_end()
    
    // Update victims scoreboard with correct info
    message_begin(MSG_ALL, get_user_msgid("ScoreInfo"))
    write_byte(victim)
    write_short(get_user_frags(victim))
    write_short(get_user_deaths(victim))
    write_short(0)
    write_short(get_user_team(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 event_player_spawn(id) { 
    new clip, ammo, weapon = get_user_weapon(id, clip, ammo);
    new CsTeams:team = cs_get_user_team(id);
    
    if(hasAK[id] && weapon == CSW_AK47) { 
        hasAK[id] = false;
        set_pev(id, pev_viewmodel, "models/v_ak47.mdl");
        set_pev(id, pev_weaponmodel, "models/p_ak47.mdl");
        
        if (team == CS_TEAM_T) {
            give_item(id,"weapon_glock18");
            give_item(id,"ammo_9mm");
            give_item(id,"weapon_knife");
            } else {
            give_item(id,"weapon_usp");
            give_item(id,"ammo_45acp");
            give_item(id,"ammo_45acp");
            give_item(id,"weapon_knife");
        }
        } else if(hasM4[id] && weapon == CSW_M4A1) {
        hasM4[id] = false;
        set_pev(id, pev_viewmodel, "models/v_m4a1.mdl");
        set_pev(id, pev_weaponmodel, "models/p_m4a1.mdl");
        
        if (team == CS_TEAM_T) {
            give_item(id,"weapon_glock18");
            give_item(id,"ammo_9mm");
            give_item(id,"weapon_knife");
            } else {
            give_item(id,"weapon_usp");
            give_item(id,"ammo_45acp");
            give_item(id,"ammo_45acp");
            give_item(id,"weapon_knife");
        }
        } else if(hasMP[id] && weapon == CSW_MP5NAVY) {
        hasMP[id] = false;
        set_pev(id, pev_viewmodel, "models/v_mp5.mdl");
        set_pev(id, pev_weaponmodel, "models/p_mp5.mdl");
        
        if (team == CS_TEAM_T) {
            give_item(id,"weapon_glock18");
            give_item(id,"ammo_9mm");
            give_item(id,"weapon_knife");
            } else {
            give_item(id,"weapon_usp");
            give_item(id,"ammo_45acp");
            give_item(id,"ammo_45acp");
            give_item(id,"weapon_knife");
        }
    }
    return PLUGIN_CONTINUE;
}

//thanks to ojos.inc, god I love that include lol
stock FAKE_DAMAGE(idvictim, szClassname[], Float:takedmgdamage, damagetype) {
    new entity = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"trigger_hurt"));
    if(entity) {
        new szDamage[16];
        format(szDamage,15,"%f",takedmgdamage * 2);
        DISPATCH_KEYVALUE(entity,"dmg",szDamage);
        
        format(szDamage,15,"%i",damagetype);
        DISPATCH_KEYVALUE(entity,"damagetype",szDamage);
        
        dllfunc(DLLFunc_Spawn, entity);
        
        set_pev(entity, pev_classname, szClassname);
        dllfunc(DLLFunc_Touch, entity, idvictim);
        
        engfunc(EngFunc_RemoveEntity, entity);
        return 1;
    }
    return 0;
}

stock DISPATCH_KEYVALUE(idEntity, szKeyName[], szValue[]) {
    set_kvd(0, KV_KeyName, szKeyName);
    set_kvd(0, KV_Value, szValue);
    set_kvd(0, KV_fHandled, 0);
    return dllfunc(DLLFunc_KeyValue, idEntity, 0);
}

public Hook_DeathMsg(msg_id, msg_dest, entid) {
    if(gChangeDeathEvent) {
        //As of AMX Mod X 1.5, the middle parameter of set_* no longer does anything.
        set_msg_arg_int(1, 1, gKiller);
        set_msg_arg_int(2, 1, gVictim);
        set_msg_arg_int(3, 1, gHeadshot);
        set_msg_arg_string(4, gWeapon);
        
        gChangeDeathEvent = 0;
        
        return PLUGIN_CONTINUE;
    }
    return PLUGIN_CONTINUE;
} [/code]
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

01 Mar 2013, 09:55

Va multumesc mult baieti, aveti + multumesc
Post Reply

Return to “Cereri”

  • Information