Fitri_Fahim

Untitled

Jun 14th, 2013
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.41 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_http>
  3. #include <streamer>
  4. #include <dini>
  5. #include <MPM>
  6. #include <sscanf2>
  7. #pragma tabsize 0
  8.  
  9. #define MAX_BLOCKS 16000//Max amount of blocks on the ser
  10. #define DECORATIONS_ID 2000
  11. #define DOOR_1 1491
  12. #define DOOR_2 1502
  13. #define SIGN 3927
  14. #define SIGN_ID DECORATIONS_ID+5
  15. #define DOOR_RAM_MODEL 19397
  16.  
  17. #define DOOR_RIGHT_X 0.7800
  18. #define DOOR_RIGHT_Y 0.0
  19. #define DOOR_RIGHT_Z 1.7600
  20. #define DOOR_RIGHT_ROT_X 0
  21. #define DOOR_RIGHT_ROT_Y 0
  22. #define DOOR_RIGHT_ROT_Z 90
  23.  
  24. #define DOOR_LEFT_X (-0.2930)
  25. #define DOOR_LEFT_Y 0.0
  26. #define DOOR_LEFT_Z 1.2048
  27. #define DOOR_LEFT_ROT_X 90
  28. #define DOOR_LEFT_ROT_Y 0
  29. #define DOOR_LEFT_ROT_Z 0
  30.  
  31.  
  32.  
  33. #define DOOR_UP_X 0.7678
  34. #define DOOR_UP_Y 0
  35. #define DOOR_UP_Z 2.730
  36. #define DOOR_UP_ROT_X 0
  37. #define DOOR_UP_ROT_Y 90
  38. #define DOOR_UP_ROT_Z -90
  39.  
  40.  
  41.  
  42. #define SIGN_RAM_MODEL 2258
  43.  
  44. #define SIGN_RIGHT_X (-0.24)
  45. #define SIGN_RIGHT_Y (-0.07)
  46. #define SIGN_RIGHT_Z 0.75
  47. #define SIGN_RIGHT_ROT_X 0
  48. #define SIGN_RIGHT_ROT_Y 0
  49. #define SIGN_RIGHT_ROT_Z 0
  50.  
  51.  
  52. #pragma unused ret_memcpy
  53.  
  54. #define MAPFILE "GLOBAL_MAP.sav"//File of saved map
  55.  
  56.  
  57. new blocksam=0;
  58.  
  59. new SAVED[MAX_BLOCKS];
  60. new BlockAdd[MAX_BLOCKS];
  61. new Float:BlockX[MAX_BLOCKS];
  62. new Float:BlockY[MAX_BLOCKS];
  63. new Float:BlockZ[MAX_BLOCKS];
  64.  
  65. new CUBE_MODEL[] =//Array which has object id of all cubes
  66. {
  67. 1685,//grass
  68. 1685,//ground
  69. 1685,//rock
  70. 1685,//water
  71. 1685,//sand
  72. 1685,//lava
  73. 1685,//ice
  74.  
  75. 1685,//wood1
  76. 1685,//wood2
  77. 1685,//wood3
  78.  
  79. 1685,//stone
  80. 1685,//stone
  81. 1685,//stone
  82. 1685,//stone
  83. 1685,//stone
  84. 1685,//stone
  85. 1685,//stone
  86.  
  87. 1685,//bark
  88.  
  89. 1685,//new wood
  90. 1685,//new wood
  91. 1685,//new wood
  92. 1685,//new wood
  93.  
  94. 1685,//black
  95. 1685,//white
  96. 1685,//red
  97. 1685,//orange
  98. 1685,//yellow
  99. 1685,//green
  100. 1685,//green-blue
  101. 1685,//blue
  102. 1685,//Purple
  103.  
  104. 1685,//white
  105. 1685,//red
  106. 1685,//orange
  107. 1685,//yellow
  108. 1685,//green
  109. 1685,//green-blue
  110. 1685,//blue
  111. 1685,//Purple
  112.  
  113.  
  114. 1685,//fencing
  115. 1685,//fencing
  116. 1685,//fencing
  117. };
  118.  
  119.  
  120. new cmodel[] =//array for changing cubes textures
  121. {
  122. 17880,//grass
  123. 16134,//ground
  124. 898,//rock
  125. 3951,//water
  126. 16202,//sand
  127. 898,//lava
  128. 898,//ice
  129.  
  130. 1224,//wood1
  131. 3260,//wood3
  132. 2988,//wood6
  133.  
  134. 4724,//stone
  135. 19355,//stone
  136. 19364,//stone
  137. 19357,//stone
  138. 19359,//stone
  139. 19363,//stone
  140. 19371,//stone
  141.  
  142. 832,//bark
  143.  
  144. 19376,//new wood
  145. 19378,//new wood
  146. 19379,//new wood
  147. 19356,//new wood
  148.  
  149. 19357,//black
  150. 19357,//white
  151. 19357,//red
  152. 19357,//orange
  153. 19357,//yellow
  154. 19357,//green
  155. 19357,//green-blue
  156. 19357,//blue
  157. 19357,//Purple
  158.  
  159. 19466,//white
  160. 19466,//red
  161. 19466,//orange
  162. 19466,//yellow
  163. 19466,//green
  164. 19466,//green-blue
  165. 19466,//blue
  166. 19466,//Purple
  167.  
  168.  
  169. 983,//fencing
  170. 3282,//fencing
  171. 4100,//fencing
  172. };
  173.  
  174.  
  175. new ctxd[][] =//array for changing cubes textures
  176. {
  177. "landhub",//grass
  178. "desert",//ground
  179. "underwater",//rock
  180. "rczero_track",//water
  181. "des_cen",//sand
  182. "underwater",//lava
  183. "underwater",//ice
  184.  
  185.  
  186. "boxes",//wood1
  187. "country_breakable",//wood3
  188. "kcomp_gx",//wood6
  189.  
  190. "skyscr1_lan2",//stone
  191. "all_walls",//stone
  192. "all_walls",//stone
  193. "all_walls",//stone
  194. "all_walls",//stone
  195. "all_walls",//stone
  196. "all_walls",//stone
  197.  
  198. "gta_brokentrees",//bark
  199.  
  200. "all_walls",//new wood
  201. "all_walls",//new wood
  202. "all_walls",//new wood
  203. "all_walls",//new wood
  204.  
  205. "all_walls",//black
  206. "all_walls",//white
  207. "all_walls",//red
  208. "all_walls",//orange
  209. "all_walls",//yellow
  210. "all_walls",//green
  211. "all_walls",//green-blue
  212. "all_walls",//blue
  213. "all_walls",//Purple
  214.  
  215. "lsmall_shops",//white
  216. "lsmall_shops",//red
  217. "lsmall_shops",//orange
  218. "lsmall_shops",//yellow
  219. "lsmall_shops",//green
  220. "lsmall_shops",//green-blue
  221. "lsmall_shops",//blue
  222. "lsmall_shops",//Purple
  223.  
  224.  
  225. "bar_chainlink",//fencing
  226. "country_breakable",//fencing
  227. "lanfireesc_tr"//fencing
  228. };
  229.  
  230. new ctexture[][] =//array for changing cubes textures
  231. {
  232. "yardgrass1",//grass
  233. "des_redrock1",//ground
  234. "greyrockbig",//rock
  235. "waterclear256",//water
  236. "des_ripplsand",//sand
  237. "greyrockbig",//lava
  238. "greyrockbig",//ice
  239.  
  240. "crate128",//wood1
  241. "des_ghotwood1",//wood3
  242. "kmwood_gate",//wood6
  243.  
  244. "sl_librarywall1",//stone
  245. "ab_corWallUpr",//stone
  246. "mp_carter_bwall",//stone
  247. "cj_white_wall2",//stone
  248. "copbtm_brown",//stone
  249. "motel_wall3",//stone
  250. "stormdrain3_nt",//stone
  251.  
  252. "CJ_bark",//bark
  253.  
  254. "gym_floor5",//new wood
  255. "mp_diner_woodwall",//new wood
  256. "mp_shop_floor2",//new wood
  257. "CJ_LIGHTWOOD",//new wood
  258.  
  259. "cj_white_wall2",//black
  260. "cj_white_wall2",//white
  261. "cj_white_wall2",//red
  262. "cj_white_wall2",//orange
  263. "cj_white_wall2",//yellow
  264. "cj_white_wall2",//green
  265. "cj_white_wall2",//green-blue
  266. "cj_white_wall2",//blue
  267. "cj_white_wall2",//Purple
  268.  
  269.  
  270. "lsmall_window01",//white
  271. "lsmall_window01",//red
  272. "lsmall_window01",//orange
  273. "lsmall_window01",//yellow
  274. "lsmall_window01",//green
  275. "lsmall_window01",//green-blue
  276. "lsmall_window01",//blue
  277. "lsmall_window01",//Purple
  278.  
  279. "awirex2",//fencing
  280. "Gen_Meshfencing",//fencing
  281. "Upt_Fence_Mesh"//fencing//fencing
  282. };
  283.  
  284. new ccolor[] =//array for changing cubes textures
  285. {
  286. 0xFF7FFF00,//grass
  287. 0xFF834E1D,//ground
  288. 0xFFD5D5D5,//rock
  289. 0xEE008CF0,//water
  290. 0xFFFFF5B0,//sand
  291. 0xFFE32636,//lava
  292. 0x907FFFD4,//ice
  293.  
  294.  
  295. 0xFFFFFFFF,//wood1
  296. 0xFFFFFFFF,//wood2
  297. 0xFFFFFFFF,//wood3
  298.  
  299. 0xFFFFFFFF,//stone
  300. 0xFFFFFFFF,//stone
  301. 0xFFFFFFFF,//stone
  302. 0xFFFFFFFF,//stone
  303. 0xFFFFFFFF,//stone
  304. 0xFFFFFFFF,//stone
  305. 0xFFFFFFFF,//stone
  306.  
  307. 0xFFFFFFFF,//bark
  308.  
  309. 0xFFFFFFFF,//wood
  310. 0xFFFFFFFF,//wood
  311. 0xFFFFFFFF,//wood
  312. 0xFFFFFFFF,//wood
  313.  
  314. 0xFF000000,//black
  315. 0,//white
  316. 0xFFFF0000,//red
  317. 0xFFffa500,//orange
  318. 0xFFFFFF00,//yellow
  319. 0xFF00FF00,//green
  320. 0xFF00ffa0,//green-blue
  321. 0xFF0047ab,//blue
  322. 0xFFFF00FF,//Purple
  323.  
  324. 0xFFFFFFFF,//white
  325. 0xFFFF0000,//red
  326. 0xFFffa500,//orange
  327. 0xFFFFFF00,//yellow
  328. 0xFF00FF00,//green
  329. 0xFF00ffa0,//green-blue
  330. 0xFF3636cc,//blue
  331. 0xFFFF00FF,//Purple
  332.  
  333.  
  334. 0xFFFFFFFF,//fencing
  335. 0xFFFFFFFF,//fencing
  336. 0xFFFFFFFF,//fencing
  337. };
  338.  
  339.  
  340. new DECO_MODEL[] =//Array which has object id of all decorations
  341. {
  342. 1671,//chair
  343. 1720,//chair2
  344. 1711,//armchair
  345. 2635,//tabel2
  346. 1408,//fencing
  347. 3927,//sign
  348. 1802,//bed3
  349. 912,//cabinet1
  350. 2204,//cabinet2
  351. 2328,//cabinet3
  352. 3361,//stairs
  353. 1491,//door1
  354. 1502,//door2
  355. 1223,//Streetlight
  356. 970,//fencing 2
  357.  
  358. 617,//tree
  359. 659,//tree
  360. 673,//tree
  361. 732,//tree
  362. 3506,//tree
  363. 736,//tree
  364. 685,//tree
  365. 820,//grass
  366. 821,//grass
  367. 19473,//grass
  368. 869,//flowers
  369. 870//flowers
  370. };
  371. new Float:DECO_Z_INDEX[] =//Array which has value which must be added to Z corrdinate decor
  372. {
  373. -0.3,//chair
  374. -0.7,//chair2
  375. -0.8,//armchair
  376. -0.5,//table2
  377. 0.0,//fencing
  378. 1.3,//sign
  379. -0.6,//bed3
  380. -0.3,//cabinet1
  381. -0.7,//cabinet2
  382. -0.7,//cabinet3
  383. -1.3,//stairs
  384. -0.7,//door1
  385. -0.7,//door2
  386. -0.9,//Streetlight
  387. -0.1,//fencing2
  388.  
  389. -1.5,//tree
  390. -1.5,//tree
  391. -1.5,//tree
  392. -1.5,//tree
  393. -1.5,//tree
  394. 9.4,//tree
  395. -1.5,//tree
  396. -0.9,//grass
  397. -0.9,//grass
  398. -0.9,//grass
  399. -0.4689,//flowers
  400. -0.6724//flowers
  401. };
  402. new Float:DECO_X_INDEX[] =//Array which has value which must be added to X corrdinate decor
  403. {
  404. 0.0,//chair
  405. 0.0,//chair2
  406. 0.0,//armchair
  407. 0.0,//table2
  408. 0.0,//fencing
  409. 0.0,//sign
  410. -0.5,//bed3
  411. 0.0,//cabinet1
  412. -1.1,//cabinet2
  413. 0.0,//cabinet3
  414. 2.0,//stairs
  415. -0.8,//door1
  416. -0.8,//door2
  417. 0.0,//Streetlight
  418. 0.0,//fencing2
  419.  
  420. 0.0,//tree
  421. 0.0,//tree
  422. 0.0,//tree
  423. 0.0,//tree
  424. 0.0,//tree
  425. 0.0,//tree
  426. 0.0,//tree
  427. 0.0,//grass
  428. 0.0,//grass
  429. 0.0,//grass
  430. 0.0,//flowers
  431. 0.0//flowers
  432. };
  433. new Float:DECO_Y_INDEX[] =//Array which has value which must be added to Z corrdinate of decor
  434. {
  435. 0.0,//chair
  436. 0.0,//chair2
  437. 0.0,//armchair
  438. 0.0,//table2
  439. 0.0,//fencing
  440. 0.0,//sign
  441. -2.0,//bed3
  442. 0.0,//cabinet1
  443. 0.0,//cabinet2
  444. -1.1,//cabinet3
  445. 0.0,//stairs
  446. 0.0,//door1
  447. 0.0,//door2
  448. 0.0,//Streetlight
  449. 0.0,//fencing2
  450.  
  451. 0.0,//tree
  452. 0.0,//tree
  453. 0.0,//tree
  454. 0.0,//tree
  455. 0.0,//tree
  456. 0.0,//tree
  457. 0.0,//tree
  458. 0.0,//grass
  459. 0.0,//grass
  460. 0.0,//grass
  461. 0.0,//flowers
  462. 0.0//flowers
  463. };
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483. main()
  484. {
  485. print("\n----------------------------------");
  486. print(" This is a blank GameModeScript");
  487. print("----------------------------------\n");
  488.  
  489. //printf("GetVehicleComponentType %u",GetVehicleComponentType(1100));
  490.  
  491. }
  492.  
  493. CreateSign(blockmodel,Float:x,Float:y,Float:z,rot=0)
  494. {
  495. new ob,dob[4];
  496.  
  497. if(rot==0) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x+DECO_X_INDEX[blockmodel-DECORATIONS_ID],y+DECO_Y_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  498. if(rot==90) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x-DECO_Y_INDEX[blockmodel-DECORATIONS_ID],y+DECO_X_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  499.  
  500. if(rot==180) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x-DECO_X_INDEX[blockmodel-DECORATIONS_ID],y-DECO_Y_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  501. if(rot==270) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x+DECO_Y_INDEX[blockmodel-DECORATIONS_ID],y-DECO_X_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  502.  
  503. if(rot==0)
  504. {
  505. dob[0] = CreateDynamicObjectEx(SIGN_RAM_MODEL,x+DECO_X_INDEX[blockmodel-DECORATIONS_ID]+SIGN_RIGHT_X,y+DECO_Y_INDEX[blockmodel-DECORATIONS_ID]+SIGN_RIGHT_Y,z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID]+SIGN_RIGHT_Z, SIGN_RIGHT_ROT_X,SIGN_RIGHT_ROT_Y,SIGN_RIGHT_ROT_Z+rot,900,100);
  506. }
  507.  
  508. if(rot==90)
  509. {
  510. dob[0] = CreateDynamicObjectEx(SIGN_RAM_MODEL,x-DECO_Y_INDEX[blockmodel-DECORATIONS_ID]-SIGN_RIGHT_Y,y+DECO_X_INDEX[blockmodel-DECORATIONS_ID]+SIGN_RIGHT_X,z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID]+SIGN_RIGHT_Z, SIGN_RIGHT_ROT_X,SIGN_RIGHT_ROT_Y,SIGN_RIGHT_ROT_Z+rot,900,100);
  511. }
  512.  
  513. if(rot==180)
  514. {
  515. dob[0] = CreateDynamicObjectEx(SIGN_RAM_MODEL,x-DECO_X_INDEX[blockmodel-DECORATIONS_ID]-SIGN_RIGHT_X,y-DECO_Y_INDEX[blockmodel-DECORATIONS_ID]-SIGN_RIGHT_Y,z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID]+SIGN_RIGHT_Z, SIGN_RIGHT_ROT_X,SIGN_RIGHT_ROT_Y,SIGN_RIGHT_ROT_Z+rot,900,100);
  516. }
  517.  
  518. if(rot==270)
  519. {
  520. dob[0] = CreateDynamicObjectEx(SIGN_RAM_MODEL,x+DECO_Y_INDEX[blockmodel-DECORATIONS_ID]+SIGN_RIGHT_Y,y-DECO_X_INDEX[blockmodel-DECORATIONS_ID]-SIGN_RIGHT_X,z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID]+SIGN_RIGHT_Z, SIGN_RIGHT_ROT_X,SIGN_RIGHT_ROT_Y,SIGN_RIGHT_ROT_Z+rot,900,100);
  521. }
  522.  
  523. SetDynamicObjectMaterialText(dob[0],0,"Blank sign",OBJECT_MATERIAL_SIZE_256x128,"Arial",36,1,0xFF000000,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  524. BlockX[ob]=x;
  525. BlockY[ob]=y;
  526. BlockZ[ob]=z;
  527. BlockAdd[ob]=dob[0];
  528. return ob;
  529. }
  530.  
  531. CreateDoor(blockmodel,Float:x,Float:y,Float:z,rot=0)
  532. {
  533. new ob,dob[4];
  534.  
  535. if(rot==0) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x+DECO_X_INDEX[blockmodel-DECORATIONS_ID],y+DECO_Y_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  536. if(rot==90) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x-DECO_Y_INDEX[blockmodel-DECORATIONS_ID],y+DECO_X_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  537.  
  538. if(rot==180) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x-DECO_X_INDEX[blockmodel-DECORATIONS_ID],y-DECO_Y_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  539. if(rot==270) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x+DECO_Y_INDEX[blockmodel-DECORATIONS_ID],y-DECO_X_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  540.  
  541. if(rot==0)
  542. {
  543. dob[0] = CreateDynamicObjectEx(DOOR_RAM_MODEL,x+DECO_X_INDEX[blockmodel-DECORATIONS_ID]+DOOR_RIGHT_X,y+DECO_Y_INDEX[blockmodel-DECORATIONS_ID]+DOOR_RIGHT_Y,z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID]+DOOR_RIGHT_Z, DOOR_RIGHT_ROT_X,DOOR_RIGHT_ROT_Y,DOOR_RIGHT_ROT_Z+rot,900,100);
  544. }
  545.  
  546. if(rot==90)
  547. {
  548. dob[0] = CreateDynamicObjectEx(DOOR_RAM_MODEL,x-DECO_Y_INDEX[blockmodel-DECORATIONS_ID]-DOOR_RIGHT_Y,y+DECO_X_INDEX[blockmodel-DECORATIONS_ID]+DOOR_RIGHT_X,z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID]+DOOR_RIGHT_Z, DOOR_RIGHT_ROT_X,DOOR_RIGHT_ROT_Y,DOOR_RIGHT_ROT_Z+rot,900,100);
  549. }
  550.  
  551. if(rot==180)
  552. {
  553. dob[0] = CreateDynamicObjectEx(DOOR_RAM_MODEL,x-DECO_X_INDEX[blockmodel-DECORATIONS_ID]-DOOR_RIGHT_X,y-DECO_Y_INDEX[blockmodel-DECORATIONS_ID]-DOOR_RIGHT_Y,z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID]+DOOR_RIGHT_Z, DOOR_RIGHT_ROT_X,DOOR_RIGHT_ROT_Y,DOOR_RIGHT_ROT_Z+rot,900,100);
  554. }
  555.  
  556. if(rot==270)
  557. {
  558. dob[0] = CreateDynamicObjectEx(DOOR_RAM_MODEL,x+DECO_Y_INDEX[blockmodel-DECORATIONS_ID]+DOOR_RIGHT_Y,y-DECO_X_INDEX[blockmodel-DECORATIONS_ID]-DOOR_RIGHT_X,z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID]+DOOR_RIGHT_Z, DOOR_RIGHT_ROT_X,DOOR_RIGHT_ROT_Y,DOOR_RIGHT_ROT_Z+rot,900,100);
  559. }
  560.  
  561. BlockX[ob]=x;
  562. BlockY[ob]=y;
  563. BlockZ[ob]=z;
  564. BlockAdd[ob]=dob[0];
  565. return ob;
  566. }
  567.  
  568. CreateBlock(blockmodel,Float:x, Float:y, Float:z,rot=0)
  569. {
  570. new ob;
  571. if(blockmodel<DECORATIONS_ID)
  572. {
  573. ob = CreateDynamicObjectEx(CUBE_MODEL[blockmodel],x,y,z, 0,0,0,900,100);
  574. SetDynamicObjectMaterial(ob, 0, cmodel[blockmodel], ctxd[blockmodel], ctexture[blockmodel], ccolor[blockmodel]);
  575. BlockX[ob]=x;
  576. BlockY[ob]=y;
  577. BlockZ[ob]=z;
  578. }
  579. else
  580. {
  581. if(DECO_MODEL[blockmodel-DECORATIONS_ID]==DOOR_1 || DECO_MODEL[blockmodel-DECORATIONS_ID]==DOOR_2) return CreateDoor(blockmodel,x,y,z,rot);
  582. if(DECO_MODEL[blockmodel-DECORATIONS_ID]==SIGN) return CreateSign(blockmodel,x,y,z,rot);
  583. if(rot==0) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x+DECO_X_INDEX[blockmodel-DECORATIONS_ID],y+DECO_Y_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  584. if(rot==90) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x-DECO_Y_INDEX[blockmodel-DECORATIONS_ID],y+DECO_X_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  585.  
  586. if(rot==180) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x-DECO_X_INDEX[blockmodel-DECORATIONS_ID],y-DECO_Y_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  587. if(rot==270) ob = CreateDynamicObjectEx(DECO_MODEL[blockmodel-DECORATIONS_ID],x+DECO_Y_INDEX[blockmodel-DECORATIONS_ID],y-DECO_X_INDEX[blockmodel-DECORATIONS_ID],z+DECO_Z_INDEX[blockmodel-DECORATIONS_ID], 0,0,rot,900,100);
  588. BlockX[ob]=x;
  589. BlockY[ob]=y;
  590. BlockZ[ob]=z;
  591. }
  592. BlockAdd[ob]=-1;
  593.  
  594.  
  595. return ob;
  596. }
  597.  
  598.  
  599. UpdateSignText(blockid,text[]="Blank sign")
  600. {
  601. new size;
  602. if(strlen(text)>0) size=36;
  603. if(strlen(text)>15) size=28;
  604. if(strlen(text)>20) size=20;
  605. SetDynamicObjectMaterialText(BlockAdd[blockid],0,text,OBJECT_MATERIAL_SIZE_256x128,"Arial",size,1,0xFF000000,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  606. }
  607.  
  608. public OnGameModeInit()
  609. {
  610. new string[256];
  611. new File:objectsFile = fopen(MAPFILE, io_read);
  612.  
  613. // check if it is a valid file handle, it might crash the server if it isn't
  614. if(objectsFile)
  615. {
  616. // it's always better to declare variables outside loops
  617. new id, seq,Float:x, Float:y, Float:z, r,text[512];
  618.  
  619. // we read the file line by line, first line is stored into string and so on..
  620. while(fread(objectsFile, string))
  621. {
  622. blocksam++;
  623. // we extract the contents of string into variables
  624. sscanf(string, "p<=>dp<;>dfffI(0)p<=>s[512]", seq,id, x, y, z, r,text);
  625.  
  626. SAVED[seq]=CreateBlock(id, x, y, z, r);
  627. if(id==SIGN_ID) UpdateSignText(SAVED[seq],text);
  628. #if defined PRINT_LOADING_INFO
  629. if(blocksam%100==0)printf("Loading blocks: %d",blocksam);
  630. #endif
  631.  
  632.  
  633. }
  634. fclose(objectsFile);
  635. }
  636. return 1;
  637. }
Advertisement
Add Comment
Please, Sign In to add comment