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 13371087690 dodana przez Gość, 15.05.2012 20:06
Typ:


13371087690
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.
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <engine>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fakemeta_util>
#include <codmod>
 
#define MAKE_MATTERY 7045
 
new const nazwa[] = "BFG10000";
new const opis[] = "Posiadasz bron z 2 wiazkami, ktora zadaje powazne obrazenia wrogom znajdujacym sie w poblizu";
new const bronie = 1<<CSW_P90;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
 
new bool: ma_klase[33], bool: ma_bron[33];
new Float:idle[33]
new bfg10k_ammo[33]
new bfg_shooting[33];
enum {NONE = 0, SHOOTING, SHOOTED };
new sprite_blast;
new sprite_laser;
 
public plugin_init()
{
	register_plugin(nazwa, "1.0", "Hleb & Wi'Waldi");
 
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
 
	register_forward(FM_CmdStart, "CmdStart")
	register_forward(FM_PlayerPreThink, "PreThink");
 
	RegisterHam(Ham_Item_Deploy, "weapon_p90", "Weapon_Deploy", 1);
	RegisterHam(Ham_Weapon_WeaponIdle, "weapon_p90", "Weapon_WeaponIdle");
 
	register_event("ResetHUD", "ResetHUD", "abe");
	register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0");
 
	register_touch("bfg10000", "*" , "DotykWiazki");
 
	register_think("bfg10000", "BFGThink");
 
}
 
public plugin_precache()
{
	sprite_blast = precache_model("sprites/dexplo.spr");
	sprite_laser = precache_model("sprites/dot.spr")
	precache_sound("weapons/bfg_fire.wav");
	precache_model("models/bfg_mattery.mdl");
	precache_model("models/v_bfg10000.mdl");
	precache_model("models/p_bfg10000.mdl");
}
 
public cod_class_enabled(id)
{
	if(!(get_user_flags(id) & ADMIN_LEVEL_H))
	{
		client_print(id, print_chat, "[Klasa: BFG10000] Nie masz uprawnien, aby uzywac tej klasy. Jesli chcesz je miec to kup klase")
		return COD_STOP;
	}
	cod_give_weapon(id, CSW_P90)
	ma_klase[id] = true;
	ma_bron[id] = true;
	bfg10k_ammo[id] = 2;
 
	return COD_CONTINUE;
}
 
public cod_class_disabled(id)
{
	cod_take_weapon(id, CSW_P90)
	ma_klase[id] = false;
	ma_bron[id] = false;
	bfg10k_ammo[id] = 0;
}
 
public CmdStart(id, uc_handle)
{
	new weapon = get_user_weapon(id);
 
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE;
 
	if(weapon == 30 && ma_bron[id])
	{
		if(!ma_klase[id])
			return FMRES_IGNORED
 
		if(!bfg10k_ammo[id] && (pev(id, pev_oldbuttons) & IN_ATTACK))
		{
			client_print(id, print_center, "Wykorzystales juz wszystkie wiazki!");
			return PLUGIN_CONTINUE;
		}
		new Button = get_uc(uc_handle, UC_Buttons)
		new OldButton = pev(id, pev_oldbuttons)
		new ent = fm_find_ent_by_owner(-1, "weapon_p90", id);
 
		if(Button & IN_ATTACK && !(OldButton & IN_ATTACK) && bfg_shooting[id] == NONE)
		{
			Button &= ~IN_ATTACK;
			set_uc(uc_handle, UC_Buttons, Button);
 
			if(!bfg10k_ammo[id] || !idle[id])
				return FMRES_IGNORED;
			if(idle[id] && (get_gametime()-idle[id]<=0.7))
				return FMRES_IGNORED;
 
			set_pev(id, pev_weaponanim, 4);
			emit_sound(id, CHAN_ITEM, "weapons/bfg_fire.wav", 0.5, ATTN_NORM, 0, PITCH_NORM);
 
			message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id)
			write_byte(1)
			write_byte(0)
			message_end()
 
			bfg_shooting[id] = SHOOTING
			set_task(0.8, "MakeMattery", id+MAKE_MATTERY)
			return FMRES_IGNORED
		}
		if(bfg_shooting[id] == SHOOTING && (Button & (IN_USE | IN_ATTACK2 | IN_BACK | IN_FORWARD | IN_CANCEL | IN_JUMP | IN_MOVELEFT | IN_MOVERIGHT | IN_RIGHT)))
		{
			remove_task(id+MAKE_MATTERY)
			message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id)
			write_byte(0)
			write_byte(0)
			message_end()
			bfg_shooting[id] = NONE
			emit_sound(id, CHAN_ITEM, "weapons/bfg_fire.wav", 0.5, ATTN_NORM, (1<<5), PITCH_NORM)
			return FMRES_IGNORED
		}
		if(Button & IN_RELOAD)
		{
			Button &= ~IN_RELOAD;
			set_uc(uc_handle, UC_Buttons, Button);
 
			set_pev(id, pev_weaponanim, 0);
			set_pdata_float(id, 83, 0.5, 4);
			if(ent)
				set_pdata_float(ent, 48, 0.5+3.0, 4);
		}
 
		if(ent)
			cs_set_weapon_ammo(ent, -1);
		cs_set_user_bpammo(id, 30, bfg10k_ammo[id]);
	}
	else if(weapon != 30 && ma_bron[id])
	{
		idle[id] = 0.0;
		if(task_exists(id+MAKE_MATTERY))
		{
			remove_task(id+MAKE_MATTERY)
			message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id)
			write_byte(0)
			write_byte(0)
			message_end()
			bfg_shooting[id] = NONE
			emit_sound(id, CHAN_ITEM, "weapons/bfg_fire.wav", 0.5, ATTN_NORM, (1<<5), PITCH_NORM)
			return FMRES_IGNORED
		}
	}
	return FMRES_IGNORED
}
 
public MakeMattery(id)
{
	id-=MAKE_MATTERY
 
	bfg_shooting[id] = SHOOTED
	bfg10k_ammo[id]--
 
	new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
	entity_get_vector(id, EV_VEC_v_angle, vAngle);
	entity_get_vector(id, EV_VEC_origin , Origin);
	set_pev(id, pev_weaponanim, 2);
 
	new ent = create_entity("info_target");
 
	entity_set_string(ent, EV_SZ_classname, "bfg10000");
	entity_set_model(ent, "models/bfg_mattery.mdl");
	fm_set_user_rendering(ent, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 255)
 
	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenShake"),_, id);
	write_short(255<<14);
	write_short(2<<12);
	write_short(255<<14);
	message_end();
 
	vAngle[0] *= -1.0;
 
	entity_set_origin(ent, Origin);
	entity_set_vector(ent, EV_VEC_angles, vAngle);
 
	entity_set_int(ent, EV_INT_effects, 2);
	entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
	entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY);
	entity_set_edict(ent, EV_ENT_owner, id);
 
	VelocityByAim(id, 300 , Velocity);
	entity_set_vector(ent, EV_VEC_velocity ,Velocity);
	entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);
}
 
public DotykWiazki(ent)
{
	if (!is_valid_ent(ent))
		return PLUGIN_CONTINUE;
	new attacker = entity_get_edict(ent, EV_ENT_owner);
	new Float:fOrigin[3];
	entity_get_vector(ent, EV_VEC_origin, fOrigin);
 
	new iOrigin[3];
	for(new i=0;i<3;i++)
		iOrigin[i] = floatround(fOrigin[i]);
 
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
	write_byte(TE_EXPLOSION);
	write_coord(iOrigin[0]);
	write_coord(iOrigin[1]);
	write_coord(iOrigin[2]);
	write_short(sprite_blast);
	write_byte(32);
	write_byte(20);
	write_byte(0);
	message_end();
	new entlist[33];
	new numfound = find_sphere_class(ent, "player", 120.0, entlist, 32);
 
	for (new i=0; i<=numfound; i++)
	{ 
		new pid = entlist[i];
 
		if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || !(pev(ent, pev_flags) & FL_ONGROUND))
			continue;
		cod_inflict_damage(attacker, pid, 40.0, 0.2, ent, (1<<24));
	}
	remove_entity(ent);
	bfg_shooting[attacker] = NONE
	return PLUGIN_CONTINUE
}
 
public ResetHUD(id)
{
	bfg10k_ammo[id] = 2;
	bfg_shooting[id] = NONE
}
 
public client_disconnect(id)
{
	new ent = find_ent_by_class(0, "bfg10000");
	while(ent > 0)
	{
		if(entity_get_edict(id, EV_ENT_owner) == id)
			remove_entity(ent);
		ent = find_ent_by_class(ent, "bfg10000");
	}
}
 
public BFGThink(ent)
{
	if(entity_get_int(ent, EV_INT_iuser2))
		return PLUGIN_CONTINUE;
 
 
	entity_set_int(ent, EV_INT_iuser1, 1);
 
	new attacker = entity_get_edict(ent, EV_ENT_owner);
 
	new entlist[33];
	new numfound = find_sphere_class(ent, "player", 500.0 , entlist, 32);
 
	for (new i=0; i<numfound; i++)
	{ 
		new pid = entlist[i];
 
		if (is_user_alive(pid) && get_user_team(attacker) != get_user_team(pid))
		{
			cod_inflict_damage(attacker, pid, 15.0, 0.1, ent, (1<<24));
 
			new Float:vec1[3]
			entity_get_vector(ent, EV_VEC_origin, vec1); 
 
			new vec2[3]
			get_user_origin(pid, vec2)
			new iOrigin[3];
			for(new i=0;i<3;i++)
				iOrigin[i] = floatround(vec1[i]);
			message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
			write_byte (0)	 //TE_BEAMENTPOINTS 0
			write_coord(iOrigin[0])
			write_coord(iOrigin[1])
			write_coord(iOrigin[2])
			write_coord(vec2[0])
			write_coord(vec2[1])
			write_coord(vec2[2])
			write_short(sprite_laser)
			write_byte(1) // framestart
			write_byte(5) // framerate
			write_byte(2) // life
			write_byte(10) // width
			write_byte(0) // noise
			write_byte(0)	 // r, g, b
			write_byte(255)	   // r, g, b
			write_byte(0)	   // r, g, b
			write_byte(255) // brightness
			write_byte(150) // speed
			message_end()
		}
	}
	entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);
 
	return PLUGIN_CONTINUE;
}
 
public Weapon_Deploy(ent)
{
	new id = get_pdata_cbase(ent, 41, 4);
	if(ma_bron[id])
	{
		set_pev(id, pev_viewmodel2, "models/v_bfg10000.mdl");
		set_pev(id, pev_weaponmodel2, "models/p_bfg10000.mdl");
	}
	return PLUGIN_CONTINUE;
}
 
public Weapon_WeaponIdle(ent)
{
	new id = get_pdata_cbase(ent, 41, 4);
	if(get_user_weapon(id) == 30 && ma_bron[id])
	{
		if(!idle[id])
			idle[id] = get_gametime();
	}
}
 
public Nowa_Runda()
{
	new ent = find_ent_by_class(-1, "bfg10000");
	while(ent > 0)
	{
		remove_entity(ent);
		ent = find_ent_by_class(ent, "bfg10000");
	}	  
}