←  Dodatki

AMXX.pl: Support AMX Mod X i SourceMod

»
Wklejka 132163350112545 dodana przez Goliath, 18.11.2011 17:25
Typ:


132163350112545
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <codmod>
#include <fakemeta>
 
new const nazwa[] = "Admiral";
new const opis[] = "Ma podwojny skok, 20 hp oraz pelen magazynak za kazde zabojstwo";
new const bronie = 1<<CSW_FAMAS;
new const zdrowie = 30;
new const kondycja = 38;
new const inteligencja = 0;
new const wytrzymalosc = 20;
 
new bool:ma_klase[33];
 
new bool:moze_skoczyc[33];
 
new const maxClip[31] = { -1, 13, -1, 10,  1,  7,  1,  30, 30,  1,  30,  20,  25, 30, 35, 25,  12,  20, 
10,  30, 100,  8, 30,  30, 20,  2,  7, 30, 30, -1,  50 };
 
public plugin_init() {
	register_plugin(nazwa, "1.0", "QTM_Peyote");
 
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
 
	register_forward(FM_CmdStart, "CmdStart");
	register_event("DeathMsg", "DeathMsg", "ade");
}
 
public cod_class_enabled(id)
{
	if(!(get_user_flags(id) & ADMIN_LEVEL_H))
	{
		client_print(id, print_chat, "[Admiral] Nie masz uprawnien, aby uzywac tej klasy.")
		return COD_STOP;
	}
	ma_klase[id] = true;
	return COD_CONTINUE;
}
 
public cod_class_disabled(id)
	ma_klase[id] = false;
 
public CmdStart(id, uc_handle)
{
	if(!ma_klase[id])
		return FMRES_IGNORED;
 
	new button = get_uc(uc_handle, UC_Buttons);
	new oldbutton = pev(id, pev_oldbuttons);
	new flags = pev(id, pev_flags);
	if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && moze_skoczyc[id])
	{
		moze_skoczyc[id] = false;
		new Float:velocity[3];
		pev(id, pev_velocity, velocity);
		velocity[2] = random_float(265.0,285.0);
		set_pev(id, pev_velocity, velocity);
	}
	else if(flags & FL_ONGROUND)	
		moze_skoczyc[id] = true;
 
	return FMRES_IGNORED;
}
 
public DeathMsg()
{
	new killer = read_data(1);
	new victim = read_data(2);
 
	if(!is_user_connected(killer))
		return PLUGIN_CONTINUE;
 
	if(ma_klase[victim] && !ma_klase[killer])
		cod_set_user_xp(killer, cod_get_user_xp(killer)+10);
 
	if(ma_klase[killer])
	{
		new cur_health = pev(killer, pev_health);
		new Float:max_health = 100.0+cod_get_user_health(killer);
		new Float:new_health = cur_health+20.0<max_health? cur_health+20.0: max_health;
		set_pev(killer, pev_health, new_health);
 
		new weapon = get_user_weapon(killer);
		if(maxClip[weapon] != -1)
			set_user_clip(killer, maxClip[weapon]);
	}
 
 
	return PLUGIN_CONTINUE;
}
 
stock set_user_clip(id, ammo)
{
	new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
	get_weaponname(weapon, weaponname, 31);
	while ((weaponid = engfunc(EngFunc_FindEntityByString, weaponid, "classname", weaponname)) != 0)
		if (pev(weaponid, pev_owner) == id) {
		set_pdata_int(weaponid, 51, ammo, 4);
		return weaponid;
	}
	return 0;
}