Advertisement
adri1

a_signs.inc

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