Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Wklejka 136480805532858 dodana przez Aqku, 01.04.2013 10:20
Typ:


136480805532858
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.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
#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
// g_Menu2
new g_Menu3
 
new CVAR_HIGHSPEED
new CVAR_LOWSPEED
new CVAR_LOWGRAV
new CVAR_NORMGRAV
new CVAR_HEALTH_ADD
new CVAR_HEALTH_MAX
new CVAR_DAMAGE 
new CVAR_NORMSPEED
 
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("knifemenu")
	//g_Menu2 = register_menuid("rodzaj")
	g_Menu3 = register_menuid("vipknifemenu")
	register_menucmd(g_Menu, 1023, "knifemenu")
	//register_menucmd(g_Menu2, 1023, "rodzaj")
	register_menucmd(g_Menu3, 1023, "vipknifemenu")
 
	register_clcmd("say /knife", "wybierz")
 
	CVAR_HIGHSPEED = register_cvar("km_highspeed","340")
	CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
	CVAR_NORMSPEED = register_cvar("km_normspeed","300")
	CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3")
	CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75")
	CVAR_DAMAGE = register_cvar("km_damage", "2.0")
	CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400")
	CVAR_NORMGRAV = get_cvar_pointer("sv_gravity")
 
	//set_task(480.0, "kmodmsg", 685200, _, _, "b")
}
 
public plugin_precache() { 
	precache_model("models/knife-mod/v_machete.mdl")
	precache_model("models/knife-mod/p_machete.mdl")
	precache_model("models/knife-mod/v_butcher.mdl") 
	precache_model("models/knife-mod/p_butcher.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/knife-mod/v_sztylet.mdl")
	precache_model("models/knife-mod/p_sztylet.mdl")
	precache_model("models/knife-mod/v_boski.mdl")
	precache_model("models/knife-mod/p_boski.mdl")
	precache_model("models/knife-mod/v_miecz.mdl")
	precache_model("models/knife-mod/p_miecz.mdl")
	precache_model("models/knife-mod/v_lecz.mdl")
	precache_model("models/knife-mod/p_lecz.mdl")
} 
public wybierz(id)
{	
	new menu = menu_create("\yMenu Nozy", "wybierz_handler");
	new cb = menu_makecallback("cb_display_knife");
 
	menu_additem(menu, "Zwykle Knifes", "", 0, cb);
	menu_additem(menu, "VIP Knifes", "", 0, cb);
 
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_display(id, menu);
 
}
public wybierz_handler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	switch(item) 
	{
		case 0: display_knife(id)
			case 1: vipknife(id)
	}
	return PLUGIN_CONTINUE;
}
public cb_display_knife(id, menu, item)
{
	if(item == 1 && !(get_user_flags(id) & ADMIN_LEVEL_H))
		return ITEM_DISABLED;
 
	return ITEM_ENABLED;
 
}
public display_knife(id) {
	new menuBody = menu_create("Wybierz Noz", "knifemenu")
	menu_additem(menuBody, "Maczeta \y(Wiecej Damage\Mniejsza Szybkosc)", "1", 0)
	menu_additem(menuBody, "Cichy Noz \y(Ciche Chodzenie)", "2", 0)
	menu_additem(menuBody, "Maly Noz \y(Wieksza Szybkosc)", "3", 0)
	menu_additem(menuBody, "Lekki Noz \y(Mniejsza Grawitacja)", "4", 0)
	menu_additem(menuBody, "Leczniczy Noz \y(Regeneracja HP)", "5", 0)
	menu_setprop(menuBody, MPROP_EXIT, MEXIT_ALL)
	menu_display(id, menuBody, 0)
	menu_display(id, menuBody)
}
 
public knifemenu(id, menu, 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 , 7)
			default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
}
 
public vipknife(id) {
	new menuBody = menu_create("Wybierz Noz", "vipknifemenu")
	menu_additem(menuBody, "\r[VIP]\w Ostry Sztylet \y(Speed + Grawitacja)", "1", ADMIN_LEVEL_H)
	menu_additem(menuBody, "\r[VIP]\w Boski Noz \y(Ciche Chodzenie + Reg. HP)", "2", ADMIN_LEVEL_H)
	menu_additem(menuBody, "\r[VIP]\w Zabojczy Miecz \y(Wieksze Damage)", "3", ADMIN_LEVEL_H)
	menu_setprop(menuBody, MPROP_EXIT, MEXIT_ALL)
	menu_display(id, menuBody, 0)
 
	menu_display(id, menuBody)
}
public vipknifemenu(id, menu, key) {
	switch(key) 
	{
		case 0: SetKnife(id , 5)
			case 1: SetKnife(id , 6)
			case 2: 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/knife-mod/v_miecz.mdl")
			format(pModel,55,"models/knife-mod/p_miecz.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 5: { 
			format(vModel,55,"models/knife-mod/v_sztylet.mdl")
			format(pModel,55,"models/knife-mod/p_sztylet.mdl")
		}
		case 6: { 
			format(vModel,55,"models/knife-mod/v_boski.mdl")
			format(pModel,55,"models/knife-mod/p_boski.mdl")
		}
		case 7: { 
			format(vModel,55,"models/knife-mod/v_lecz.mdl")
			format(pModel,55,"models/knife-mod/p_lecz.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 || iWeapID == CSW_KNIFE && knife_model[attacker_id] == 0 ) {
 
		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] == 7 && !task_exists(id) && Weapon == CSW_KNIFE || knife_model[id] == 6 && !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 || knife_model[id] == 6 && Weapon == CSW_KNIFE) ? 1 : 0) )
 
	new Float:Gravity = ((knife_model[id] == 1 && Weapon == CSW_KNIFE || knife_model[id] == 5 && 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)
		return PLUGIN_CONTINUE
	else if(knife_model[id] == 0 || knife_model[id] == 1 || knife_model[id] == 2 || knife_model[id] == 6 || knife_model[id] == 7)
		Speed = get_pcvar_float(CVAR_NORMSPEED)
	else if(knife_model[id] == 3 || knife_model[id] == 5)
		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,"<< !!Leczenie: +3HP!! >>")
		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)
}
 
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)
 
}