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 132147925419713 dodana przez ExBiT, 16.11.2011 22:34
Typ:


132147925419713
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.
#include <amxmodx>
#include <amxmisc>
#include <ColorChat>
#include <fakemeta>
#include <hamsandwich>
 
new const gNazwaPluginu[] = "Interp Menu";
new const gWersjaPluginu[] = "0.5";
new const gAutorPluginu[] = "MisieQ";
 
#define ADMIN_UPRAWNIENIA ADMIN_BAN
 
#define MAX_PLAYERS 32
#define SetUserReversed(%1)		g_bMigraineux |= 1<<(%1 & 31)
#define ClearUserReversed(%1)		g_bMigraineux &= ~( 1<<(%1 & 31) )
#define HasUserMigraine(%1)		g_bMigraineux &  1<<(%1 & 31)
 
new bool:wybral_interp[33];
new bool:dostal_kare[33];
new const interp[][] = { "^x03 wybral interp^x04 0.01", "^x03 wybral interp^x04 0.02", "^x03 wybral interp^x04 0.03", "^x03 nie wybral interpu wiec zostal ukarany!" }
new Map[32], Name[32];
 
new g_bMigraineux
new Float:g_vecPunchAngles[MAX_PLAYERS+1][3]
new g_iFfPlayerPreThink
 
public plugin_init()
{
	register_plugin(gNazwaPluginu, gWersjaPluginu, gAutorPluginu);
 
	RegisterHam(Ham_Spawn, "player", "fwSpawn", 1);
 
	register_concmd("amx_interp", "ustaw", ADMIN_UPRAWNIENIA, "<Nazwa Gracza>");
 
	register_clcmd("say /kara","kara");
	register_clcmd("say_team /kara","kara");
 
	get_mapname(Map,sizeof Map - 1);
}
 
public client_authorized(id)
{
	wybral_interp[id] = false
	dostal_kare[id] = false
	ClearUserReversed(id)
	CheckForward()
}
 
public client_disconnect(id)
{
	wybral_interp[id] = false
	dostal_kare[id] = false
	ClearUserReversed(id)
	CheckForward()
}
 
public fwSpawn(id)
{
	if (!is_user_alive(id))
		return HAM_IGNORED;
 
	if(!wybral_interp[id])
	{
		set_task( 10.0, "menu_interpu",id);
	}
 
	return HAM_IGNORED;
}
 
public menu_interpu(id)
{
	new menu = menu_create("\wWybor \yInterpu:", "menu_interpu_1");
 
	menu_additem(menu, "\w0.01", "0", 0);
	menu_addblank(menu,0)
	menu_additem(menu, "\y0.02", "1", 0);
	menu_addblank(menu,0)
	menu_additem(menu, "\r0.03", "2", 0);
 
	menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
	menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
	menu_display(id, menu, 0);
 
	return PLUGIN_CONTINUE;
}
 
public menu_interpu_1(id, menu, item)
{
	new data[6], iName[64], acces, callback;
	menu_item_getinfo(menu, item, acces, data,sizeof data - 1, iName, sizeof iName - 1, callback);
	get_user_name(id, Name, sizeof Name - 1);
 
	if(item==MENU_EXIT)
	{
		wybral_interp[id] = true;
		dostal_kare[id] = true;
		informacja(id, 3);
		SetUserReversed(id);
		CheckForward()
		g_vecPunchAngles[id][0] = 0.0
		g_vecPunchAngles[id][1] = 0.0
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}	
 
	new key = str_to_num(data);
 
	switch(key)
	{
		case 0:
		{
			client_cmd(id,"ex_interp 0.01")
			wybral_interp[id] = true;
			informacja(id, 0);
			menu_destroy(menu);
		}
 
		case 1:
		{
			client_cmd(id,"ex_interp 0.02")
			wybral_interp[id] = true;
			informacja(id, 1);
			menu_destroy(menu);
 
		}
 
		case 2:
		{
			client_cmd(id,"ex_interp 0.03")
			wybral_interp[id] = true;
			informacja(id, 2);
			menu_destroy(menu);
		}
	}
	return PLUGIN_HANDLED;
}
 
public informacja(id,itp)
{
	get_user_name(id, Name, sizeof Name - 1);
	ColorChat(0, GREEN, "[^x03 %s^x04 ]^x03 Gracz^x04 %s %s",Map, Name, interp[itp]);
}
 
public ustaw(id,level,cid)
{
	if (!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED;
 
	read_argv(1, Name, sizeof Name - 1);
 
	new player = cmd_target(id, Name, 0);
 
	if (!player)
	{
		console_print(id, "Przepraszamy, gracz %s nie moze zostac zlokalizowany!", Name);
		return PLUGIN_HANDLED;
	}
	else
	{
		ColorChat(0, GREEN, "[^x03 %s^x04 ]^x03 Admin wymusil ponowny wybor interpu dla gracza^x04 %s", Map, Name);
		wybral_interp[player] = false
	}
 
	return PLUGIN_CONTINUE;
}
 
public kara(id)
{
	if (is_user_alive(id))
	{
		ColorChat(0, GREEN, "[^x03 %s^x04 ]^x03 Tylko martwi gracze moga uzyc tej komendy!", Map);
		return PLUGIN_HANDLED;
	}		
	else
	{
		if(dostal_kare[id])
		{
			get_user_name(id, Name, sizeof Name - 1);
			ColorChat(0, GREEN, "[^x03 %s^x04 ]^x03 Gracz^x04 %s^x03 stwierdzil iz jednak woli wybrac interp ;)", Map, Name);
			ClearUserReversed(id)
			CheckForward()
			wybral_interp[id] = false;
			dostal_kare[id] = false;
		}
	}
	return PLUGIN_CONTINUE;
}
/* Kara */
public PlayerPreThink(id)
{
	if(HasUserMigraine(id) && is_user_alive(id))
	{
		if( g_vecPunchAngles[id][1] < 180.0 )
		{
			g_vecPunchAngles[id][1] += 2.0
			g_vecPunchAngles[id][0] = g_vecPunchAngles[id][1] * 2.0
		}
		else
		{
			g_vecPunchAngles[id][0] = 0.0
		}
 
		static Float:vecPunchAngle[3]
		vecPunchAngle[0] = g_vecPunchAngles[id][0]
		vecPunchAngle[1] = g_vecPunchAngles[id][0]
		vecPunchAngle[2] = g_vecPunchAngles[id][1]
 
		set_pev(id, pev_punchangle, vecPunchAngle)
	}
}
 
CheckForward()
{
	if( !g_bMigraineux != !g_iFfPlayerPreThink )
	{
		if( g_bMigraineux )
		{
			g_iFfPlayerPreThink = register_forward(FM_PlayerPreThink, "PlayerPreThink")
		}
		else
		{
			unregister_forward(FM_PlayerPreThink, g_iFfPlayerPreThink)
			g_iFfPlayerPreThink = 0
		}
	}
}