Advertisement
Deron_Green

G-IRC v0.1

Nov 23rd, 2012
1,006
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 51.95 KB | None | 0 0
  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
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement