adri1

a_signs.inc

Feb 8th, 2014
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.68 KB | None | 0 0
  1. /*
  2. * 'a_signs.inc'
  3. * Traffic Signs
  4. * Include made by adri1
  5. *
  6. *
  7. * Functions:
  8. CreateTrafficSign(signid, Float:x, Float:y, Float:z, Float:rz, Float:viewdistance = 200.0, string[] = "")
  9. DestroyTrafficSign(signid)
  10. IsValidTrafficSign(signid)
  11. *
  12. * Callbacks
  13. None...
  14. */
  15.  
  16.  
  17. #define SIGN_STOP 0
  18. #define SIGN_YIELD 1
  19. #define SIGN_PROHIBITED 2
  20. #define SIGN_PROHIBITED2 3
  21. #define SIGN_CROSSWALK 4
  22. #define SIGN_MAXVELOCITY 5
  23. #define SIGN_MINVELOCITY 6
  24. #define SIGN_MAXTONNE 7
  25. #define SIGN_WALKERONLY 8
  26. #define SIGN_BIKEONLY 9
  27. #define SIGN_BIKEPROHIBITED 10
  28. #define SIGN_PROHIBITEDDIR1 11
  29. #define SIGN_PROHIBITEDDIR2 12
  30. #define SIGN_PROHIBITEDDIR3 13
  31. #define SIGN_PROHIBITEDDIR4 14
  32. #define SIGN_GODIR1 15
  33. #define SIGN_GODIR2 16
  34. #define SIGN_GODIR3 17
  35. #define SIGN_GODIR4 18
  36. #define SIGN_TAXI 19
  37. #define SIGN_BUS 20
  38. #define SIGN_PARKING1 21
  39. #define SIGN_PARKING2 22
  40. #define MAX_SIGNS 500
  41.  
  42. enum TrafficSignEnumerator
  43. {
  44. M1,
  45. M2,
  46. M3,
  47. M4,
  48. M5
  49. }
  50. new TrafficSign[MAX_SIGNS][TrafficSignEnumerator];
  51. new SignCounter;
  52.  
  53. stock CreateTrafficSign(signid, Float:x, Float:y, Float:z, Float:rz, Float:viewdistance = 200.0, string[] = "")
  54. {
  55. switch(signid)
  56. {
  57. case SIGN_STOP:
  58. {
  59. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  60. SetDynamicObjectMaterial(trafficsign_id, 0, 967, "cj_barr_set_1", "Stop2_64");
  61. SetDynamicObjectMaterial(trafficsign_id, 1, 967, "cj_barr_set_1", "Stop2_64", 0xFFCCCCCC);
  62. SignCounter++;
  63. TrafficSign[SignCounter][M1] = trafficsign_id;
  64. return SignCounter;
  65. }
  66. case SIGN_YIELD:
  67. {
  68. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0, 0, rz, viewdistance, viewdistance);
  69. new Float:p[9];
  70. aTraffic_Position(trafficsign_id, -0.525, -0.05, 0.95, p[0], p[1], p[2]);
  71. aTraffic_Position(trafficsign_id, -0.5215, -0.055, 0.98, p[3], p[4], p[5]);
  72. aTraffic_Position(trafficsign_id, -0.525, -0.025, 0.95, p[6], p[7], p[8]);
  73.  
  74. CreateDynamicObjectEx(2986, p[0], p[1], p[2], -90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  75. CreateDynamicObjectEx(2986, p[3], p[4], p[5], -90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  76. CreateDynamicObjectEx(2986, p[6], p[7], p[8], -90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  77. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  78. SetDynamicObjectMaterial(trafficsign_id, 1, 0, "null", "null");
  79. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "5", 50, "Webdings", 100, 0, -65536, 0, 1);
  80. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "5", 50, "Webdings", 70, 0, 0xFFFFFFFF, 0, 1);
  81. SetDynamicObjectMaterialText(trafficsign_id+3, 0, "5", 50, "Webdings", 100, 0, 0xFFCCCCCC, 0, 1);
  82. SignCounter++;
  83. TrafficSign[SignCounter][M1] = trafficsign_id;
  84. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  85. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  86. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  87. return SignCounter;
  88. }
  89. case SIGN_PROHIBITED:
  90. {
  91. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  92. new Float:p[6];
  93. aTraffic_Position(trafficsign_id, -0.03, -0.03, 0.45, p[0], p[1], p[2]);
  94. aTraffic_Position(trafficsign_id, 0.48, -0.055, 0.835, p[3], p[4], p[5]);
  95.  
  96. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  97. CreateDynamicObjectEx(2986, p[3], p[4], p[5], -90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  98. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  99. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  100. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "-", 60, "Arial", 200, 0, -1, 0, 1);
  101. SignCounter++;
  102. TrafficSign[SignCounter][M1] = trafficsign_id;
  103. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  104. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  105. return SignCounter;
  106. }
  107. case SIGN_PROHIBITED2:
  108. {
  109. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  110. new Float:p[9];
  111. aTraffic_Position(trafficsign_id, -0.03, -0.03, 0.45, p[0], p[1], p[2]);
  112. aTraffic_Position(trafficsign_id, -0.025, -0.04, 0.455, p[3], p[4], p[5]);
  113. aTraffic_Position(trafficsign_id, 0.45, -0.045, 1.15, p[6], p[7], p[8]);
  114.  
  115. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  116. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  117. CreateDynamicObjectEx(2986, p[6], p[7], p[8], 115.5, 90.0000, rz-90, viewdistance, viewdistance);
  118. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  119. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  120. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "l", 60, "Wingdings", 90, 0, 0xFFFFFFFF, 0, 1);
  121. SetDynamicObjectMaterialText(trafficsign_id+3, 0, "\\", 60, "Arial", 95, 1, -65536, 0, 1);
  122. SignCounter++;
  123. TrafficSign[SignCounter][M1] = trafficsign_id;
  124. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  125. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  126. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  127. return SignCounter;
  128. }
  129. case SIGN_CROSSWALK:
  130. {
  131. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  132. new Float:p[9];
  133. aTraffic_Position(trafficsign_id, -0.52, -0.04, 0.9, p[0], p[1], p[2]);
  134. aTraffic_Position(trafficsign_id, -0.49, -0.06, 0.835, p[3], p[4], p[5]);
  135. aTraffic_Position(trafficsign_id, -0.5, -0.06, 0.95, p[6], p[7], p[8]);
  136.  
  137. CreateDynamicObjectEx(2986, p[0], p[1], p[2], -90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  138. CreateDynamicObjectEx(2986, p[3], p[4], p[5], -90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  139. CreateDynamicObjectEx(2986, p[6], p[7], p[8], 90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  140. SetDynamicObjectMaterial(trafficsign_id, 0, 18646, "matcolours", "lightblue", 0xFF00CCFF);
  141. SetDynamicObjectMaterial(trafficsign_id, 1, 18646, "matcolours", "grey");
  142. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "6", 50, "Webdings", 90, 0, 0xFFFFFFFF, 0, 1);
  143. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "||||||||", 60, "Arial", 20, 1, -16777216, 0, 1);
  144. SetDynamicObjectMaterialText(trafficsign_id+3, 0, "m", 60, "Webdings", 45, 0, -16777216, 0, 1);
  145. SignCounter++;
  146. TrafficSign[SignCounter][M1] = trafficsign_id;
  147. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  148. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  149. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  150. return SignCounter;
  151. }
  152. case SIGN_MAXVELOCITY:
  153. {
  154. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  155. new Float:p[9];
  156. aTraffic_Position(trafficsign_id, -0.03, -0.05, 0.45, p[0], p[1], p[2]);
  157. aTraffic_Position(trafficsign_id, -0.025, -0.055, 0.455, p[3], p[4], p[5]);
  158. aTraffic_Position(trafficsign_id, 0.48, -0.065, 0.95, p[6], p[7], p[8]);
  159.  
  160. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  161. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  162. CreateDynamicObjectEx(2986, p[6], p[7], p[8], 90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  163. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  164. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  165. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "l", 60, "Wingdings", 90, 0, 0xFFFFFFFF, 0, 1);
  166. SetDynamicObjectMaterialText(trafficsign_id+3, 0, string, 60, "Arial", 30, 1, 0xFF000000, 0, 1);
  167. SignCounter++;
  168. TrafficSign[SignCounter][M1] = trafficsign_id;
  169. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  170. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  171. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  172. return SignCounter;
  173. }
  174. case SIGN_MINVELOCITY:
  175. {
  176. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  177. new Float:p[6];
  178. aTraffic_Position(trafficsign_id, -0.03, -0.05, 0.45, p[0], p[1], p[2]);
  179. aTraffic_Position(trafficsign_id, 0.5, -0.06, 0.95, p[3], p[4], p[5]);
  180.  
  181. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0, 90, rz-90, viewdistance, viewdistance);
  182. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 90, 90, rz-90, viewdistance, viewdistance);
  183. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  184. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, 0xFF00CCFF, 0, 1);
  185. SetDynamicObjectMaterialText(trafficsign_id+2, 0, string, 60, "Arial", 30, 1, 0xFFFFFFFF, 0, 1);
  186. SignCounter++;
  187. TrafficSign[SignCounter][M1] = trafficsign_id;
  188. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  189. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  190. return SignCounter;
  191. }
  192. case SIGN_MAXTONNE:
  193. {
  194. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  195. new Float:p[9];
  196. aTraffic_Position(trafficsign_id, -0.03, -0.05, 0.45, p[0], p[1], p[2]);
  197. aTraffic_Position(trafficsign_id, -0.025, -0.055, 0.455, p[3], p[4], p[5]);
  198. aTraffic_Position(trafficsign_id, 0.48, -0.065, 0.95, p[6], p[7], p[8]);
  199.  
  200. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  201. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  202. CreateDynamicObjectEx(2986, p[6], p[7], p[8], 90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  203. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  204. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  205. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "l", 60, "Wingdings", 90, 0, 0xFFFFFFFF, 0, 1);
  206. SetDynamicObjectMaterialText(trafficsign_id+3, 0, string, 60, "Arial", 30, 1, 0xFF000000, 0, 1);
  207. SignCounter++;
  208. TrafficSign[SignCounter][M1] = trafficsign_id;
  209. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  210. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  211. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  212. return SignCounter;
  213. }
  214. case SIGN_WALKERONLY:
  215. {
  216. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  217. new Float:p[6];
  218. aTraffic_Position(trafficsign_id, -0.03, -0.025, 0.45, p[0], p[1], p[2]);
  219. aTraffic_Position(trafficsign_id, -0.5, -0.05, 0.95, p[3], p[4], p[5]);
  220.  
  221. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0, 90, rz-90, viewdistance, viewdistance);
  222. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  223. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  224. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, 0xFF00CCFF, 0, 1);
  225. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "m", 60, "Webdings", 45, 0, -16777216, 0, 1);
  226. SignCounter++;
  227. TrafficSign[SignCounter][M1] = trafficsign_id;
  228. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  229. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  230. return SignCounter;
  231. }
  232. case SIGN_BIKEONLY:
  233. {
  234. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  235. new Float:p[6];
  236. aTraffic_Position(trafficsign_id, -0.03, -0.025, 0.45, p[0], p[1], p[2]);
  237. aTraffic_Position(trafficsign_id, -0.5, -0.05, 0.975, p[3], p[4], p[5]);
  238.  
  239. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0, 90, rz-90, viewdistance, viewdistance);
  240. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  241. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  242. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, 0xFF00CCFF, 0, 1);
  243. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "b", 60, "Webdings", 65, 1, -16777216, 0, 1);
  244. SignCounter++;
  245. TrafficSign[SignCounter][M1] = trafficsign_id;
  246. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  247. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  248. return SignCounter;
  249. }
  250. case SIGN_BIKEPROHIBITED:
  251. {
  252. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  253. new Float:p[9];
  254. aTraffic_Position(trafficsign_id, -0.03, -0.03, 0.45, p[0], p[1], p[2]);
  255. aTraffic_Position(trafficsign_id, -0.025, -0.04, 0.455, p[3], p[4], p[5]);
  256. aTraffic_Position(trafficsign_id, -0.5, -0.06, 0.975, p[6], p[7], p[8]);
  257. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  258. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  259. CreateDynamicObjectEx(2986, p[6], p[7], p[8], 90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  260. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  261. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  262. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "l", 60, "Wingdings", 90, 0, 0xFFFFFFFF, 0, 1);
  263. SetDynamicObjectMaterialText(trafficsign_id+3, 0, "b", 60, "Webdings", 65, 1, -16777216, 0, 1);
  264. SignCounter++;
  265. TrafficSign[SignCounter][M1] = trafficsign_id;
  266. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  267. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  268. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  269. return SignCounter;
  270. }
  271. case SIGN_PROHIBITEDDIR1:
  272. {
  273. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  274. new Float:p[9];
  275. aTraffic_Position(trafficsign_id, -0.03, -0.03, 0.45, p[0], p[1], p[2]);
  276. aTraffic_Position(trafficsign_id, -0.025, -0.04, 0.455, p[3], p[4], p[5]);
  277. aTraffic_Position(trafficsign_id, -0.485, -0.06, 0.945, p[6], p[7], p[8]);
  278. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  279. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  280. CreateDynamicObjectEx(2986, p[6], p[7], p[8], 90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  281. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  282. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  283. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "l", 60, "Wingdings", 90, 0, 0xFFFFFFFF, 0, 1);
  284. SetDynamicObjectMaterialText(trafficsign_id+3, 0, "ñ", 60, "Wingdings", 65, 1, -16777216, 0, 1);
  285. SignCounter++;
  286. TrafficSign[SignCounter][M1] = trafficsign_id;
  287. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  288. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  289. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  290. return SignCounter;
  291. }
  292. case SIGN_PROHIBITEDDIR2:
  293. {
  294. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  295. new Float:p[9];
  296. aTraffic_Position(trafficsign_id, -0.03, -0.03, 0.45, p[0], p[1], p[2]);
  297. aTraffic_Position(trafficsign_id, -0.025, -0.04, 0.455, p[3], p[4], p[5]);
  298. aTraffic_Position(trafficsign_id, -0.015, -0.06, 1.45, p[6], p[7], p[8]);
  299. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  300. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  301. CreateDynamicObjectEx(2986, p[6], p[7], p[8], 0.0000, -90.0000, rz-90, viewdistance, viewdistance);
  302. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  303. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  304. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "l", 60, "Wingdings", 90, 0, 0xFFFFFFFF, 0, 1);
  305. SetDynamicObjectMaterialText(trafficsign_id+3, 0, "ñ", 60, "Wingdings", 65, 1, -16777216, 0, 1);
  306. SignCounter++;
  307. TrafficSign[SignCounter][M1] = trafficsign_id;
  308. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  309. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  310. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  311. return SignCounter;
  312. }
  313. case SIGN_PROHIBITEDDIR3:
  314. {
  315. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  316. new Float:p[9];
  317. aTraffic_Position(trafficsign_id, -0.03, -0.03, 0.45, p[0], p[1], p[2]);
  318. aTraffic_Position(trafficsign_id, -0.025, -0.04, 0.455, p[3], p[4], p[5]);
  319. aTraffic_Position(trafficsign_id, 0.485, -0.06, 0.95, p[6], p[7], p[8]);
  320. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  321. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  322. CreateDynamicObjectEx(2986, p[6], p[7], p[8], -90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  323. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  324. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  325. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "l", 60, "Wingdings", 90, 0, 0xFFFFFFFF, 0, 1);
  326. SetDynamicObjectMaterialText(trafficsign_id+3, 0, "ñ", 60, "Wingdings", 65, 1, -16777216, 0, 1);
  327. SignCounter++;
  328. TrafficSign[SignCounter][M1] = trafficsign_id;
  329. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  330. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  331. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  332. return SignCounter;
  333. }
  334. case SIGN_PROHIBITEDDIR4:
  335. {
  336. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  337. new Float:p[9];
  338. aTraffic_Position(trafficsign_id, -0.03, -0.03, 0.45, p[0], p[1], p[2]);
  339. aTraffic_Position(trafficsign_id, -0.025, -0.04, 0.455, p[3], p[4], p[5]);
  340. aTraffic_Position(trafficsign_id, 0.015, -0.06, 0.45, p[6], p[7], p[8]);
  341. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  342. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, 90.0000, rz-90, viewdistance, viewdistance);
  343. CreateDynamicObjectEx(2986, p[6], p[7], p[8], 180.0000, -90.0000, rz-90, viewdistance, viewdistance);
  344. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  345. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, -65536, 0, 1);
  346. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "l", 60, "Wingdings", 90, 0, 0xFFFFFFFF, 0, 1);
  347. SetDynamicObjectMaterialText(trafficsign_id+3, 0, "ñ", 60, "Wingdings", 65, 1, -16777216, 0, 1);
  348. SignCounter++;
  349. TrafficSign[SignCounter][M1] = trafficsign_id;
  350. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  351. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  352. TrafficSign[SignCounter][M4] = trafficsign_id+3;
  353. return SignCounter;
  354. }
  355. case SIGN_GODIR1:
  356. {
  357. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  358. new Float:p[6];
  359. aTraffic_Position(trafficsign_id, -0.03, -0.025, 0.45, p[0], p[1], p[2]);
  360. aTraffic_Position(trafficsign_id, -0.5, -0.06, 0.945, p[3], p[4], p[5]);
  361.  
  362. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0, 90, rz-90, viewdistance, viewdistance);
  363. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  364. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  365. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, 0xFF00CCFF, 0, 1);
  366. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "ñ", 60, "Wingdings", 65, 1, -16777216, 0, 1);
  367. SignCounter++;
  368. TrafficSign[SignCounter][M1] = trafficsign_id;
  369. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  370. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  371. return SignCounter;
  372. }
  373. case SIGN_GODIR2:
  374. {
  375. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  376. new Float:p[6];
  377. aTraffic_Position(trafficsign_id, -0.03, -0.025, 0.45, p[0], p[1], p[2]);
  378. aTraffic_Position(trafficsign_id, -0.015, -0.06, 1.45, p[3], p[4], p[5]);
  379.  
  380. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0, 90, rz-90, viewdistance, viewdistance);
  381. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 0.0000, -90.0000, rz-90, viewdistance, viewdistance);
  382. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  383. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, 0xFF00CCFF, 0, 1);
  384. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "ñ", 60, "Wingdings", 65, 1, -16777216, 0, 1);
  385. SignCounter++;
  386. TrafficSign[SignCounter][M1] = trafficsign_id;
  387. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  388. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  389. return SignCounter;
  390. }
  391. case SIGN_GODIR3:
  392. {
  393. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  394. new Float:p[6];
  395. aTraffic_Position(trafficsign_id, -0.03, -0.025, 0.45, p[0], p[1], p[2]);
  396. aTraffic_Position(trafficsign_id, 0.5, -0.06, 0.95, p[3], p[4], p[5]);
  397.  
  398. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0, 90, rz-90, viewdistance, viewdistance);
  399. CreateDynamicObjectEx(2986, p[3], p[4], p[5], -90.0000, -90.0000, rz-90, viewdistance, viewdistance);
  400. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  401. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, 0xFF00CCFF, 0, 1);
  402. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "ñ", 60, "Wingdings", 65, 1, -16777216, 0, 1);
  403. SignCounter++;
  404. TrafficSign[SignCounter][M1] = trafficsign_id;
  405. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  406. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  407. return SignCounter;
  408. }
  409. case SIGN_GODIR4:
  410. {
  411. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  412. new Float:p[6];
  413. aTraffic_Position(trafficsign_id, -0.03, -0.025, 0.45, p[0], p[1], p[2]);
  414. aTraffic_Position(trafficsign_id, 0.015, -0.06, 0.45, p[3], p[4], p[5]);
  415.  
  416. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 0, 90, rz-90, viewdistance, viewdistance);
  417. CreateDynamicObjectEx(2986, p[3], p[4], p[5], 180.0000, -90.0000, rz-90, viewdistance, viewdistance);
  418. SetDynamicObjectMaterial(trafficsign_id, 0, 0, "null", "null");
  419. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "l", 60, "Wingdings", 120, 0, 0xFF00CCFF, 0, 1);
  420. SetDynamicObjectMaterialText(trafficsign_id+2, 0, "ñ", 60, "Wingdings", 65, 1, -16777216, 0, 1);
  421. SignCounter++;
  422. TrafficSign[SignCounter][M1] = trafficsign_id;
  423. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  424. TrafficSign[SignCounter][M3] = trafficsign_id+2;
  425. return SignCounter;
  426. }
  427. case SIGN_TAXI:
  428. {
  429. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  430. new Float:p[3];
  431. aTraffic_Position(trafficsign_id, 0.5, -0.06, 0.95, p[0], p[1], p[2]);
  432.  
  433. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  434. SetDynamicObjectMaterial(trafficsign_id, 0, 18646, "matcolours", "lightblue", 0xFF00CCFF);
  435. SetDynamicObjectMaterial(trafficsign_id, 1, 18646, "matcolours", "grey");
  436. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "TAXI", 60, "Arial", 30, 1, -16777216, 0, 1);
  437. SignCounter++;
  438. TrafficSign[SignCounter][M1] = trafficsign_id;
  439. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  440. return SignCounter;
  441. }
  442. case SIGN_BUS:
  443. {
  444. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  445. new Float:p[3];
  446. aTraffic_Position(trafficsign_id, 0.5, -0.06, 0.95, p[0], p[1], p[2]);
  447.  
  448. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  449. SetDynamicObjectMaterial(trafficsign_id, 0, 18646, "matcolours", "lightblue", 0xFF00CCFF);
  450. SetDynamicObjectMaterial(trafficsign_id, 1, 18646, "matcolours", "grey");
  451. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "BUS", 60, "Arial", 30, 1, -16777216, 0, 1);
  452. SignCounter++;
  453. TrafficSign[SignCounter][M1] = trafficsign_id;
  454. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  455. return SignCounter;
  456. }
  457. case SIGN_PARKING1:
  458. {
  459. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  460. new Float:p[3];
  461. aTraffic_Position(trafficsign_id, 0.5, -0.06, 0.95, p[0], p[1], p[2]);
  462.  
  463. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  464. SetDynamicObjectMaterial(trafficsign_id, 0, 18646, "matcolours", "lightblue", 0xFF00CCFF);
  465. SetDynamicObjectMaterial(trafficsign_id, 1, 18646, "matcolours", "grey");
  466. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "PARKING", 60, "Arial", 15, 1, -16777216, 0, 1);
  467. SignCounter++;
  468. TrafficSign[SignCounter][M1] = trafficsign_id;
  469. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  470. return SignCounter;
  471. }
  472. case SIGN_PARKING2:
  473. {
  474. new trafficsign_id = CreateDynamicObjectEx(8548, x, y, z, 0.0, 0.0, rz, viewdistance, viewdistance);
  475. new Float:p[3];
  476. aTraffic_Position(trafficsign_id, 0.5, -0.06, 0.95, p[0], p[1], p[2]);
  477.  
  478. CreateDynamicObjectEx(2986, p[0], p[1], p[2], 90.0000, 90.0000, rz-90, viewdistance, viewdistance);
  479. SetDynamicObjectMaterial(trafficsign_id, 0, 18646, "matcolours", "lightblue", 0xFF00CCFF);
  480. SetDynamicObjectMaterial(trafficsign_id, 1, 18646, "matcolours", "grey");
  481. SetDynamicObjectMaterialText(trafficsign_id+1, 0, "P", 60, "Arial", 60, 1, -16777216, 0, 1);
  482. SignCounter++;
  483. TrafficSign[SignCounter][M1] = trafficsign_id;
  484. TrafficSign[SignCounter][M2] = trafficsign_id+1;
  485. return SignCounter;
  486. }
  487. }
  488. return -1;
  489. }
  490.  
  491. stock DestroyTrafficSign(signid)
  492. {
  493. if(IsValidDynamicObject(TrafficSign[signid][M1]))
  494. {
  495. DestroyDynamicObject(TrafficSign[signid][M1]);
  496. SignCounter--;
  497. if(IsValidDynamicObject(TrafficSign[signid][M2])) DestroyDynamicObject(TrafficSign[signid][M2]);
  498. if(IsValidDynamicObject(TrafficSign[signid][M3])) DestroyDynamicObject(TrafficSign[signid][M3]);
  499. if(IsValidDynamicObject(TrafficSign[signid][M4])) DestroyDynamicObject(TrafficSign[signid][M4]);
  500. if(IsValidDynamicObject(TrafficSign[signid][M5])) DestroyDynamicObject(TrafficSign[signid][M5]);
  501. }
  502. }
  503.  
  504. stock IsValidTrafficSign(signid)
  505. {
  506. if(IsValidDynamicObject(TrafficSign[signid][M1])) return true;
  507. return false;
  508. }
  509.  
  510. stock aTraffic_Position(objectid, Float:offset_x, Float:offset_y, Float:offset_z, &Float:x, &Float:y, &Float:z)
  511. {
  512. new Float:object_px,
  513. Float:object_py,
  514. Float:object_pz,
  515. Float:object_rx,
  516. Float:object_ry,
  517. Float:object_rz;
  518. GetDynamicObjectPos(objectid, object_px, object_py, object_pz);
  519. GetDynamicObjectRot(objectid, object_rx, object_ry, object_rz);
  520. new Float:cos_x = floatcos(object_rx, degrees),
  521. Float:cos_y = floatcos(object_ry, degrees),
  522. Float:cos_z = floatcos(object_rz, degrees),
  523. Float:sin_x = floatsin(object_rx, degrees),
  524. Float:sin_y = floatsin(object_ry, degrees),
  525. Float:sin_z = floatsin(object_rz, degrees);
  526. x = object_px + offset_x * cos_y * cos_z - offset_x * sin_x * sin_y * sin_z - offset_y * cos_x * sin_z + offset_z * sin_y * cos_z + offset_z * sin_x * cos_y * sin_z;
  527. y = object_py + offset_x * cos_y * sin_z + offset_x * sin_x * sin_y * cos_z + offset_y * cos_x * cos_z + offset_z * sin_y * sin_z - offset_z * sin_x * cos_y * cos_z;
  528. z = object_pz - offset_x * cos_x * sin_y + offset_y * sin_x + offset_z * cos_x * cos_y;
  529. }
Advertisement
Add Comment
Please, Sign In to add comment