View difference between Paste ID: vKBauc8N and 9ZYbsVdK
SHOW: | | - or go back to the newest paste.
1
/*==================================================================
2
							G-IRC Version 0.1
3
							By Deron_Green
4
				Special thanks to: Y_LESS, Incognito,
5
						ejb And the SA-IRC Network
6-
							!credits
6+
							!creditsfgffgdfgdfgdfgdfg
7
						Please dont remove credits
8
//===================================================================*/
9
#include <a_samp>
10
#include <irc>
11
#include <sscanf2>
12
//============Defines================//
13
#define BOT_1_NICKNAME "SA-MPA"
14
#define BOT_1_REALNAME "SA-MPA"
15
#define BOT_1_USERNAME "Bot"
16
17
#define BOT_2_NICKNAME "SA-MPB"
18
#define BOT_2_REALNAME "SA-MPB"
19
#define BOT_2_USERNAME "Bot"
20
21
#define IRC_SERVER "irc.sa-irc.com"
22
#define IRC_PORT (6667)
23
#define IRC_CHANNEL "#changeme"
24
#define ADMIN_CHANNEL "#putyourownchan"
25
#define BOT_PASS "sanfierro"
26
#define BOT_EMAIL "[email protected]"
27
28
#define MAX_BOTS (2)
29
#define PLUGIN_VERSION "1.4.3"
30
new botIDs[MAX_BOTS], groupID;
31
32
#define WHITE      					0xFFFFFFAA
33
#define HOT_PINK                    "{FF2DFF}"
34
#define GOLD                        "{F7DE00}"
35
#define ROYALB                      "{0000FF}"
36
#define CWHITE 						"{FFFFFF}"
37
#define CWHITE                  	"{FFFFFF}"
38
#define CYELLOW                  	"{FFFF00}"
39
#define CORED					 	"{FF0000}"
40
#define CORANGE                  	"{FF8000}"
41
#define CBLUE                    	"{0080FF}"
42
#define CVIOLET                  	"{A020F0}"
43
#define CGREEN                      "{00FF00}"
44
#define CRED 						"{F81414}"
45
#define CRBLUE                      "{14f8f8}"
46
#define MAX_ZONE_NAME 28
47
48
//===============Zones==================//
49
enum SAZONE_MAIN { 
50
		SAZONE_NAME[28],
51
		Float:SAZONE_AREA[6]
52
};
53
54
static const gSAZones[][SAZONE_MAIN] = {  
55
	//	NAME                            AREA (Xmin,Ymin,Zmin,Xmax,Ymax,Zmax)
56
	{"The Big Ear",	                {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}},
57
	{"Aldea Malvada",               {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}},
58
	{"Angel Pine",                  {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}},
59
	{"Arco del Oeste",              {-901.10,2221.80,0.00,-592.00,2571.90,200.00}},
60
	{"Avispa Country Club",         {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}},
61
	{"Avispa Country Club",         {-2831.80,-430.20,-6.10,-2646.40,-222.50,200.00}},
62
	{"Avispa Country Club",         {-2361.50,-417.10,0.00,-2270.00,-355.40,200.00}},
63
	{"Avispa Country Club",         {-2667.80,-302.10,-28.80,-2646.40,-262.30,71.10}},
64
	{"Avispa Country Club",         {-2470.00,-355.40,0.00,-2270.00,-318.40,46.10}},
65
	{"Avispa Country Club",         {-2550.00,-355.40,0.00,-2470.00,-318.40,39.70}},
66
	{"Back o Beyond",               {-1166.90,-2641.10,0.00,-321.70,-1856.00,200.00}},
67
	{"Battery Point",               {-2741.00,1268.40,-4.50,-2533.00,1490.40,200.00}},
68
	{"Bayside",                     {-2741.00,2175.10,0.00,-2353.10,2722.70,200.00}},
69
	{"Bayside Marina",              {-2353.10,2275.70,0.00,-2153.10,2475.70,200.00}},
70
	{"Beacon Hill",                 {-399.60,-1075.50,-1.40,-319.00,-977.50,198.50}},
71
	{"Blackfield",                  {964.30,1203.20,-89.00,1197.30,1403.20,110.90}},
72
	{"Blackfield",                  {964.30,1403.20,-89.00,1197.30,1726.20,110.90}},
73
	{"Blackfield Chapel",           {1375.60,596.30,-89.00,1558.00,823.20,110.90}},
74
	{"Blackfield Chapel",           {1325.60,596.30,-89.00,1375.60,795.00,110.90}},
75
	{"Blackfield Intersection",     {1197.30,1044.60,-89.00,1277.00,1163.30,110.90}},
76
	{"Blackfield Intersection",     {1166.50,795.00,-89.00,1375.60,1044.60,110.90}},
77
	{"Blackfield Intersection",     {1277.00,1044.60,-89.00,1315.30,1087.60,110.90}},
78
	{"Blackfield Intersection",     {1375.60,823.20,-89.00,1457.30,919.40,110.90}},
79
	{"Blueberry",                   {104.50,-220.10,2.30,349.60,152.20,200.00}},
80
	{"Blueberry",                   {19.60,-404.10,3.80,349.60,-220.10,200.00}},
81
	{"Blueberry Acres",             {-319.60,-220.10,0.00,104.50,293.30,200.00}},
82
	{"Caligula's Palace",           {2087.30,1543.20,-89.00,2437.30,1703.20,110.90}},
83
	{"Caligula's Palace",           {2137.40,1703.20,-89.00,2437.30,1783.20,110.90}},
84
	{"Calton Heights",              {-2274.10,744.10,-6.10,-1982.30,1358.90,200.00}},
85
	{"Chinatown",                   {-2274.10,578.30,-7.60,-2078.60,744.10,200.00}},
86
	{"City Hall",                   {-2867.80,277.40,-9.10,-2593.40,458.40,200.00}},
87
	{"Come-A-Lot",                  {2087.30,943.20,-89.00,2623.10,1203.20,110.90}},
88
	{"Commerce",                    {1323.90,-1842.20,-89.00,1701.90,-1722.20,110.90}},
89
	{"Commerce",                    {1323.90,-1722.20,-89.00,1440.90,-1577.50,110.90}},
90
	{"Commerce",                    {1370.80,-1577.50,-89.00,1463.90,-1384.90,110.90}},
91
	{"Commerce",                    {1463.90,-1577.50,-89.00,1667.90,-1430.80,110.90}},
92
	{"Commerce",                    {1583.50,-1722.20,-89.00,1758.90,-1577.50,110.90}},
93
	{"Commerce",                    {1667.90,-1577.50,-89.00,1812.60,-1430.80,110.90}},
94
	{"Conference Center",           {1046.10,-1804.20,-89.00,1323.90,-1722.20,110.90}},
95
	{"Conference Center",           {1073.20,-1842.20,-89.00,1323.90,-1804.20,110.90}},
96
	{"Cranberry Station",           {-2007.80,56.30,0.00,-1922.00,224.70,100.00}},
97
	{"Creek",                       {2749.90,1937.20,-89.00,2921.60,2669.70,110.90}},
98
	{"Dillimore",                   {580.70,-674.80,-9.50,861.00,-404.70,200.00}},
99
	{"Doherty",                     {-2270.00,-324.10,-0.00,-1794.90,-222.50,200.00}},
100
	{"Doherty",                     {-2173.00,-222.50,-0.00,-1794.90,265.20,200.00}},
101
	{"Downtown",                    {-1982.30,744.10,-6.10,-1871.70,1274.20,200.00}},
102
	{"Downtown",                    {-1871.70,1176.40,-4.50,-1620.30,1274.20,200.00}},
103
	{"Downtown",                    {-1700.00,744.20,-6.10,-1580.00,1176.50,200.00}},
104
	{"Downtown",                    {-1580.00,744.20,-6.10,-1499.80,1025.90,200.00}},
105
	{"Downtown",                    {-2078.60,578.30,-7.60,-1499.80,744.20,200.00}},
106
	{"Downtown",                    {-1993.20,265.20,-9.10,-1794.90,578.30,200.00}},
107
	{"Downtown Los Santos",         {1463.90,-1430.80,-89.00,1724.70,-1290.80,110.90}},
108
	{"Downtown Los Santos",         {1724.70,-1430.80,-89.00,1812.60,-1250.90,110.90}},
109
	{"Downtown Los Santos",         {1463.90,-1290.80,-89.00,1724.70,-1150.80,110.90}},
110
	{"Downtown Los Santos",         {1370.80,-1384.90,-89.00,1463.90,-1170.80,110.90}},
111
	{"Downtown Los Santos",         {1724.70,-1250.90,-89.00,1812.60,-1150.80,110.90}},
112
	{"Downtown Los Santos",         {1370.80,-1170.80,-89.00,1463.90,-1130.80,110.90}},
113
	{"Downtown Los Santos",         {1378.30,-1130.80,-89.00,1463.90,-1026.30,110.90}},
114
	{"Downtown Los Santos",         {1391.00,-1026.30,-89.00,1463.90,-926.90,110.90}},
115
	{"Downtown Los Santos",         {1507.50,-1385.20,110.90,1582.50,-1325.30,335.90}},
116
	{"East Beach",                  {2632.80,-1852.80,-89.00,2959.30,-1668.10,110.90}},
117
	{"East Beach",                  {2632.80,-1668.10,-89.00,2747.70,-1393.40,110.90}},
118
	{"East Beach",                  {2747.70,-1668.10,-89.00,2959.30,-1498.60,110.90}},
119
	{"East Beach",                  {2747.70,-1498.60,-89.00,2959.30,-1120.00,110.90}},
120
	{"East Los Santos",             {2421.00,-1628.50,-89.00,2632.80,-1454.30,110.90}},
121
	{"East Los Santos",             {2222.50,-1628.50,-89.00,2421.00,-1494.00,110.90}},
122
	{"East Los Santos",             {2266.20,-1494.00,-89.00,2381.60,-1372.00,110.90}},
123
	{"East Los Santos",             {2381.60,-1494.00,-89.00,2421.00,-1454.30,110.90}},
124
	{"East Los Santos",             {2281.40,-1372.00,-89.00,2381.60,-1135.00,110.90}},
125
	{"East Los Santos",             {2381.60,-1454.30,-89.00,2462.10,-1135.00,110.90}},
126
	{"East Los Santos",             {2462.10,-1454.30,-89.00,2581.70,-1135.00,110.90}},
127
	{"Easter Basin",                {-1794.90,249.90,-9.10,-1242.90,578.30,200.00}},
128
	{"Easter Basin",                {-1794.90,-50.00,-0.00,-1499.80,249.90,200.00}},
129
	{"Easter Bay Airport",          {-1499.80,-50.00,-0.00,-1242.90,249.90,200.00}},
130
	{"Easter Bay Airport",          {-1794.90,-730.10,-3.00,-1213.90,-50.00,200.00}},
131
	{"Easter Bay Airport",          {-1213.90,-730.10,0.00,-1132.80,-50.00,200.00}},
132
	{"Easter Bay Airport",          {-1242.90,-50.00,0.00,-1213.90,578.30,200.00}},
133
	{"Easter Bay Airport",          {-1213.90,-50.00,-4.50,-947.90,578.30,200.00}},
134
	{"Easter Bay Airport",          {-1315.40,-405.30,15.40,-1264.40,-209.50,25.40}},
135
	{"Easter Bay Airport",          {-1354.30,-287.30,15.40,-1315.40,-209.50,25.40}},
136
	{"Easter Bay Airport",          {-1490.30,-209.50,15.40,-1264.40,-148.30,25.40}},
137
	{"Easter Bay Chemicals",        {-1132.80,-768.00,0.00,-956.40,-578.10,200.00}},
138
	{"Easter Bay Chemicals",        {-1132.80,-787.30,0.00,-956.40,-768.00,200.00}},
139
	{"El Castillo del Diablo",      {-464.50,2217.60,0.00,-208.50,2580.30,200.00}},
140
	{"El Castillo del Diablo",      {-208.50,2123.00,-7.60,114.00,2337.10,200.00}},
141
	{"El Castillo del Diablo",      {-208.50,2337.10,0.00,8.40,2487.10,200.00}},
142
	{"El Corona",                   {1812.60,-2179.20,-89.00,1970.60,-1852.80,110.90}},
143
	{"El Corona",                   {1692.60,-2179.20,-89.00,1812.60,-1842.20,110.90}},
144
	{"El Quebrados",                {-1645.20,2498.50,0.00,-1372.10,2777.80,200.00}},
145
	{"Esplanade East",              {-1620.30,1176.50,-4.50,-1580.00,1274.20,200.00}},
146
	{"Esplanade East",              {-1580.00,1025.90,-6.10,-1499.80,1274.20,200.00}},
147
	{"Esplanade East",              {-1499.80,578.30,-79.60,-1339.80,1274.20,20.30}},
148
	{"Esplanade North",             {-2533.00,1358.90,-4.50,-1996.60,1501.20,200.00}},
149
	{"Esplanade North",             {-1996.60,1358.90,-4.50,-1524.20,1592.50,200.00}},
150
	{"Esplanade North",             {-1982.30,1274.20,-4.50,-1524.20,1358.90,200.00}},
151
	{"Fallen Tree",                 {-792.20,-698.50,-5.30,-452.40,-380.00,200.00}},
152
	{"Fallow Bridge",               {434.30,366.50,0.00,603.00,555.60,200.00}},
153
	{"Fern Ridge",                  {508.10,-139.20,0.00,1306.60,119.50,200.00}},
154
	{"Financial",                   {-1871.70,744.10,-6.10,-1701.30,1176.40,300.00}},
155
	{"Fisher's Lagoon",             {1916.90,-233.30,-100.00,2131.70,13.80,200.00}},
156
	{"Flint Intersection",          {-187.70,-1596.70,-89.00,17.00,-1276.60,110.90}},
157
	{"Flint Range",                 {-594.10,-1648.50,0.00,-187.70,-1276.60,200.00}},
158
	{"Fort Carson",                 {-376.20,826.30,-3.00,123.70,1220.40,200.00}},
159
	{"Foster Valley",               {-2270.00,-430.20,-0.00,-2178.60,-324.10,200.00}},
160
	{"Foster Valley",               {-2178.60,-599.80,-0.00,-1794.90,-324.10,200.00}},
161
	{"Foster Valley",               {-2178.60,-1115.50,0.00,-1794.90,-599.80,200.00}},
162
	{"Foster Valley",               {-2178.60,-1250.90,0.00,-1794.90,-1115.50,200.00}},
163
	{"Frederick Bridge",            {2759.20,296.50,0.00,2774.20,594.70,200.00}},
164
	{"Gant Bridge",                 {-2741.40,1659.60,-6.10,-2616.40,2175.10,200.00}},
165
	{"Gant Bridge",                 {-2741.00,1490.40,-6.10,-2616.40,1659.60,200.00}},
166
	{"Ganton",                      {2222.50,-1852.80,-89.00,2632.80,-1722.30,110.90}},
167
	{"Ganton",                      {2222.50,-1722.30,-89.00,2632.80,-1628.50,110.90}},
168
	{"Garcia",                      {-2411.20,-222.50,-0.00,-2173.00,265.20,200.00}},
169
	{"Garcia",                      {-2395.10,-222.50,-5.30,-2354.00,-204.70,200.00}},
170
	{"Garver Bridge",               {-1339.80,828.10,-89.00,-1213.90,1057.00,110.90}},
171
	{"Garver Bridge",               {-1213.90,950.00,-89.00,-1087.90,1178.90,110.90}},
172
	{"Garver Bridge",               {-1499.80,696.40,-179.60,-1339.80,925.30,20.30}},
173
	{"Glen Park",                   {1812.60,-1449.60,-89.00,1996.90,-1350.70,110.90}},
174
	{"Glen Park",                   {1812.60,-1100.80,-89.00,1994.30,-973.30,110.90}},
175
	{"Glen Park",                   {1812.60,-1350.70,-89.00,2056.80,-1100.80,110.90}},
176
	{"Green Palms",                 {176.50,1305.40,-3.00,338.60,1520.70,200.00}},
177
	{"Greenglass College",          {964.30,1044.60,-89.00,1197.30,1203.20,110.90}},
178
	{"Greenglass College",          {964.30,930.80,-89.00,1166.50,1044.60,110.90}},
179
	{"Hampton Barns",               {603.00,264.30,0.00,761.90,366.50,200.00}},
180
	{"Hankypanky Point",            {2576.90,62.10,0.00,2759.20,385.50,200.00}},
181
	{"Harry Gold Parkway",          {1777.30,863.20,-89.00,1817.30,2342.80,110.90}},
182
	{"Hashbury",                    {-2593.40,-222.50,-0.00,-2411.20,54.70,200.00}},
183
	{"Hilltop Farm",                {967.30,-450.30,-3.00,1176.70,-217.90,200.00}},
184
	{"Hunter Quarry",               {337.20,710.80,-115.20,860.50,1031.70,203.70}},
185
	{"Idlewood",                    {1812.60,-1852.80,-89.00,1971.60,-1742.30,110.90}},
186
	{"Idlewood",                    {1812.60,-1742.30,-89.00,1951.60,-1602.30,110.90}},
187
	{"Idlewood",                    {1951.60,-1742.30,-89.00,2124.60,-1602.30,110.90}},
188
	{"Idlewood",                    {1812.60,-1602.30,-89.00,2124.60,-1449.60,110.90}},
189
	{"Idlewood",                    {2124.60,-1742.30,-89.00,2222.50,-1494.00,110.90}},
190
	{"Idlewood",                    {1971.60,-1852.80,-89.00,2222.50,-1742.30,110.90}},
191
	{"Jefferson",                   {1996.90,-1449.60,-89.00,2056.80,-1350.70,110.90}},
192
	{"Jefferson",                   {2124.60,-1494.00,-89.00,2266.20,-1449.60,110.90}},
193
	{"Jefferson",                   {2056.80,-1372.00,-89.00,2281.40,-1210.70,110.90}},
194
	{"Jefferson",                   {2056.80,-1210.70,-89.00,2185.30,-1126.30,110.90}},
195
	{"Jefferson",                   {2185.30,-1210.70,-89.00,2281.40,-1154.50,110.90}},
196
	{"Jefferson",                   {2056.80,-1449.60,-89.00,2266.20,-1372.00,110.90}},
197
	{"Julius Thruway East",         {2623.10,943.20,-89.00,2749.90,1055.90,110.90}},
198
	{"Julius Thruway East",         {2685.10,1055.90,-89.00,2749.90,2626.50,110.90}},
199
	{"Julius Thruway East",         {2536.40,2442.50,-89.00,2685.10,2542.50,110.90}},
200
	{"Julius Thruway East",         {2625.10,2202.70,-89.00,2685.10,2442.50,110.90}},
201
	{"Julius Thruway North",        {2498.20,2542.50,-89.00,2685.10,2626.50,110.90}},
202
	{"Julius Thruway North",        {2237.40,2542.50,-89.00,2498.20,2663.10,110.90}},
203
	{"Julius Thruway North",        {2121.40,2508.20,-89.00,2237.40,2663.10,110.90}},
204
	{"Julius Thruway North",        {1938.80,2508.20,-89.00,2121.40,2624.20,110.90}},
205
	{"Julius Thruway North",        {1534.50,2433.20,-89.00,1848.40,2583.20,110.90}},
206
	{"Julius Thruway North",        {1848.40,2478.40,-89.00,1938.80,2553.40,110.90}},
207
	{"Julius Thruway North",        {1704.50,2342.80,-89.00,1848.40,2433.20,110.90}},
208
	{"Julius Thruway North",        {1377.30,2433.20,-89.00,1534.50,2507.20,110.90}},
209
	{"Julius Thruway South",        {1457.30,823.20,-89.00,2377.30,863.20,110.90}},
210
	{"Julius Thruway South",        {2377.30,788.80,-89.00,2537.30,897.90,110.90}},
211
	{"Julius Thruway West",         {1197.30,1163.30,-89.00,1236.60,2243.20,110.90}},
212
	{"Julius Thruway West",         {1236.60,2142.80,-89.00,1297.40,2243.20,110.90}},
213
	{"Juniper Hill",                {-2533.00,578.30,-7.60,-2274.10,968.30,200.00}},
214
	{"Juniper Hollow",              {-2533.00,968.30,-6.10,-2274.10,1358.90,200.00}},
215
	{"K.A.C.C. Military Fuels",     {2498.20,2626.50,-89.00,2749.90,2861.50,110.90}},
216
	{"Kincaid Bridge",              {-1339.80,599.20,-89.00,-1213.90,828.10,110.90}},
217
	{"Kincaid Bridge",              {-1213.90,721.10,-89.00,-1087.90,950.00,110.90}},
218
	{"Kincaid Bridge",              {-1087.90,855.30,-89.00,-961.90,986.20,110.90}},
219
	{"King's",                      {-2329.30,458.40,-7.60,-1993.20,578.30,200.00}},
220
	{"King's",                      {-2411.20,265.20,-9.10,-1993.20,373.50,200.00}},
221
	{"King's",                      {-2253.50,373.50,-9.10,-1993.20,458.40,200.00}},
222
	{"LVA Freight Depot",           {1457.30,863.20,-89.00,1777.40,1143.20,110.90}},
223
	{"LVA Freight Depot",           {1375.60,919.40,-89.00,1457.30,1203.20,110.90}},
224
	{"LVA Freight Depot",           {1277.00,1087.60,-89.00,1375.60,1203.20,110.90}},
225
	{"LVA Freight Depot",           {1315.30,1044.60,-89.00,1375.60,1087.60,110.90}},
226
	{"LVA Freight Depot",           {1236.60,1163.40,-89.00,1277.00,1203.20,110.90}},
227
	{"Las Barrancas",               {-926.10,1398.70,-3.00,-719.20,1634.60,200.00}},
228
	{"Las Brujas",                  {-365.10,2123.00,-3.00,-208.50,2217.60,200.00}},
229
	{"Las Colinas",                 {1994.30,-1100.80,-89.00,2056.80,-920.80,110.90}},
230
	{"Las Colinas",                 {2056.80,-1126.30,-89.00,2126.80,-920.80,110.90}},
231
	{"Las Colinas",                 {2185.30,-1154.50,-89.00,2281.40,-934.40,110.90}},
232
	{"Las Colinas",                 {2126.80,-1126.30,-89.00,2185.30,-934.40,110.90}},
233
	{"Las Colinas",                 {2747.70,-1120.00,-89.00,2959.30,-945.00,110.90}},
234
	{"Las Colinas",                 {2632.70,-1135.00,-89.00,2747.70,-945.00,110.90}},
235
	{"Las Colinas",                 {2281.40,-1135.00,-89.00,2632.70,-945.00,110.90}},
236
	{"Las Payasadas",               {-354.30,2580.30,2.00,-133.60,2816.80,200.00}},
237
	{"Las Venturas Airport",        {1236.60,1203.20,-89.00,1457.30,1883.10,110.90}},
238
	{"Las Venturas Airport",        {1457.30,1203.20,-89.00,1777.30,1883.10,110.90}},
239
	{"Las Venturas Airport",        {1457.30,1143.20,-89.00,1777.40,1203.20,110.90}},
240
	{"Las Venturas Airport",        {1515.80,1586.40,-12.50,1729.90,1714.50,87.50}},
241
	{"Last Dime Motel",             {1823.00,596.30,-89.00,1997.20,823.20,110.90}},
242
	{"Leafy Hollow",                {-1166.90,-1856.00,0.00,-815.60,-1602.00,200.00}},
243
	{"Liberty City",                {-1000.00,400.00,1300.00,-700.00,600.00,1400.00}},
244
	{"Lil' Probe Inn",              {-90.20,1286.80,-3.00,153.80,1554.10,200.00}},
245
	{"Linden Side",                 {2749.90,943.20,-89.00,2923.30,1198.90,110.90}},
246
	{"Linden Station",              {2749.90,1198.90,-89.00,2923.30,1548.90,110.90}},
247
	{"Linden Station",              {2811.20,1229.50,-39.50,2861.20,1407.50,60.40}},
248
	{"Little Mexico",               {1701.90,-1842.20,-89.00,1812.60,-1722.20,110.90}},
249
	{"Little Mexico",               {1758.90,-1722.20,-89.00,1812.60,-1577.50,110.90}},
250
	{"Los Flores",                  {2581.70,-1454.30,-89.00,2632.80,-1393.40,110.90}},
251
	{"Los Flores",                  {2581.70,-1393.40,-89.00,2747.70,-1135.00,110.90}},
252
	{"Los Santos International",    {1249.60,-2394.30,-89.00,1852.00,-2179.20,110.90}},
253
	{"Los Santos International",    {1852.00,-2394.30,-89.00,2089.00,-2179.20,110.90}},
254
	{"Los Santos International",    {1382.70,-2730.80,-89.00,2201.80,-2394.30,110.90}},
255
	{"Los Santos International",    {1974.60,-2394.30,-39.00,2089.00,-2256.50,60.90}},
256
	{"Los Santos International",    {1400.90,-2669.20,-39.00,2189.80,-2597.20,60.90}},
257
	{"Los Santos International",    {2051.60,-2597.20,-39.00,2152.40,-2394.30,60.90}},
258
	{"Marina",                      {647.70,-1804.20,-89.00,851.40,-1577.50,110.90}},
259
	{"Marina",                      {647.70,-1577.50,-89.00,807.90,-1416.20,110.90}},
260
	{"Marina",                      {807.90,-1577.50,-89.00,926.90,-1416.20,110.90}},
261
	{"Market",                      {787.40,-1416.20,-89.00,1072.60,-1310.20,110.90}},
262
	{"Market",                      {952.60,-1310.20,-89.00,1072.60,-1130.80,110.90}},
263
	{"Market",                      {1072.60,-1416.20,-89.00,1370.80,-1130.80,110.90}},
264
	{"Market",                      {926.90,-1577.50,-89.00,1370.80,-1416.20,110.90}},
265
	{"Market Station",              {787.40,-1410.90,-34.10,866.00,-1310.20,65.80}},
266
	{"Martin Bridge",               {-222.10,293.30,0.00,-122.10,476.40,200.00}},
267
	{"Missionary Hill",             {-2994.40,-811.20,0.00,-2178.60,-430.20,200.00}},
268
	{"Montgomery",                  {1119.50,119.50,-3.00,1451.40,493.30,200.00}},
269
	{"Montgomery",                  {1451.40,347.40,-6.10,1582.40,420.80,200.00}},
270
	{"Montgomery Intersection",     {1546.60,208.10,0.00,1745.80,347.40,200.00}},
271
	{"Montgomery Intersection",     {1582.40,347.40,0.00,1664.60,401.70,200.00}},
272
	{"Mulholland",                  {1414.00,-768.00,-89.00,1667.60,-452.40,110.90}},
273
	{"Mulholland",                  {1281.10,-452.40,-89.00,1641.10,-290.90,110.90}},
274
	{"Mulholland",                  {1269.10,-768.00,-89.00,1414.00,-452.40,110.90}},
275
	{"Mulholland",                  {1357.00,-926.90,-89.00,1463.90,-768.00,110.90}},
276
	{"Mulholland",                  {1318.10,-910.10,-89.00,1357.00,-768.00,110.90}},
277
	{"Mulholland",                  {1169.10,-910.10,-89.00,1318.10,-768.00,110.90}},
278
	{"Mulholland",                  {768.60,-954.60,-89.00,952.60,-860.60,110.90}},
279
	{"Mulholland",                  {687.80,-860.60,-89.00,911.80,-768.00,110.90}},
280
	{"Mulholland",                  {737.50,-768.00,-89.00,1142.20,-674.80,110.90}},
281
	{"Mulholland",                  {1096.40,-910.10,-89.00,1169.10,-768.00,110.90}},
282
	{"Mulholland",                  {952.60,-937.10,-89.00,1096.40,-860.60,110.90}},
283
	{"Mulholland",                  {911.80,-860.60,-89.00,1096.40,-768.00,110.90}},
284
	{"Mulholland",                  {861.00,-674.80,-89.00,1156.50,-600.80,110.90}},
285
	{"Mulholland Intersection",     {1463.90,-1150.80,-89.00,1812.60,-768.00,110.90}},
286
	{"North Rock",                  {2285.30,-768.00,0.00,2770.50,-269.70,200.00}},
287
	{"Ocean Docks",                 {2373.70,-2697.00,-89.00,2809.20,-2330.40,110.90}},
288
	{"Ocean Docks",                 {2201.80,-2418.30,-89.00,2324.00,-2095.00,110.90}},
289
	{"Ocean Docks",                 {2324.00,-2302.30,-89.00,2703.50,-2145.10,110.90}},
290
	{"Ocean Docks",                 {2089.00,-2394.30,-89.00,2201.80,-2235.80,110.90}},
291
	{"Ocean Docks",                 {2201.80,-2730.80,-89.00,2324.00,-2418.30,110.90}},
292
	{"Ocean Docks",                 {2703.50,-2302.30,-89.00,2959.30,-2126.90,110.90}},
293
	{"Ocean Docks",                 {2324.00,-2145.10,-89.00,2703.50,-2059.20,110.90}},
294
	{"Ocean Flats",                 {-2994.40,277.40,-9.10,-2867.80,458.40,200.00}},
295
	{"Ocean Flats",                 {-2994.40,-222.50,-0.00,-2593.40,277.40,200.00}},
296
	{"Ocean Flats",                 {-2994.40,-430.20,-0.00,-2831.80,-222.50,200.00}},
297
	{"Octane Springs",              {338.60,1228.50,0.00,664.30,1655.00,200.00}},
298
	{"Old Venturas Strip",          {2162.30,2012.10,-89.00,2685.10,2202.70,110.90}},
299
	{"Palisades",                   {-2994.40,458.40,-6.10,-2741.00,1339.60,200.00}},
300
	{"Palomino Creek",              {2160.20,-149.00,0.00,2576.90,228.30,200.00}},
301
	{"Paradiso",                    {-2741.00,793.40,-6.10,-2533.00,1268.40,200.00}},
302
	{"Pershing Square",             {1440.90,-1722.20,-89.00,1583.50,-1577.50,110.90}},
303
	{"Pilgrim",                     {2437.30,1383.20,-89.00,2624.40,1783.20,110.90}},
304
	{"Pilgrim",                     {2624.40,1383.20,-89.00,2685.10,1783.20,110.90}},
305
	{"Pilson Intersection",         {1098.30,2243.20,-89.00,1377.30,2507.20,110.90}},
306
	{"Pirates in Men's Pants",      {1817.30,1469.20,-89.00,2027.40,1703.20,110.90}},
307
	{"Playa del Seville",           {2703.50,-2126.90,-89.00,2959.30,-1852.80,110.90}},
308
	{"Prickle Pine",                {1534.50,2583.20,-89.00,1848.40,2863.20,110.90}},
309
	{"Prickle Pine",                {1117.40,2507.20,-89.00,1534.50,2723.20,110.90}},
310
	{"Prickle Pine",                {1848.40,2553.40,-89.00,1938.80,2863.20,110.90}},
311
	{"Prickle Pine",                {1938.80,2624.20,-89.00,2121.40,2861.50,110.90}},
312
	{"Queens",                      {-2533.00,458.40,0.00,-2329.30,578.30,200.00}},
313
	{"Queens",                      {-2593.40,54.70,0.00,-2411.20,458.40,200.00}},
314
	{"Queens",                      {-2411.20,373.50,0.00,-2253.50,458.40,200.00}},
315
	{"Randolph Industrial Estate",  {1558.00,596.30,-89.00,1823.00,823.20,110.90}},
316
	{"Redsands East",               {1817.30,2011.80,-89.00,2106.70,2202.70,110.90}},
317
	{"Redsands East",               {1817.30,2202.70,-89.00,2011.90,2342.80,110.90}},
318
	{"Redsands East",               {1848.40,2342.80,-89.00,2011.90,2478.40,110.90}},
319
	{"Redsands West",               {1236.60,1883.10,-89.00,1777.30,2142.80,110.90}},
320
	{"Redsands West",               {1297.40,2142.80,-89.00,1777.30,2243.20,110.90}},
321
	{"Redsands West",               {1377.30,2243.20,-89.00,1704.50,2433.20,110.90}},
322
	{"Redsands West",               {1704.50,2243.20,-89.00,1777.30,2342.80,110.90}},
323
	{"Regular Tom",                 {-405.70,1712.80,-3.00,-276.70,1892.70,200.00}},
324
	{"Richman",                     {647.50,-1118.20,-89.00,787.40,-954.60,110.90}},
325
	{"Richman",                     {647.50,-954.60,-89.00,768.60,-860.60,110.90}},
326
	{"Richman",                     {225.10,-1369.60,-89.00,334.50,-1292.00,110.90}},
327
	{"Richman",                     {225.10,-1292.00,-89.00,466.20,-1235.00,110.90}},
328
	{"Richman",                     {72.60,-1404.90,-89.00,225.10,-1235.00,110.90}},
329
	{"Richman",                     {72.60,-1235.00,-89.00,321.30,-1008.10,110.90}},
330
	{"Richman",                     {321.30,-1235.00,-89.00,647.50,-1044.00,110.90}},
331
	{"Richman",                     {321.30,-1044.00,-89.00,647.50,-860.60,110.90}},
332
	{"Richman",                     {321.30,-860.60,-89.00,687.80,-768.00,110.90}},
333
	{"Richman",                     {321.30,-768.00,-89.00,700.70,-674.80,110.90}},
334
	{"Robada Intersection",         {-1119.00,1178.90,-89.00,-862.00,1351.40,110.90}},
335
	{"Roca Escalante",              {2237.40,2202.70,-89.00,2536.40,2542.50,110.90}},
336
	{"Roca Escalante",              {2536.40,2202.70,-89.00,2625.10,2442.50,110.90}},
337
	{"Rockshore East",              {2537.30,676.50,-89.00,2902.30,943.20,110.90}},
338
	{"Rockshore West",              {1997.20,596.30,-89.00,2377.30,823.20,110.90}},
339
	{"Rockshore West",              {2377.30,596.30,-89.00,2537.30,788.80,110.90}},
340
	{"Rodeo",                       {72.60,-1684.60,-89.00,225.10,-1544.10,110.90}},
341
	{"Rodeo",                       {72.60,-1544.10,-89.00,225.10,-1404.90,110.90}},
342
	{"Rodeo",                       {225.10,-1684.60,-89.00,312.80,-1501.90,110.90}},
343
	{"Rodeo",                       {225.10,-1501.90,-89.00,334.50,-1369.60,110.90}},
344
	{"Rodeo",                       {334.50,-1501.90,-89.00,422.60,-1406.00,110.90}},
345
	{"Rodeo",                       {312.80,-1684.60,-89.00,422.60,-1501.90,110.90}},
346
	{"Rodeo",                       {422.60,-1684.60,-89.00,558.00,-1570.20,110.90}},
347
	{"Rodeo",                       {558.00,-1684.60,-89.00,647.50,-1384.90,110.90}},
348
	{"Rodeo",                       {466.20,-1570.20,-89.00,558.00,-1385.00,110.90}},
349
	{"Rodeo",                       {422.60,-1570.20,-89.00,466.20,-1406.00,110.90}},
350
	{"Rodeo",                       {466.20,-1385.00,-89.00,647.50,-1235.00,110.90}},
351
	{"Rodeo",                       {334.50,-1406.00,-89.00,466.20,-1292.00,110.90}},
352
	{"Royal Casino",                {2087.30,1383.20,-89.00,2437.30,1543.20,110.90}},
353
	{"San Andreas Sound",           {2450.30,385.50,-100.00,2759.20,562.30,200.00}},
354
	{"Santa Flora",                 {-2741.00,458.40,-7.60,-2533.00,793.40,200.00}},
355
	{"Santa Maria Beach",           {342.60,-2173.20,-89.00,647.70,-1684.60,110.90}},
356
	{"Santa Maria Beach",           {72.60,-2173.20,-89.00,342.60,-1684.60,110.90}},
357
	{"Shady Cabin",                 {-1632.80,-2263.40,-3.00,-1601.30,-2231.70,200.00}},
358
	{"Shady Creeks",                {-1820.60,-2643.60,-8.00,-1226.70,-1771.60,200.00}},
359
	{"Shady Creeks",                {-2030.10,-2174.80,-6.10,-1820.60,-1771.60,200.00}},
360
	{"Sobell Rail Yards",           {2749.90,1548.90,-89.00,2923.30,1937.20,110.90}},
361
	{"Spinybed",                    {2121.40,2663.10,-89.00,2498.20,2861.50,110.90}},
362
	{"Starfish Casino",             {2437.30,1783.20,-89.00,2685.10,2012.10,110.90}},
363
	{"Starfish Casino",             {2437.30,1858.10,-39.00,2495.00,1970.80,60.90}},
364
	{"Starfish Casino",             {2162.30,1883.20,-89.00,2437.30,2012.10,110.90}},
365
	{"Temple",                      {1252.30,-1130.80,-89.00,1378.30,-1026.30,110.90}},
366
	{"Temple",                      {1252.30,-1026.30,-89.00,1391.00,-926.90,110.90}},
367
	{"Temple",                      {1252.30,-926.90,-89.00,1357.00,-910.10,110.90}},
368
	{"Temple",                      {952.60,-1130.80,-89.00,1096.40,-937.10,110.90}},
369
	{"Temple",                      {1096.40,-1130.80,-89.00,1252.30,-1026.30,110.90}},
370
	{"Temple",                      {1096.40,-1026.30,-89.00,1252.30,-910.10,110.90}},
371
	{"The Camel's Toe",             {2087.30,1203.20,-89.00,2640.40,1383.20,110.90}},
372
	{"The Clown's Pocket",          {2162.30,1783.20,-89.00,2437.30,1883.20,110.90}},
373
	{"The Emerald Isle",            {2011.90,2202.70,-89.00,2237.40,2508.20,110.90}},
374
	{"The Farm",                    {-1209.60,-1317.10,114.90,-908.10,-787.30,251.90}},
375
	{"The Four Dragons Casino",     {1817.30,863.20,-89.00,2027.30,1083.20,110.90}},
376
	{"The High Roller",             {1817.30,1283.20,-89.00,2027.30,1469.20,110.90}},
377
	{"The Mako Span",               {1664.60,401.70,0.00,1785.10,567.20,200.00}},
378
	{"The Panopticon",              {-947.90,-304.30,-1.10,-319.60,327.00,200.00}},
379
	{"The Pink Swan",               {1817.30,1083.20,-89.00,2027.30,1283.20,110.90}},
380
	{"The Sherman Dam",             {-968.70,1929.40,-3.00,-481.10,2155.20,200.00}},
381
	{"The Strip",                   {2027.40,863.20,-89.00,2087.30,1703.20,110.90}},
382
	{"The Strip",                   {2106.70,1863.20,-89.00,2162.30,2202.70,110.90}},
383
	{"The Strip",                   {2027.40,1783.20,-89.00,2162.30,1863.20,110.90}},
384
	{"The Strip",                   {2027.40,1703.20,-89.00,2137.40,1783.20,110.90}},
385
	{"The Visage",                  {1817.30,1863.20,-89.00,2106.70,2011.80,110.90}},
386
	{"The Visage",                  {1817.30,1703.20,-89.00,2027.40,1863.20,110.90}},
387
	{"Unity Station",               {1692.60,-1971.80,-20.40,1812.60,-1932.80,79.50}},
388
	{"Valle Ocultado",              {-936.60,2611.40,2.00,-715.90,2847.90,200.00}},
389
	{"Verdant Bluffs",              {930.20,-2488.40,-89.00,1249.60,-2006.70,110.90}},
390
	{"Verdant Bluffs",              {1073.20,-2006.70,-89.00,1249.60,-1842.20,110.90}},
391
	{"Verdant Bluffs",              {1249.60,-2179.20,-89.00,1692.60,-1842.20,110.90}},
392
	{"Verdant Meadows",             {37.00,2337.10,-3.00,435.90,2677.90,200.00}},
393
	{"Verona Beach",                {647.70,-2173.20,-89.00,930.20,-1804.20,110.90}},
394
	{"Verona Beach",                {930.20,-2006.70,-89.00,1073.20,-1804.20,110.90}},
395
	{"Verona Beach",                {851.40,-1804.20,-89.00,1046.10,-1577.50,110.90}},
396
	{"Verona Beach",                {1161.50,-1722.20,-89.00,1323.90,-1577.50,110.90}},
397
	{"Verona Beach",                {1046.10,-1722.20,-89.00,1161.50,-1577.50,110.90}},
398
	{"Vinewood",                    {787.40,-1310.20,-89.00,952.60,-1130.80,110.90}},
399
	{"Vinewood",                    {787.40,-1130.80,-89.00,952.60,-954.60,110.90}},
400
	{"Vinewood",                    {647.50,-1227.20,-89.00,787.40,-1118.20,110.90}},
401
	{"Vinewood",                    {647.70,-1416.20,-89.00,787.40,-1227.20,110.90}},
402
	{"Whitewood Estates",           {883.30,1726.20,-89.00,1098.30,2507.20,110.90}},
403
	{"Whitewood Estates",           {1098.30,1726.20,-89.00,1197.30,2243.20,110.90}},
404
	{"Willowfield",                 {1970.60,-2179.20,-89.00,2089.00,-1852.80,110.90}},
405
	{"Willowfield",                 {2089.00,-2235.80,-89.00,2201.80,-1989.90,110.90}},
406
	{"Willowfield",                 {2089.00,-1989.90,-89.00,2324.00,-1852.80,110.90}},
407
	{"Willowfield",                 {2201.80,-2095.00,-89.00,2324.00,-1989.90,110.90}},
408
	{"Willowfield",                 {2541.70,-1941.40,-89.00,2703.50,-1852.80,110.90}},
409
	{"Willowfield",                 {2324.00,-2059.20,-89.00,2541.70,-1852.80,110.90}},
410
	{"Willowfield",                 {2541.70,-2059.20,-89.00,2703.50,-1941.40,110.90}},
411
	{"Yellow Bell Station",         {1377.40,2600.40,-21.90,1492.40,2687.30,78.00}},
412
	// Main Zones
413
	{"Los Santos",                  {44.60,-2892.90,-242.90,2997.00,-768.00,900.00}},
414
	{"Las Venturas",                {869.40,596.30,-242.90,2997.00,2993.80,900.00}},
415
	{"Bone County",                 {-480.50,596.30,-242.90,869.40,2993.80,900.00}},
416
	{"Tierra Robada",               {-2997.40,1659.60,-242.90,-480.50,2993.80,900.00}},
417
	{"Tierra Robada",               {-1213.90,596.30,-242.90,-480.50,1659.60,900.00}},
418
	{"San Fierro",                  {-2997.40,-1115.50,-242.90,-1213.90,1659.60,900.00}},
419
	{"Red County",                  {-1213.90,-768.00,-242.90,2997.00,596.30,900.00}},
420
	{"Flint County",                {-1213.90,-2892.90,-242.90,44.60,-768.00,900.00}},
421
	{"Whetstone",                   {-2997.40,-2892.90,-242.90,-1213.90,-1115.50,900.00}}
422
};
423
424
425
main()
426
{
427
	print("\n----------------------------------");
428
	print("      	G-IRC v0.1			   	   ");
429
	print("		By Deron_Green !credits		   ");
430
	print("----------------------------------\n");
431
}
432
//==============Publics================//
433
public OnFilterScriptInit()
434
{
435
	botIDs[0] = IRC_Connect(IRC_SERVER, IRC_PORT, BOT_1_NICKNAME, BOT_1_REALNAME, BOT_1_USERNAME);
436
	IRC_SetIntData(botIDs[0], E_IRC_CONNECT_DELAY, 20);
437
	botIDs[1] = IRC_Connect(IRC_SERVER, IRC_PORT, BOT_2_NICKNAME, BOT_2_REALNAME, BOT_2_USERNAME);
438
	IRC_SetIntData(botIDs[1], E_IRC_CONNECT_DELAY, 30);
439
	groupID = IRC_CreateGroup();
440
}
441
public OnFilterScriptExit()
442
{
443
	IRC_Quit(botIDs[0], "G-IRC closing");
444
	IRC_Quit(botIDs[1], "G-IRC closing");
445
	IRC_DestroyGroup(groupID);
446
}
447
public OnPlayerConnect(playerid)
448
{
449
	new joinMsg[128], name[MAX_PLAYER_NAME], Ajoin[128];
450
	GetPlayerName(playerid, name, sizeof(name));
451
	format(joinMsg, sizeof(joinMsg), "50JOIN: %s (%d) Has Joined The Server.", name, playerid);
452
	IRC_GroupSay(groupID, IRC_CHANNEL, joinMsg);
453
	new giveplayerid, ip[16];
454
	GetPlayerIp(giveplayerid, ip, sizeof(ip));
455
	format(Ajoin, sizeof(Ajoin), "50JOIN: %s (%d) Has Joined The Server.- (IP): %s", name, playerid, ip);
456
	IRC_GroupSay(groupID, ADMIN_CHANNEL, Ajoin);
457
	return 1;
458
}
459
public OnPlayerDisconnect(playerid, reason)
460
{
461
	new leaveMsg[128], name[MAX_PLAYER_NAME], reasonMsg[20], Aleave[128];
462
	switch(reason)
463
	{
464
		case 0: reasonMsg = "Timeout";
465
		case 1: reasonMsg = "Leaving";
466
		case 2: reasonMsg = "Kicked/Banned";
467
	}
468
	GetPlayerName(playerid, name, sizeof(name));
469
	format(leaveMsg, sizeof(leaveMsg), "02%s (%d) Has Left The Server. -(%s)", name, playerid, reasonMsg);
470
	IRC_GroupSay(groupID, IRC_CHANNEL, leaveMsg);
471
	format(Aleave, sizeof(Aleave), "02%s (%d) Has Left The Server. - (%s)", name, playerid, reasonMsg);
472
	IRC_GroupSay(groupID, ADMIN_CHANNEL, Aleave);
473
	return 1;
474
}
475
public OnPlayerSpawn(playerid)
476
{
477
	new SpawnMsg[128], name[MAX_PLAYER_NAME], string[128], zone[MAX_ZONE_NAME];
478
	GetPlayerName(playerid, name, sizeof(name));
479
	format(SpawnMsg, sizeof(SpawnMsg), "5SPAWN: %s (%d) Has Spawned.", name, playerid);
480
	IRC_GroupSay(groupID, IRC_CHANNEL, SpawnMsg);
481
	GetPlayer2DZone(playerid, zone, MAX_ZONE_NAME);
482
	format(string, sizeof(string), "5 SPAWN: %s (%d) Has Spawned. - Location: %s", name, playerid, zone);
483
	IRC_GroupSay(groupID, ADMIN_CHANNEL, string);
484
	return 1;
485
}
486
public OnPlayerDeath(playerid, killerid, reason)
487
{
488
	new msg[128], killerName[MAX_PLAYER_NAME], reasonMsg[32], playerName[MAX_PLAYER_NAME];
489
	GetPlayerName(killerid, killerName, sizeof(killerName));
490
	GetPlayerName(playerid, playerName, sizeof(playerName));
491
	if (killerid != INVALID_PLAYER_ID)
492
	{
493
		switch (reason)
494
		{
495
			case 0: reasonMsg = "Fist";
496
			case 1: reasonMsg = "Brass Knuckles";
497
			case 2: reasonMsg = "Golf Club";
498
			case 3: reasonMsg = "Night Stick";
499
			case 4: reasonMsg = "Knife";
500
			case 5: reasonMsg = "Baseball Bat";
501
			case 6: reasonMsg = "Shovel";
502
			case 7: reasonMsg = "Pool Cue";
503
			case 8: reasonMsg = "Katana";
504
			case 9: reasonMsg = "Chainsaw";
505
			case 10: reasonMsg = "Dildo";
506
			case 11: reasonMsg = "Dildo";
507
			case 12: reasonMsg = "Vibrator";
508
			case 13: reasonMsg = "Vibrator";
509
			case 14: reasonMsg = "Flowers";
510
			case 15: reasonMsg = "Cane";
511
			case 22: reasonMsg = "Pistol";
512
			case 23: reasonMsg = "Silenced Pistol";
513
			case 24: reasonMsg = "Desert Eagle";
514
			case 25: reasonMsg = "Shotgun";
515
			case 26: reasonMsg = "Sawn-off Shotgun";
516
			case 27: reasonMsg = "Combat Shotgun";
517
			case 28: reasonMsg = "MAC-10";
518
			case 29: reasonMsg = "MP5";
519
			case 30: reasonMsg = "AK-47";
520
			case 31: reasonMsg = "M4";
521
			case 32: reasonMsg = "TEC-9";
522
			case 33: reasonMsg = "Country Rifle";
523
			case 34: reasonMsg = "Sniper Rifle";
524
			case 37: reasonMsg = "Fire";
525
			case 38: reasonMsg = "Minigun";
526
			case 41: reasonMsg = "Spray Can";
527
			case 42: reasonMsg = "Fire Extinguisher";
528
			case 49: reasonMsg = "Vehicle Collision";
529
			case 50: reasonMsg = "Vehicle Collision";
530
			case 51: reasonMsg = "Explosion";
531
			default: reasonMsg = "Unknown";
532
		}
533
		format(msg, sizeof(msg), "04 %s Murdered %s. (%s)", killerName, playerName, reasonMsg);
534
	}
535
	else
536
	{
537
		switch (reason)
538
		{
539
			case 53: format(msg, sizeof(msg), "04 %s died. (Drowned)", playerName);
540
			case 54: format(msg, sizeof(msg), "04 %s died. (Collision)", playerName);
541
			default: format(msg, sizeof(msg), "04 %s died.", playerName);
542
		}
543
	}
544
	IRC_GroupSay(groupID, IRC_CHANNEL, msg);
545
	return 1;
546
}
547
public OnPlayerText(playerid, text[])
548
{
549
	new name[MAX_PLAYER_NAME], ircMsg[256], Rstr[128];
550
	GetPlayerName(playerid, name, sizeof(name));
551
	GetPlayerWantedLevel(playerid);
552
 	if(GetPlayerWantedLevel(playerid) == 0)
553
 	{
554
	format(ircMsg, sizeof(ircMsg), "%s (%d): %s", name, playerid, text);
555
	IRC_GroupSay(groupID, IRC_CHANNEL, ircMsg);
556
	IRC_GroupSay(groupID, ADMIN_CHANNEL, ircMsg);
557
	}
558
 	else if(GetPlayerWantedLevel(playerid) >= 1)
559
 	{
560
	format(Rstr, sizeof(Rstr), "4(WANTED):1%s (%d): %s", name, playerid, text);
561
	IRC_GroupSay(groupID, IRC_CHANNEL, Rstr);
562
	IRC_GroupSay(groupID, ADMIN_CHANNEL, Rstr);
563
	}
564
	return 1;
565
}
566
public IRC_OnConnect(botid, ip[], port)
567
{
568
	printf("*** IRC_OnConnect: Bot ID %d connected to %s:%d", botid, ip, port);
569
	IRC_JoinChannel(botid, IRC_CHANNEL);
570
	IRC_JoinChannel(botid, ADMIN_CHANNEL);
571
	IRC_AddToGroup(groupID, botid);
572
  	IRC_SendRaw(botid, "ns identify "BOT_PASS"");
573
	return 1;
574
}
575
public IRC_OnDisconnect(botid, ip[], port, reason[])
576
{
577
	IRC_RemoveFromGroup(groupID, botid);
578
	return 1;
579
}
580
public IRC_OnConnectAttemptFail(botid, ip[], port, reason[])
581
{
582
	printf("*** IRC_OnConnectAttemptFail: Bot ID %d failed to connect to %s:%d (%s)", botid, ip, port, reason);
583
	return 1;
584
}
585
public IRC_OnReceiveRaw(botid, message[])
586
{
587
	new File:file;
588
	if (!fexist("irc_log.txt"))
589
	{
590
		file = fopen("irc_log.txt", io_write);
591
	}
592
	else
593
	{
594
		file = fopen("irc_log.txt", io_append);
595
	}
596
	if (file)
597
	{
598
		fwrite(file, message);
599
		fwrite(file, "\r\n");
600
		fclose(file);
601
	}
602
	return 1;
603
}
604
//==============================Commands===============================//
605
IRCCMD:say(botid, channel[], user[], host[], params[])
606
{
607
	if (IRC_IsVoice(botid, channel, user))
608
	{
609
		if (!isnull(params))
610
		{
611
			new msg[128];
612
			format(msg, sizeof(msg), "02%s on IRC: %s", user, params);
613
			IRC_GroupSay(groupID, channel, msg);
614
			format(msg, sizeof(msg), "%s on IRC: %s", user, params);
615
			SendClientMessageToAll(WHITE, msg);
616
		}
617
	}
618
	return 1;
619
}
620
621
IRCCMD:ikick(botid, channel[], user[], host[], params[])
622
{
623
	if (IRC_IsHalfop(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
624
	{
625
		new playerid, reason[64];
626
		if (sscanf(params, "dS(No reason)[64]", playerid, reason))
627
		{
628
			return 1;
629
		}
630
		if (IsPlayerConnected(playerid))
631
		{
632
			new msg[128], name[MAX_PLAYER_NAME];
633
			GetPlayerName(playerid, name, sizeof(name));
634
			format(msg, sizeof(msg), "02%s Has Been Kicked By Administrator %s On IRC. (%s)", name, user, reason);
635
			IRC_GroupSay(groupID, channel, msg);
636
			format(msg, sizeof(msg), "%s Has Been Kicked By %s On IRC. (%s)", name, user, reason);
637
			SendClientMessageToAll(WHITE, msg);
638
			Kick(playerid);
639
		}
640
	}
641
	return 1;
642
}
643
644
IRCCMD:iban(botid, channel[], user[], host[], params[])
645
{
646
	if (IRC_IsHalfop(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
647
	{
648
		new playerid, reason[64];
649
		if (sscanf(params, "dS(No reason)[64]", playerid, reason))
650
		{
651
			return 1;
652
		}
653
		if (IsPlayerConnected(playerid))
654
		{
655
			new msg[128], name[MAX_PLAYER_NAME];
656
			GetPlayerName(playerid, name, sizeof(name));
657
			format(msg, sizeof(msg), "02%s Has Been "CRED"Banned By Administrator %s On IRC. (%s)", name, user, reason);
658
			IRC_GroupSay(groupID, channel, msg);
659
			format(msg, sizeof(msg), "%s has been "CRED"Banned By Administrator %s On IRC. (%s)", name, user, reason);
660
			SendClientMessageToAll(WHITE, msg);
661
			BanEx(playerid, reason);
662
		}
663
	}
664
	return 1;
665
}
666
667
IRCCMD:rcon(botid, channel[], user[], host[], params[])
668
{
669
	if (IRC_IsOp(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
670
	{
671
		if (!isnull(params))
672
		{
673
			if (strcmp(params, "exit", true) != 0 && strfind(params, "loadfs irc", true) == -1)
674
			{
675
				new msg[128];
676
				format(msg, sizeof(msg), "RCON command %s has been executed.", params);
677
				IRC_GroupSay(groupID, channel, msg);
678
				SendRconCommand(params);
679
			}
680
		}
681
	}
682
	return 1;
683
}
684
IRCCMD:cmds(botid, channel[], user[], host[], params[])
685
{
686
    if(!strcmp(channel, channel, true))
687
    {
688
        IRC_Say(botid, user, "04 		[IRC Commands]			  ");
689
        IRC_Say(groupID, user, "|    User: !pm !players !credits !say    ");
690
   		{
691
		if(IRC_IsHalfop(botid, channel, user))
692
		{
693
		    IRC_Say(groupID, user, "|    Halfops: !slap !iban !ikick !clearchat !warn !getip   ");
694
		}
695
		if(IRC_IsOp(botid, channel, user))
696
		{
697
		    IRC_Say(groupID, user, "|    Operators: !explode !givecash !setscore !setwanted !loc  ");
698
		}
699
		if(IRC_IsAdmin(botid, channel, user))
700
		{
701
		    IRC_Say(groupID, user, "|    Administrators: !isay !cprotect !crestore    ");
702
		}
703
		if(IRC_IsOwner(botid, channel, user))
704
		{
705
		    IRC_Say(groupID, user, "|    Owner: !restart !bregister !rcon    ");
706
		}
707
    	}
708
	}
709
	return 1;
710
}
711
IRCCMD:bregister(botid, channel[], user[], host[], params[])
712
{
713
	if(!IRC_IsOwner(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
714
	new regstr[50];
715
	format(regstr, sizeof(regstr), "ns register %s %s", BOT_PASS, BOT_EMAIL);
716
	IRC_SendRaw(botid, regstr);
717
	return 1;
718
}
719
IRCCMD:restart(botid, channel[], user[], host[], params[])
720
{
721
	if(!IRC_IsOwner(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
722
	SendRconCommand("gmx");
723
	return 1;
724
}
725
IRCCMD:cprotect(botid, channel[], user[], host[], params[])
726
{
727
	if(!IRC_IsAdmin(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
728
	new pmode[50];
729
	format(pmode, sizeof(pmode), "mode %s +miRCp", channel);
730
	IRC_SendRaw(botid, pmode);
731
	return 1;
732
}
733
IRCCMD:crestore(botid, channel[], user[], host[], params[])
734
{
735
	if(!IRC_IsAdmin(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
736
	new pmode[50];
737
	format(pmode, sizeof(pmode), "mode %s -miRCp", channel);
738
	IRC_SendRaw(botid, pmode);
739
	return 1;
740
}
741
IRCCMD:bsay(botid, channel[], user[], host[], params[])
742
{
743
	if(!IRC_IsOp(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
744
	new bmsg[128], bmsg2[128];
745
	format(bmsg, sizeof(bmsg), "02%s on IRC: %s", BOT_1_NICKNAME, params);
746
	IRC_GroupSay(groupID, channel, bmsg);
747
	format(bmsg2, sizeof(bmsg2), ""CGREEN"%s on IRC:"CWHITE" %s", BOT_1_NICKNAME, params);
748
	SendClientMessageToAll(WHITE, bmsg2);
749
	return 1;
750
}
751
IRCCMD:isay(botid, channel[], user[], host[], params[])
752
{
753
    if(!IRC_IsAdmin(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
754
	if(isnull(params) || strlen(params) > 50) return IRC_GroupNotice(groupID, user, "4Invalid length. The length must be between 1 and 50 characters.");
755
	new amsg[128], amsg2[128];
756
	format(amsg, sizeof(amsg), "17Administrator %s on IRC:1 %s", user, params);
757
	IRC_GroupSay(groupID, channel, amsg);
758
	format(amsg2, sizeof(amsg2), ""CRED"Administrator %s on IRC:"CWHITE" %s", user, params);
759
	SendClientMessageToAll(WHITE, amsg2);
760
	return 1;
761
}
762
IRCCMD:credits(botid, channel[], user[], host[], params[])
763
{
764
    IRC_Notice(botid, user, "04     	[IRC script]			    ");
765
	IRC_Notice(botid, user, "04	Made by Deron_Green	and ejb	    ");
766
	IRC_Notice(botid, user, "04    Special thanks to Incognito,    ");
767
	IRC_Notice(botid, user, "04	Y_Less, SA-IRC network  		");
768
	IRC_Notice(botid, user, "04			And..  		  		    ");
769
	IRC_Notice(botid, user, "04	You for choosing GreenIRC v0.1! ");
770
	IRC_Notice(botid, user, "04___________________________________");
771
	return 1;
772
}
773
IRCCMD:explode(botid, channel[], user[], host[], params[])
774
{
775
    if(!IRC_IsOp(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level.");
776
    new id, reason[80]; new pname[MAX_PLAYER_NAME];
777
    if(sscanf(params, "uS(No Reason)[80]", id, reason))
778
    {
779
        IRC_GroupSay(groupID, user, "04USAGE: !explode [ID] [Reason]");
780
	    return 1;
781
    }
782
    if(!IsPlayerConnected(id))
783
	{
784
	    IRC_GroupSay(groupID, user, "04ERROR: Invalid Player ID");
785
	    return 1;
786
	}
787
	new Float:x, Float:y, Float:z, string[100], str2[100];
788
	GetPlayerPos(id, x, y, z);
789
	CreateExplosion(x, y, z, 6, 10);
790
	CreateExplosion(x, y, z, 6, 10);
791
 	GetPlayerName(id, pname, sizeof(pname));
792
	format(string, sizeof(string), ""CORANGE"EXPLOSION: "CWHITE"IRC Administrator %s Has Exploded %s(%d) - Reason: %s", user, pname, id, reason);
793
	SendClientMessageToAll(WHITE, string);
794
	format(str2, sizeof(str2), "41(EXPLOSION):1 IRC Admin %s Exploded %s(%d) - Reason: %s", user, pname, id, reason);
795
	IRC_Say(groupID, ADMIN_CHANNEL, str2);
796
	return 1;
797
}
798
IRCCMD:getip(botid, channel[], user[], host[], params[])//ReV
799
{
800
    if(!IRC_IsHalfop(botid, channel, user)) return false;
801
	new giveplayerid, ip[16], str[128];
802
 	new giveplayer[MAX_PLAYER_NAME];
803
	if(sscanf(params, "i", giveplayerid))
804
 	{
805
	IRC_GroupSay(groupID, ADMIN_CHANNEL, "Usage: !getip (playerid)");
806
	return false;
807
	}
808
809
	GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
810
	GetPlayerIp(giveplayerid, ip, sizeof(ip));
811
812
	if(!IsPlayerConnected(giveplayerid))
813
	{
814
		IRC_GroupSay(groupID, channel, "4()3 Invalid Player ID!");
815
		return 1;
816
	}
817
	format(str, 128, "2Player:1 %s(%i) 4IP:1  Is %s", giveplayer, giveplayerid, ip);
818
	IRC_GroupSay(groupID, channel, str);
819
820
 	#pragma unused botid, user
821
	return true;
822
}
823
IRCCMD:players(conn, channel[], user[], params[]) //made by Grove, taken from CYS Echo Bot 1.2
824
{
825
	new count, PlayerNames[512], string[256];
826
	for(new i=0; i<=MAX_PLAYERS; i++)
827
	{
828
		if(IsPlayerConnected(i))
829
		{
830
			if(count == 0)
831
			{
832
				new PlayerName1[MAX_PLAYER_NAME];
833
				GetPlayerName(i, PlayerName1, sizeof(PlayerName1));
834
			 	format(PlayerNames, sizeof(PlayerNames),"2%s1", PlayerName1);
835
				count++;
836
			}
837
			else
838
			{
839
				new PlayerName1[MAX_PLAYER_NAME];
840
   				GetPlayerName(i, PlayerName1, sizeof(PlayerName1));
841
		 		format(PlayerNames, sizeof(PlayerNames),"%s, 2%s1", PlayerNames, PlayerName1);
842
				count++;
843
			}
844
		}
845
		else { if(count == 0) format(PlayerNames, sizeof(PlayerNames), "1No Players Online!"); }
846
	}
847
848
	new counter = 0;
849
	for(new i=0; i<=MAX_PLAYERS; i++)
850
	{
851
		if(IsPlayerConnected(i)) counter++;
852
	}
853
854
	format(string, 256, "50Connected Players[%d]:1 %s", counter, PlayerNames);
855
	IRC_Say(conn, channel, string);
856
  	#pragma unused params,user
857
	return true;
858
}
859
IRCCMD:clearchat(conn, channel[], user[], message[])
860
{
861
	if(IRC_IsHalfop(conn, channel, user) == 0) return IRC_Say(conn, channel, "Invalid Level");
862
	{
863
	for( new i = 0; i <= 100; i ++ ) SendClientMessageToAll(WHITE, "" );
864
	}
865
	new string[256];
866
	format(string, sizeof(string), ""CRED"A IRC Administrator "CWHITE"has cleared the chat", user);
867
868
	SendClientMessageToAll(WHITE, string);
869
	IRC_Say(conn, channel, string);
870
871
	#pragma unused message
872
	return 1;
873
}
874
IRCCMD:warn(botid, channel[], user[], host[], params[])
875
{
876
	new ID; new reason[100]; new string[200]; new pname[MAX_PLAYER_NAME];new str[200];
877
	if(IRC_IsOp(botid, channel, user))
878
	{
879
		if(sscanf(params, "us[100]", ID, reason))
880
		{
881
			IRC_Say(groupID, channel, "Usage: !warn [ID] [reason]");
882
		}
883
		if(!IsPlayerConnected(ID))
884
		{
885
			IRC_Say(groupID, channel, "Invalid Player ID.");
886
			return 1;
887
		}
888
		GetPlayerName(ID, pname, 24);
889
		format(string, sizeof(string), "WARN: %s(%d) Has Been Warned By IRC Administrator %s - Reason: %s", pname, ID, user, reason);
890
		SendClientMessageToAll(WHITE, string);
891
		format(str, sizeof(str), "WARN: %s(%d) Has Been Warned By %s. Reason: %s", pname, ID, user, reason);
892
		IRC_Say(groupID, ADMIN_CHANNEL, str);
893
		SendClientMessage(ID, WHITE, "WARNED: You Have Been Issued A Warning By An IRC Administrator.");
894
		SendClientMessage(ID, WHITE, "Please Follow The Rules And Read /rules");
895
	}
896
	return 1;
897
}
898
IRCCMD:pm(botid, channel[], user[], host[], params[])
899
{
900
    new string[128], str1[128], id, pname[MAX_PLAYER_NAME];
901
    if(sscanf(params, "us[100]", id, str1))
902
    {
903
			IRC_Say(groupID, channel, "Usage: !pm [ID] [message]");
904
        	return 1;
905
    }
906
	if(!IsPlayerConnected(id)) return IRC_Say(groupID, channel, "Invalid Player ID.");
907
    {
908
        GetPlayerName(id, pname, sizeof(pname));
909
        format(string, sizeof(string), "PM To: %s(ID %d): %s", pname, id, str1);
910
		IRC_Say(groupID, channel, string);
911
        format(str1, sizeof(str1), ""HOT_PINK"PM From %s:"CWHITE" %s", user, str1);
912
        SendClientMessage(id, WHITE, str1);
913
    }
914
	return 1;
915
}
916
IRCCMD:slap(botid, channel[], user[], host[], params[])
917
{
918
    new id, str[128], str2[128], pname[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;
919
    if(!IRC_IsHalfop(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level");
920
   	{
921
    	if(sscanf(params, "us[128]", id, str))
922
    	{
923
			IRC_Say(groupID, channel, "Usage: !slap [ID] [reason]");
924
		}
925
    	GetPlayerName(id, pname, sizeof(pname));
926
    	format(str2, sizeof(str2), "53SLAP:1 %s Has Been Slapped By 39IRC Administrator1 %s - 4Reason:1 %s", pname, user, str);
927
		IRC_Say(groupID, channel, str2);
928
    	GetPlayerPos(id, x, y, z);
929
    	SetPlayerPos(id, x, y, z+10);
930
	}
931
	return 1;
932
}
933
IRCCMD:givecash(botid, channel[], user[], host[], params[])
934
{
935
    new id, amount, pname[MAX_PLAYER_NAME], Mstr[128];
936
    if(!IRC_IsOp(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level");
937
   	{
938
    	if(sscanf(params,"ui", id, amount))
939
		{
940
			IRC_Say(groupID, channel, "Usage: !givecash [ID] [Amount]");
941
		}
942
    	if(!IsPlayerConnected(id)) return IRC_Say(groupID, channel, "Invalid Player ID.");
943
    	{
944
    	GetPlayerName(id, pname, sizeof(pname));
945
    	GivePlayerMoney(id, amount);
946
    	format(Mstr, sizeof(Mstr), "44CASH::1 %s Has Been Given $%d By IRC Administrator %s", pname, amount, user);
947
		IRC_Say(groupID, ADMIN_CHANNEL, Mstr);
948
    	}
949
    }
950
    return 1;
951
}
952
IRCCMD:setscore(botid, channel[], user[], host[], params[])
953
{
954
	new id, score, pname[MAX_PLAYER_NAME], str[128];
955
	if(!IRC_IsOp(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level");
956
	{
957
		if (sscanf(params, "ui", id, score))
958
		{
959
			IRC_Say(groupID, channel, "Usage: !setscore [ID] [score]");
960
		}
961
		if(!IsPlayerConnected(id)) return IRC_Say(groupID, channel, "Invalid Player ID.");
962
		{
963
        SetPlayerScore(id, score);
964
        GetPlayerName(id, pname, sizeof(pname));
965
       	format(str, sizeof(str), "57SCORE::1 %s Score Has Been Set To %d By IRC Administrator %s", pname, score, user);
966
		IRC_Say(groupID, channel, str);
967
		}
968
   	}
969
	return 1;
970
}
971
IRCCMD:loc(botid, channel[], user[], host[], params[])
972
{
973
	new id, zone[MAX_ZONE_NAME], pname[MAX_PLAYER_NAME], str[128];
974
	if(!IRC_IsOp(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level");
975
	{
976
		if (sscanf(params, "u", id))
977
		{
978
			IRC_Say(groupID, channel, "Usage: !loc [ID]");
979
		}
980
		if(!IsPlayerConnected(id)) return IRC_Say(groupID, channel, "Invalid Player ID.");
981
		{
982
		GetPlayer2DZone(id, zone, MAX_ZONE_NAME);
983
        GetPlayerName(id, pname, sizeof(pname));
984
       	format(str, sizeof(str), "57LOCATION:1 17Player:1 %s -  4Location:1 %s", pname, zone);
985
		IRC_Say(groupID, channel, str);
986
		}
987
	}
988
	return 1;
989
}
990
IRCCMD:setwanted(botid, channel[], user[], host[], params[])
991
{
992
	new id, pname[MAX_PLAYER_NAME], wl, Wstr[128];
993
	if(!IRC_IsOp(botid, channel, user)) return IRC_Say(groupID, channel, "Invalid Level");
994
 	{
995
 	    if (sscanf(params, "ui", id, wl))
996
 	    {
997
 	        IRC_Say(groupID, channel, "Usage: !setwanted [ID] [Level]");
998
  		}
999
  		if(!IsPlayerConnected(id)) return IRC_Say(groupID, channel, "Invalid Player ID");
1000
  		{
1001
			SetPlayerWantedLevel(id, wl);
1002
			GetPlayerName(id, pname, sizeof(pname));
1003
			format(Wstr, sizeof(Wstr), "4WANTEDLEVEL:1 IRC Administrator %s Has Set %s Wanted Level To %d", user, pname, wl);
1004
			IRC_Say(groupID, channel, Wstr);
1005
		}
1006
	}
1007
	return 1;
1008
}
1009
stock GetPlayer2DZone(playerid, zone[], len)
1010
{
1011
	new Float:x, Float:y, Float:z;
1012
	GetPlayerPos(playerid, x, y, z);
1013
 	for(new i = 0; i != sizeof(gSAZones); i++ )
1014
 	{
1015
		if(x >= gSAZones[i][SAZONE_AREA][0] && x <= gSAZones[i][SAZONE_AREA][3] && y >= gSAZones[i][SAZONE_AREA][1] && y <= gSAZones[i][SAZONE_AREA][4])
1016
		{
1017
		    return format(zone, len, gSAZones[i][SAZONE_NAME], 0);
1018
		}
1019
	}
1020
	return 0;
1021
}