Guest User

Untitled

a guest
Nov 30th, 2022
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 236.45 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <tde_tdinfo> //(0.3.7 support!)
  4.  
  5.  
  6. /*
  7.  
  8. ___ __ __
  9. | | \|_ _|.|_ _ _
  10. | |__/|__(_|||_(_)|
  11.  
  12. Version 1.18
  13. TDEditor Credits:
  14.  
  15. - adri1 USER PROFILE: http://forum.sa-mp.com/member.php?u=106967
  16. - Pottus (1.14 update) USER PROFILE: http://forum.sa-mp.com/member.php?u=169807
  17. - iPLEOMAX USER PROFILE: http://forum.sa-mp.com/member.php?u=122705
  18. - Sasino97 (IsKeyDown plugin) USER PROFILE: http://forum.sa-mp.com/member.php?u=111937
  19. - Y_Less (sscanf2 plugin) USER PROFILE: http://forum.sa-mp.com/member.php?u=29176
  20.  
  21.  
  22.  
  23. IsKeyDown plugin was modified by adri1, adding the following functions:
  24.  
  25. native PressKeyEnter(key);
  26. native PressAnyKey(key);
  27. native GetKeyState(key);
  28. native GetDoubleClickTime();
  29. native ActivateAnyKey();
  30. native ActivateAnyKeyVariable(valor);
  31. forward OnAnyKeyDown(key);
  32. */
  33.  
  34. #define PROJECT_PATH "ETDE/projects/"
  35. #define EXPORT_PATH "ETDE/exports/"
  36. #define ETDE_VERSION "0.1B"
  37.  
  38. #define VK_KEY_A 0x41
  39. #define VK_KEY_B 0x42
  40. #define VK_KEY_C 0x43
  41. #define VK_KEY_D 0x44
  42. #define VK_KEY_E 0x45
  43. #define VK_KEY_F 0x46
  44. #define VK_KEY_G 0x47
  45. #define VK_KEY_H 0x48
  46. #define VK_KEY_I 0x49
  47. #define VK_KEY_J 0x4A
  48. #define VK_KEY_K 0x4B
  49. #define VK_KEY_L 0x4C
  50. #define VK_KEY_M 0x4D
  51. #define VK_KEY_N 0x4E
  52. #define VK_KEY_O 0x4F
  53. #define VK_KEY_P 0x50
  54. #define VK_KEY_Q 0x51
  55. #define VK_KEY_R 0x52
  56. #define VK_KEY_S 0x53
  57. #define VK_KEY_T 0x54
  58. #define VK_KEY_U 0x55
  59. #define VK_KEY_V 0x56
  60. #define VK_KEY_W 0x57
  61. #define VK_KEY_X 0x58
  62. #define VK_KEY_Y 0x59
  63. #define VK_KEY_Z 0x5A
  64. #define VK_LBUTTON 0x01
  65. #define VK_MBUTTON 0x04
  66. #define VK_RBUTTON 0x02
  67. #define VK_UP 0x26
  68. #define VK_DOWN 0x28
  69. #define VK_LEFT 0x25
  70. #define VK_RIGHT 0x27
  71. #define VK_LSHIFT 0xA0
  72. #define VK_RSHIFT 0xA1
  73. #define VK_SPACE 0x20
  74. #define VK_CANCEL 0x03
  75. #define VK_BACKSPACE 0x08
  76. #define VK_TAB 0x09
  77. #define VK_CLEAR 0x0C
  78. #define VK_ENTER 0x0D
  79. #define VK_SHIFT 0x10
  80. #define VK_LSHIFT 0xA0
  81. #define VK_RSHIFT 0xA1
  82. #define VK_CTRL 0x11
  83. #define VK_LCTRL 0xA2
  84. #define VK_RCTRL 0xA3
  85. #define VK_ALT 0x12
  86. #define VK_CAPSLOCK 0x14
  87. #define VK_ESCAPE 0x1B
  88. #define VK_SELECT 0x29
  89. #define VK_INSERT 0x2D
  90. #define VK_DELETE 0x2E
  91. #define VK_HELP 0x2F
  92. #define VK_KEYB0 0x30
  93. #define VK_KEYB1 0x31
  94. #define VK_KEYB2 0x32
  95. #define VK_KEYB3 0x33
  96. #define VK_KEYB4 0x34
  97. #define VK_KEYB5 0x35
  98. #define VK_KEYB6 0x36
  99. #define VK_KEYB7 0x37
  100. #define VK_KEYB8 0x38
  101. #define VK_KEYB9 0x39
  102. #define VK_NUMLOCK 0x90
  103. #define VK_NUMPAD0 0x60
  104. #define VK_NUMPAD1 0x61
  105. #define VK_NUMPAD2 0x62
  106. #define VK_NUMPAD3 0x63
  107. #define VK_NUMPAD4 0x64
  108. #define VK_NUMPAD5 0x65
  109. #define VK_NUMPAD6 0x66
  110. #define VK_NUMPAD7 0x67
  111. #define VK_NUMPAD8 0x68
  112. #define VK_NUMPAD9 0x69
  113. #define VK_MULTIPLY 0x6A
  114. #define VK_ADD 0x6B
  115. #define VK_SEPARATOR 0x6C
  116. #define VK_SUBTRACT 0x6D
  117. #define VK_DECIMAL 0x6E
  118. #define VK_DIVIDE 0x6F
  119. #define VK_OEM_PLUS 0xBB
  120. #define VK_OEM_COMMA 0xBC
  121. #define VK_OEM_MINUS 0xBD
  122. #define VK_OEM_PERIOD 0xBE
  123. #define VK_OEM_2 0xBF
  124. #define VK_OEM_4 0xDB
  125. #define VK_OEM_5 0xDC
  126. #define VK_OEM_6 0xDD
  127. #define VK_XBUTTON1 0x05
  128. #define VK_XBUTTON2 0x06
  129. #define VK_OEM_102 0xE2
  130. #define VK_F6 0x75
  131. #define VK_END 0x23
  132. #define VK_HOME 0x24
  133.  
  134. #define EmptyString(%0) %0[0] = '\0'
  135. #define INVALID_INDEX_ID (-1)
  136. #define TDE_CALLBACK:%0(%1) forward %0(%1); public %0(%1)
  137. #define Loop(%0,%1) for (new c = %0; c < %1; c++)
  138. #define MAX_PROJECT_TEXTDRAWS (500)
  139.  
  140. native GetVirtualKeyState(key);
  141. native GetScreenSize(&Width, &Height);
  142. native GetMousePos(&X, &Y);
  143. native PressKeyEnter(key);
  144. native PressAnyKey(key);
  145. native GetKeyState(key);
  146. native GetDoubleClickTime();
  147. native ActivateAnyKey();
  148. native ActivateAnyKeyVariable(valor);
  149. forward OnAnyKeyDown(key);
  150.  
  151.  
  152. enum
  153. {
  154. DIALOG_PROJECT = 6666,
  155. DIALOG_PROJECT_LIST,
  156. DIALOG_NEWPROJECT,
  157. DIALOG_LOADPROJECT,
  158. DIALOG_CLOSEPROJECT,
  159. DIALOG_DELETETD,
  160. DIALOG_TDLIST,
  161. DIALOG_EDITTEXT,
  162. DIALOG_EDITOUTLINE,
  163. DIALOG_EDITSHADOW,
  164. DIALOG_LETTERX,
  165. DIALOG_LETTERY,
  166. DIALOG_POSX,
  167. DIALOG_POSY,
  168. DIALOG_MIRROR,
  169. DIALOG_CONFIRMEDELETE,
  170. DIALOG_EDITCOLOR,
  171. DIALOG_SIZEX,
  172. DIALOG_SIZEY,
  173. DIALOG_NEW,
  174. DIALOG_MODELID,
  175. DIALOG_MODELS,
  176. DIALOG_MODELS_MLD,
  177. DIALOG_MODELS_RX,
  178. DIALOG_MODELS_RY,
  179. DIALOG_MODELS_RZ,
  180. DIALOG_MODELS_ZO,
  181. DIALOG_MODELS_C1,
  182. DIALOG_MODELS_C2,
  183. DIALOG_MANAGE = 7777,
  184. DIALOG_SELECTTDS = 8888
  185. };
  186.  
  187. enum E_KEY_STRUCT
  188. {
  189. bool:KEY_PRESSED,
  190. KEY_CODE,
  191. };
  192.  
  193. enum E_TD_STRUCT
  194. {
  195. ItsFromTDE,
  196. Text:ETextDrawID,
  197. ETextDrawText[800],
  198. Float:ETextDrawPosX,
  199. Float:ETextDrawPosY,
  200. Float:ETextDrawLetterX,
  201. Float:ETextDrawLetterY,
  202. Float:ETextDrawTextX,
  203. Float:ETextDrawTextY,
  204. ETextDrawOutline,
  205. ETextDrawShadow,
  206. ETextDrawModelid,
  207. Float:ETextDrawRotX,
  208. Float:ETextDrawRotY,
  209. Float:ETextDrawRotZ,
  210. Float:ETextDrawZoom,
  211. ETextDrawType, //Global/Player
  212. ETextDrawSelectable,
  213. ETextDrawColor,
  214. ETextDrawBGColor,
  215. ETextDrawBoxColor,
  216. ETextDrawVehCol1,
  217. ETextDrawVehCol2
  218. };
  219.  
  220. enum
  221. {
  222. EDITMODE_NONE,
  223. EDITMODE_TEXT,
  224. EDITMODE_POSITION,
  225. EDITMODE_OUTLINE,
  226. EDITMODE_SHADOW,
  227. EDITMODE_LETTERSIZE,
  228. EDITMODE_SIZE,
  229. EDITMODE_COLOR,
  230. EDITMODE_BGCOLOR,
  231. EDITMODE_BOXCOLOR,
  232. EDITMODE_MODELS,
  233. EDITMODE_ADJUST
  234. };
  235.  
  236. enum
  237. {
  238. COLORMODE_NONE,
  239. COLORMODE_RED,
  240. COLORMODE_GREEN,
  241. COLORMODE_BLUE,
  242. COLORMODE_ALPHA
  243. };
  244.  
  245. new PremadeColors[][] =
  246. {
  247. { 0xFF0000FF , "Red" },
  248. { 0xFFFFFFFF , "White" },
  249. { 0x00FFFFFF , "Cyan" },
  250. { 0xC0C0C0FF , "Silver" },
  251. { 0x0000FFFF , "Blue" },
  252. { 0x808080FF , "Grey" },
  253. { 0x0000A0FF , "DarkBlue" },
  254. { 0x000000FF , "Black" },
  255. { 0xADD8E6FF , "LightBlue" },
  256. { 0xFFA500FF , "Orange" },
  257. { 0x800080FF , "Purple" },
  258. { 0xA52A2AFF , "Brown" },
  259. { 0xFFFF00FF , "Yellow" },
  260. { 0x800000FF , "Maroon" },
  261. { 0x00FF00FF , "Lime" },
  262. { 0x008000FF , "Green" },
  263. { 0xFF00FFFF , "Fuchsia" },
  264. { 0x808000FF , "Olive" }
  265. };
  266.  
  267. new
  268. ProjectEditor = -1,
  269. bool:EditorEnabled,
  270. bool:IsPSel,
  271. CursorOX, CursorOY,
  272. CursorX, CursorY,
  273. ScreenWidth, ScreenHeight,
  274. VirtualKeys[95][E_KEY_STRUCT],
  275. ProjectTD[MAX_PROJECT_TEXTDRAWS][E_TD_STRUCT],
  276. Text:TDE_Menu[36] = {Text:INVALID_TEXT_DRAW, ...},
  277. Text:TD_Status,
  278. Text:TDELOGO,
  279. Float:OffsetZ = 415.0,
  280. EditIndex = INVALID_INDEX_ID,
  281. EditMode,
  282. Float:EditMoveSpeed = 0.1,
  283. Float:EditLetterSizeSpeed = 0.01,
  284. Float:EditSizeSpeed = 0.01,
  285. DeleteTimer, SpeedTimer, /*DoubleClickCount,*/ MoveTDTimer = -1,
  286. Text:TDEditor_Helper[2], TDEHTimer = -1, OutlineTimer, ShadowTimer,
  287. LetterSizeTimer = -1, LetterTimer, EditSizeTDTimer = -1, EditSizeSpeedT,
  288. ColorMode, Colors[4], BackManageDialog[15], PageStart, Float:Zoom = 1.0,
  289. ProjectFile[64], Pro_Str[5000], File:Handler, str_list[3000], EditorUpdateTimer,
  290. line[800], bool:MouseCursor, bool:PixelLock, SpeedSTR[256], bool:SelectedTextDraws[MAX_PROJECT_TEXTDRAWS], bool:moveselectedtds, bool:selectall,
  291. opu_check_afk
  292. ;
  293.  
  294. public OnFilterScriptInit()
  295. {
  296. print(" ");
  297. print(" ");
  298. print(" ");
  299. print(" ");
  300. print("___ __ __");
  301. print(" | | \\|_ _|.|_ _ _ ");
  302. print(" | |__/|__(_|||_(_)| ");
  303. print(" ");
  304. print("ETDEditor V"ETDE_VERSION" Desenvolvido por ADRI1 & Traduzido por Blue_White");
  305. print("ETDEditor Carregado!");
  306. print(" ");
  307.  
  308. Loop(0, MAX_PROJECT_TEXTDRAWS) ProjectTD[c][ItsFromTDE] = -1;
  309. VirtualKeys[0][KEY_CODE] = VK_KEY_A;
  310. VirtualKeys[1][KEY_CODE] = VK_KEY_B;
  311. VirtualKeys[2][KEY_CODE] = VK_KEY_C;
  312. VirtualKeys[3][KEY_CODE] = VK_KEY_D;
  313. VirtualKeys[4][KEY_CODE] = VK_KEY_E;
  314. VirtualKeys[5][KEY_CODE] = VK_KEY_F;
  315. VirtualKeys[6][KEY_CODE] = VK_KEY_G;
  316. VirtualKeys[7][KEY_CODE] = VK_KEY_H;
  317. VirtualKeys[8][KEY_CODE] = VK_KEY_I;
  318. VirtualKeys[9][KEY_CODE] = VK_KEY_J;
  319. VirtualKeys[10][KEY_CODE] = VK_KEY_K;
  320. VirtualKeys[11][KEY_CODE] = VK_KEY_L;
  321. VirtualKeys[12][KEY_CODE] = VK_KEY_M;
  322. VirtualKeys[13][KEY_CODE] = VK_KEY_N;
  323. VirtualKeys[14][KEY_CODE] = VK_KEY_O;
  324. VirtualKeys[15][KEY_CODE] = VK_KEY_P;
  325. VirtualKeys[16][KEY_CODE] = VK_KEY_Q;
  326. VirtualKeys[17][KEY_CODE] = VK_KEY_R;
  327. VirtualKeys[18][KEY_CODE] = VK_KEY_S;
  328. VirtualKeys[19][KEY_CODE] = VK_KEY_T;
  329. VirtualKeys[20][KEY_CODE] = VK_KEY_U;
  330. VirtualKeys[21][KEY_CODE] = VK_KEY_V;
  331. VirtualKeys[22][KEY_CODE] = VK_KEY_W;
  332. VirtualKeys[23][KEY_CODE] = VK_KEY_X;
  333. VirtualKeys[24][KEY_CODE] = VK_KEY_Y;
  334. VirtualKeys[25][KEY_CODE] = VK_KEY_Z;
  335. VirtualKeys[26][KEY_CODE] = VK_LBUTTON;
  336. VirtualKeys[27][KEY_CODE] = VK_MBUTTON;
  337. VirtualKeys[28][KEY_CODE] = VK_RBUTTON;
  338. VirtualKeys[29][KEY_CODE] = VK_LEFT;
  339. VirtualKeys[30][KEY_CODE] = VK_RIGHT;
  340. VirtualKeys[31][KEY_CODE] = VK_UP;
  341. VirtualKeys[32][KEY_CODE] = VK_DOWN;
  342. VirtualKeys[33][KEY_CODE] = VK_LSHIFT;
  343. VirtualKeys[34][KEY_CODE] = VK_RSHIFT;
  344. VirtualKeys[35][KEY_CODE] = VK_SPACE;
  345. VirtualKeys[36][KEY_CODE] = VK_CANCEL; //03
  346. VirtualKeys[37][KEY_CODE] = VK_BACKSPACE; //08
  347. VirtualKeys[38][KEY_CODE] = VK_TAB; //09
  348. VirtualKeys[39][KEY_CODE] = VK_CLEAR; //0C
  349. VirtualKeys[40][KEY_CODE] = VK_ENTER; //0D
  350. VirtualKeys[41][KEY_CODE] = VK_SHIFT; //10
  351. VirtualKeys[42][KEY_CODE] = VK_LSHIFT; //A0
  352. VirtualKeys[43][KEY_CODE] = VK_RSHIFT; //A1
  353. VirtualKeys[44][KEY_CODE] = VK_CTRL; //11
  354. VirtualKeys[45][KEY_CODE] = VK_LCTRL; //A2
  355. VirtualKeys[46][KEY_CODE] = VK_RCTRL; //A3
  356. VirtualKeys[47][KEY_CODE] = VK_ALT; //12
  357. VirtualKeys[48][KEY_CODE] = VK_CAPSLOCK; //14
  358. VirtualKeys[49][KEY_CODE] = VK_ESCAPE; //1B
  359. VirtualKeys[50][KEY_CODE] = VK_SELECT; //29
  360. VirtualKeys[51][KEY_CODE] = VK_INSERT; //2D
  361. VirtualKeys[52][KEY_CODE] = VK_DELETE; //2E
  362. VirtualKeys[53][KEY_CODE] = VK_HELP; //2F
  363. VirtualKeys[54][KEY_CODE] = VK_KEYB0; //30
  364. VirtualKeys[55][KEY_CODE] = VK_KEYB1; //31
  365. VirtualKeys[56][KEY_CODE] = VK_KEYB2; //32
  366. VirtualKeys[57][KEY_CODE] = VK_KEYB3; //33
  367. VirtualKeys[58][KEY_CODE] = VK_KEYB4; //34
  368. VirtualKeys[59][KEY_CODE] = VK_KEYB5; //35
  369. VirtualKeys[60][KEY_CODE] = VK_KEYB6; //36
  370. VirtualKeys[61][KEY_CODE] = VK_KEYB7; //37
  371. VirtualKeys[62][KEY_CODE] = VK_KEYB8; //38
  372. VirtualKeys[63][KEY_CODE] = VK_KEYB9; //39
  373. VirtualKeys[64][KEY_CODE] = VK_NUMLOCK; //90
  374. VirtualKeys[65][KEY_CODE] = VK_NUMPAD0; //60
  375. VirtualKeys[66][KEY_CODE] = VK_NUMPAD1; //61
  376. VirtualKeys[67][KEY_CODE] = VK_NUMPAD2; //62
  377. VirtualKeys[68][KEY_CODE] = VK_NUMPAD3; //63
  378. VirtualKeys[69][KEY_CODE] = VK_NUMPAD4; //64
  379. VirtualKeys[70][KEY_CODE] = VK_NUMPAD5; //65
  380. VirtualKeys[71][KEY_CODE] = VK_NUMPAD6; //66
  381. VirtualKeys[72][KEY_CODE] = VK_NUMPAD7; //67
  382. VirtualKeys[73][KEY_CODE] = VK_NUMPAD8; //68
  383. VirtualKeys[74][KEY_CODE] = VK_NUMPAD9; //69
  384. VirtualKeys[75][KEY_CODE] = VK_MULTIPLY; //6A
  385. VirtualKeys[76][KEY_CODE] = VK_ADD; //6B
  386. VirtualKeys[77][KEY_CODE] = VK_SEPARATOR; //6C
  387. VirtualKeys[78][KEY_CODE] = VK_SUBTRACT; //6D
  388. VirtualKeys[79][KEY_CODE] = VK_DECIMAL; //6E
  389. VirtualKeys[80][KEY_CODE] = VK_DIVIDE; //6F
  390. VirtualKeys[81][KEY_CODE] = VK_OEM_PLUS;
  391. VirtualKeys[82][KEY_CODE] = VK_OEM_COMMA;
  392. VirtualKeys[83][KEY_CODE] = VK_OEM_MINUS;
  393. VirtualKeys[84][KEY_CODE] = VK_OEM_PERIOD;
  394. VirtualKeys[85][KEY_CODE] = VK_OEM_2;
  395. VirtualKeys[86][KEY_CODE] = VK_OEM_4;
  396. VirtualKeys[87][KEY_CODE] = VK_OEM_5;
  397. VirtualKeys[88][KEY_CODE] = VK_OEM_6;
  398. VirtualKeys[89][KEY_CODE] = VK_XBUTTON1;
  399. VirtualKeys[90][KEY_CODE] = VK_XBUTTON2;
  400. VirtualKeys[91][KEY_CODE] = VK_OEM_102;
  401. VirtualKeys[92][KEY_CODE] = VK_F6;
  402. VirtualKeys[93][KEY_CODE] = VK_END;
  403. VirtualKeys[94][KEY_CODE] = VK_HOME;
  404.  
  405.  
  406. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) ProjectTD[i][ETextDrawID] = Text:INVALID_TEXT_DRAW;
  407. return true;
  408. }
  409.  
  410. public OnFilterScriptExit()
  411. {
  412. print(" ");
  413. print(" ");
  414. print(" ");
  415. print(" ");
  416. print("___ __ __");
  417. print(" | | \\|_ _|.|_ _ _ ");
  418. print(" | |__/|__(_|||_(_)| ");
  419. print(" ");
  420. print("ETDEditor V"ETDE_VERSION" Desenvolvido por ADRI1 & Traduzido por Blue_White");
  421. print("ETDEditor Carregado!");
  422. print(" ");
  423.  
  424. KillTimer(EditorUpdateTimer);
  425. KillTimer(DeleteTimer);
  426. KillTimer(SpeedTimer);
  427. KillTimer(MoveTDTimer); MoveTDTimer = -1;
  428. KillTimer(TDEHTimer); TDEHTimer = -1;
  429. KillTimer(OutlineTimer);
  430. KillTimer(ShadowTimer);
  431. KillTimer(LetterSizeTimer); LetterSizeTimer = -1;
  432. KillTimer(LetterTimer);
  433. KillTimer(EditSizeTDTimer); EditSizeTDTimer = -1;
  434. KillTimer(EditSizeSpeedT);
  435. KillTimer(ShadowTimer);
  436. if(ProjectEditor != -1)
  437. {
  438. TogglePlayerControllable(ProjectEditor, true);
  439. ShowPlayerDialog(ProjectEditor, -1, 0, "","", "", "" );
  440. CancelSelectTextDraw(ProjectEditor);
  441. if(strlen(ProjectFile))
  442. {
  443. SaveProject();
  444. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) RemoveTextDrawTDEOnly(i);
  445. }
  446. }
  447.  
  448. Loop(0, MAX_PROJECT_TEXTDRAWS) SelectedTextDraws[c] = false;
  449. moveselectedtds = false;
  450. selectall = false;
  451.  
  452. DestroyMenuTextDraws();
  453. EditMode = EDITMODE_NONE;
  454. ColorMode = COLORMODE_NONE;
  455. ProjectEditor = -1;
  456. EditorEnabled = false;
  457. IsPSel = true;
  458. CursorOX = 0;
  459. CursorOY = 0;
  460. CursorX = 0;
  461. CursorY = 0;
  462. ScreenWidth = 0;
  463. ScreenHeight = 0;
  464. OffsetZ = 415.0;
  465. EditIndex = INVALID_INDEX_ID;
  466. EditMoveSpeed = 0.1;
  467. EditLetterSizeSpeed = 0.01;
  468. EditSizeSpeed = 0.01;
  469. PageStart = 0;
  470. Zoom = 1.0;
  471. MouseCursor = false;
  472. EmptyString(ProjectFile);
  473. EmptyString(Pro_Str);
  474. EmptyString(str_list);
  475. EmptyString(line);
  476. return true;
  477. }
  478.  
  479. public OnPlayerConnect(playerid)
  480. {
  481. return true;
  482. }
  483.  
  484. public OnPlayerDisconnect(playerid, reason)
  485. {
  486. if(ProjectEditor == playerid)
  487. {
  488. KillTimer(EditorUpdateTimer);
  489. KillTimer(DeleteTimer);
  490. KillTimer(SpeedTimer);
  491. KillTimer(MoveTDTimer); MoveTDTimer = -1;
  492. KillTimer(TDEHTimer); TDEHTimer = -1;
  493. KillTimer(OutlineTimer);
  494. KillTimer(ShadowTimer);
  495. KillTimer(LetterSizeTimer); LetterSizeTimer = -1;
  496. KillTimer(LetterTimer);
  497. KillTimer(EditSizeTDTimer); EditSizeTDTimer = -1;
  498. KillTimer(EditSizeSpeedT);
  499. KillTimer(ShadowTimer);
  500.  
  501. if(strlen(ProjectFile))
  502. {
  503. SaveProject();
  504. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) RemoveTextDrawTDEOnly(i);
  505. }
  506.  
  507. Loop(0, MAX_PROJECT_TEXTDRAWS) SelectedTextDraws[c] = false;
  508. moveselectedtds = false;
  509. selectall = false;
  510.  
  511. DestroyMenuTextDraws();
  512. EditMode = EDITMODE_NONE;
  513. ColorMode = COLORMODE_NONE;
  514. ProjectEditor = -1;
  515. EditorEnabled = false;
  516. IsPSel = true;
  517. CursorOX = 0;
  518. CursorOY = 0;
  519. CursorX = 0;
  520. CursorY = 0;
  521. ScreenWidth = 0;
  522. ScreenHeight = 0;
  523. OffsetZ = 415.0;
  524. EditIndex = INVALID_INDEX_ID;
  525. MouseCursor = false;
  526. EditMoveSpeed = 0.1;
  527. EditLetterSizeSpeed = 0.01;
  528. EditSizeSpeed = 0.01;
  529. PageStart = 0;
  530. Zoom = 1.0;
  531. EmptyString(ProjectFile);
  532. EmptyString(Pro_Str);
  533. EmptyString(str_list);
  534. EmptyString(line);
  535. }
  536. return true;
  537. }
  538.  
  539. public OnPlayerCommandText(playerid, cmdtext[])
  540. {
  541. if(!strcmp(cmdtext, "/tde", true, 4))
  542. {
  543. if(ProjectEditor == playerid)
  544. {
  545. if(strlen(cmdtext) >= 6)
  546. {
  547. if( (!strcmp(cmdtext[5], "ajuda", true)) || (!strcmp(cmdtext[5], "help", true)) )
  548. {
  549. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}/tde box - /tde exit - /tde cursor - /tde select.");
  550. return 1;
  551. }
  552. if( (!strcmp(cmdtext[5], "cursor", true)) )
  553. {
  554. if(MouseCursor)
  555. {
  556. MouseCursor = false;
  557. CancelSelectTextDraw(ProjectEditor);
  558. }
  559. else
  560. {
  561. MouseCursor = true;
  562. SelectTextDraw(ProjectEditor, -1);
  563. }
  564. return 1;
  565. }
  566. if( (!strcmp(cmdtext[5], "select", true)) )
  567. {
  568. SendClientMessage(playerid, -1, " ");
  569. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Use: /tde marcartodas para selecionar ou desmarcar todas as textdraws.");
  570. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Use: /tde editar para editar textdraws selecionadas.");
  571. CancelSelectTextDraw(playerid);
  572. IsPSel = false;
  573. ShowSelectTDManage(playerid);
  574. return 1;
  575. }
  576. if( (!strcmp(cmdtext[5], "marcartodas", true)) )
  577. {
  578.  
  579. if(selectall)
  580. {
  581. selectall = false;
  582. Loop(0, MAX_PROJECT_TEXTDRAWS) SelectedTextDraws[c] = false;
  583. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}All textdraws unselected.");
  584. }
  585. else
  586. {
  587. selectall = true;
  588. Loop(0, MAX_PROJECT_TEXTDRAWS) SelectedTextDraws[c] = true;
  589. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}All textdraws selected.");
  590. }
  591. return 1;
  592. }
  593. if( (!strcmp(cmdtext[5], "editar", true)) )
  594. {
  595. if(moveselectedtds)
  596. {
  597. moveselectedtds = false;
  598. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Editando textdraws selecionadas: OFF.");
  599. }
  600. else
  601. {
  602. moveselectedtds = true;
  603. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Editando textdraws selecionadas: ON.");
  604. }
  605. return 1;
  606. }
  607. if( (!strcmp(cmdtext[5], "sair", true)) || (!strcmp(cmdtext[5], "exit", true)) )
  608. {
  609. KillTimer(EditorUpdateTimer);
  610. KillTimer(DeleteTimer);
  611. KillTimer(SpeedTimer);
  612. KillTimer(MoveTDTimer); MoveTDTimer = -1;
  613. KillTimer(TDEHTimer); TDEHTimer = -1;
  614. KillTimer(OutlineTimer);
  615. KillTimer(ShadowTimer);
  616. KillTimer(LetterSizeTimer); LetterSizeTimer = -1;
  617. KillTimer(LetterTimer);
  618. KillTimer(EditSizeTDTimer); EditSizeTDTimer = -1;
  619. KillTimer(EditSizeSpeedT);
  620. KillTimer(ShadowTimer);
  621.  
  622. if(strlen(ProjectFile))
  623. {
  624. SaveProject();
  625. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) RemoveTextDrawTDEOnly(i);
  626. }
  627.  
  628. Loop(0, MAX_PROJECT_TEXTDRAWS) SelectedTextDraws[c] = false;
  629. moveselectedtds = false;
  630. selectall = false;
  631.  
  632. DestroyMenuTextDraws();
  633. EditMode = EDITMODE_NONE;
  634. ColorMode = COLORMODE_NONE;
  635. ProjectEditor = -1;
  636. EditorEnabled = false;
  637. IsPSel = true;
  638. CursorOX = 0;
  639. CursorOY = 0;
  640. CursorX = 0;
  641. CursorY = 0;
  642. ScreenWidth = 0;
  643. ScreenHeight = 0;
  644. OffsetZ = 415.0;
  645. EditIndex = INVALID_INDEX_ID;
  646. EditMoveSpeed = 0.1;
  647. EditLetterSizeSpeed = 0.01;
  648. EditSizeSpeed = 0.01;
  649. PageStart = 0;
  650. MouseCursor = false;
  651. Zoom = 1.0;
  652. EmptyString(ProjectFile);
  653. EmptyString(Pro_Str);
  654. EmptyString(str_list);
  655. EmptyString(line);
  656.  
  657. TogglePlayerControllable(playerid, true);
  658. ShowPlayerDialog(playerid, -1, 0, "","", "", "" );
  659. CancelSelectTextDraw(playerid);
  660. return 1;
  661. }
  662. if( (!strcmp(cmdtext[5], "box", true)) || (!strcmp(cmdtext[5], "icons", true)) || (!strcmp(cmdtext[5], "ajustar", true)) )
  663. {
  664. if(EditMode == EDITMODE_ADJUST)
  665. {
  666. if(!VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  667. {
  668. new Float:pos[2];
  669. for(new i = 1; i < sizeof(TDE_Menu); i++)
  670. {
  671. TDE_TextDrawGetPos(TDE_Menu[i], pos[0], pos[1]);
  672. TDE_TextDrawSetPos(TDE_Menu[i], pos[0], OffsetZ);
  673. TDE_TextDrawShowForPlayer(playerid, TDE_Menu[i]);
  674. }
  675.  
  676. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  677. EditMode = EDITMODE_NONE;
  678. IsPSel = true;
  679. return 1;
  680. }
  681. return 1;
  682. }
  683. IsPSel = false;
  684. TDE_TextDrawSetString(TD_Status, "EDITMODE_ADJUST");
  685. EditMode = EDITMODE_ADJUST;
  686. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Press 'ESC' to finish this mode.");
  687. return 1;
  688. }
  689. return SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}/tde {e2b960}(box/help)");
  690. }
  691. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  692. EditMode = EDITMODE_NONE;
  693. CancelSelectTextDraw(playerid);
  694. IsPSel = false;
  695. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "Fechar");
  696. }
  697. if(ProjectEditor == -1)
  698. {
  699. new ip[16];
  700. GetPlayerIp(playerid, ip, 16);
  701. if(strcmp(ip, "127.0.0.1", false)) return SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Erro: Salve seu servidor como: localhost:7777 no client do SA:MP!");
  702. IsPSel = true;
  703. MouseCursor = true;
  704. TogglePlayerControllable(playerid, false);
  705. DestroyMenuTextDraws();
  706. CreateMenuTextDraws();
  707. SendClientMessage(playerid, -1, "{e2b960}ETDEditor "ETDE_VERSION" {FFFFFF}Clique na imagem para começar a editar...");
  708. TDE_TextDrawShowForPlayer(playerid, TDELOGO);
  709. SelectTextDraw(playerid, -1);
  710. EmptyString(ProjectFile);
  711. }
  712. return true;
  713. }
  714. return false;
  715. }
  716.  
  717. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  718. {
  719. if(dialogid == DIALOG_PROJECT)
  720. {
  721. if(response)
  722. {
  723. switch(listitem)
  724. {
  725. case 0:
  726. {
  727. if(strlen(ProjectFile))
  728. {
  729. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}feche o projeto em execução primeiro.");
  730. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
  731. return 1;
  732. }
  733. ShowPlayerDialog(playerid, DIALOG_NEWPROJECT, DIALOG_STYLE_INPUT, "ETDEditor - Novo projeto", "Nome do projeto (Caso existir na pasta "PROJECT_PATH" será carregado):", ">>", "<<");
  734. }
  735. case 1:
  736. {
  737. if(strlen(ProjectFile))
  738. {
  739. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}feche o projeto em execução primeiro.");
  740. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "Fechar");
  741. return 1;
  742. }
  743. new Found;
  744. Handler = fopen(""PROJECT_PATH"tdelist.txt", io_read);
  745. if(Handler)
  746. {
  747. while(fread(Handler, Pro_Str))
  748. {
  749. if(strlen(Pro_Str))
  750. {
  751. if(!Found)
  752. {
  753. EmptyString(str_list);
  754. Found = true;
  755. }
  756. strcat(str_list, Pro_Str);
  757. }
  758. }
  759. fclose(Handler);
  760. }
  761. else
  762. {
  763. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Projeto não está na lista.");
  764. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "Fechar");
  765. return 1;
  766. }
  767. if(!Found)
  768. {
  769. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Projeto não está na lista.");
  770. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "Fechar");
  771. return 1;
  772. }
  773. ShowPlayerDialog(playerid, DIALOG_PROJECT_LIST, DIALOG_STYLE_LIST, "ETDEditor - Lista de projetos", str_list, ">>", "<<");
  774. }
  775. case 2:
  776. {
  777. if(!strlen(ProjectFile))
  778. {
  779. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}Você não criou e/ou carregou nenhum projeto.");
  780. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "Fechar");
  781. return 1;
  782. }
  783. CloseProject();
  784. SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Projeto fechado.");
  785. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "Fechar");
  786. }
  787. }
  788. }
  789. else
  790. {
  791. if(ProjectEditor == -1)
  792. {
  793.  
  794. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}ETDEditor Fechado.");
  795. TDE_TextDrawHideForPlayer(playerid, TDELOGO);
  796. TogglePlayerControllable(playerid, true);
  797. DestroyMenuTextDraws();
  798. IsPSel = true;
  799. return 1;
  800. }
  801. SelectTextDraw(playerid, -1);
  802. IsPSel = true;
  803. SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Se você quiser sair digite: /tde exit.");
  804. }
  805. return 1;
  806. }
  807. else if(dialogid == DIALOG_NEWPROJECT)
  808. {
  809. if(response)
  810. {
  811. if(!(1 <= strlen(inputtext) <= 32)) return ShowPlayerDialog(playerid, DIALOG_NEWPROJECT, DIALOG_STYLE_INPUT, "ETDEditor - Novo projeto", "Nome do projeto (Caso existir na pasta "PROJECT_PATH" será carregado):", ">>", "<<");
  812. if(!IsValidProjectName(inputtext)) return ShowPlayerDialog(playerid, DIALOG_NEWPROJECT, DIALOG_STYLE_INPUT, "ETDEditor - Novo projeto", "Nome do projeto (Caso existir na pasta "PROJECT_PATH" será carregado):", ">>", "<<");
  813. if(strlen(ProjectFile)) CloseProject();
  814.  
  815. format(ProjectFile, sizeof ProjectFile, "%s", inputtext);
  816. if(!CheckProject(inputtext)) AddProject(ProjectFile);
  817.  
  818. ProjectEditor = playerid;
  819. EditorEnabled = true;
  820. IsPSel = true;
  821. ShowEditor();
  822.  
  823. PageStart = 0;
  824.  
  825. new filePath[128]; format(filePath, sizeof filePath, ""PROJECT_PATH"%s.project", ProjectFile);
  826. if(fexist(filePath))
  827. {
  828. LoadProject();
  829. SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Projeto carregado.");
  830. }
  831. else
  832. {
  833. Handler = fopen(filePath, io_write);
  834. fclose(Handler);
  835. SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Projeto criado.");
  836. }
  837.  
  838. if(EditIndex != INVALID_INDEX_ID)
  839. {
  840. Loop(1, sizeof(TDE_Menu))
  841. {
  842. TDE_TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
  843. TDE_TextDrawSetSelectable(TDE_Menu[c], true);
  844. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  845. }
  846. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  847. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  848. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  849. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  850. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  851. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  852. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  853. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  854. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  855. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  856. UpdateIcons(EditIndex);
  857. }
  858.  
  859. EditorUpdateTimer = SetTimerEx("OnEditorUpdate", 25, true, "i", ProjectEditor);
  860. }
  861. else ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "Fechar");
  862. return 1;
  863. }
  864. else if(dialogid == DIALOG_PROJECT_LIST)
  865. {
  866. if(response)
  867. {
  868. Handler = fopen(""PROJECT_PATH"tdelist.txt", io_read);
  869. if(!Handler) return 1;
  870.  
  871. new Index = -1;
  872. while(fread(Handler, Pro_Str))
  873. {
  874. if(!strlen(Pro_Str)) continue;
  875. Index++;
  876.  
  877. if(Index == listitem)
  878. {
  879. StripNewLine(Pro_Str);
  880.  
  881. if(strlen(ProjectFile))
  882. {
  883. SaveProject();
  884. CloseProject();
  885. }
  886. ProjectEditor = playerid;
  887. EditorEnabled = true;
  888. IsPSel = true;
  889. ShowEditor();
  890.  
  891. format(ProjectFile, sizeof(ProjectFile), "%s", Pro_Str);
  892. if(!LoadProject())
  893. {
  894. SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Erro: não foi possível carregar este projeto, cheque o arquivo '.project' de seu projeto.");
  895. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "Fechar");
  896. return 1;
  897. }
  898. if(EditIndex >= INVALID_INDEX_ID)
  899. {
  900. Loop(1, sizeof(TDE_Menu))
  901. {
  902. TDE_TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
  903. TDE_TextDrawSetSelectable(TDE_Menu[c], true);
  904. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  905. }
  906. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  907. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  908. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  909. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  910. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  911. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  912. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  913. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  914. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  915. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  916. UpdateIcons(EditIndex);
  917. }
  918.  
  919. EditorUpdateTimer = SetTimerEx("OnEditorUpdate", 25, true, "i", ProjectEditor);
  920. }
  921. }
  922. }
  923. else ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "X");
  924. return 1;
  925. }
  926. if(!EditorEnabled || ProjectEditor != playerid) return false;
  927. if(EditMode == EDITMODE_ADJUST) return false;
  928. switch(dialogid)
  929. {
  930. case DIALOG_NEW:
  931. {
  932. if(response)
  933. {
  934. switch(listitem)
  935. {
  936. case 0: // Text
  937. {
  938. new Index = GetAvailableIndex();
  939. if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}You can't create more TextDraws.");
  940. EditIndex = Index;
  941.  
  942. if(EditIndex == 0)
  943. {
  944. Loop(1, sizeof(TDE_Menu))
  945. {
  946. TDE_TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
  947. TDE_TextDrawSetSelectable(TDE_Menu[c], true);
  948. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  949. }
  950. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  951. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  952. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  953. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  954. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  955. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  956. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  957. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  958. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  959. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  960. }
  961.  
  962. TDE_TextDrawCreate(ProjectTD[Index][ETextDrawID], 290.0, 190.0, "ETDEditor");
  963. TDE_TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.4, 1.6);
  964. TDE_TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
  965. TDE_TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
  966. TDE_TextDrawUseBox(ProjectTD[Index][ETextDrawID], 0);
  967. TDE_TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
  968. TDE_TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
  969. TDE_TextDrawBackgroundColor(ProjectTD[Index][ETextDrawID], 255);
  970. TDE_TextDrawFont(ProjectTD[Index][ETextDrawID], 1);
  971. TDE_TextDrawSetProportional(ProjectTD[Index][ETextDrawID], 1);
  972. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
  973.  
  974.  
  975. ProjectTD[EditIndex][ItsFromTDE] = 1;
  976. format(ProjectTD[EditIndex][ETextDrawText], 800, "ETDEditor");
  977. ProjectTD[EditIndex][ETextDrawPosX] = 290.0;
  978. ProjectTD[EditIndex][ETextDrawPosY] = 190.0;
  979. ProjectTD[EditIndex][ETextDrawLetterX] = 0.4;
  980. ProjectTD[EditIndex][ETextDrawLetterY] = 1.6;
  981. ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
  982. ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
  983. ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
  984.  
  985. new string[128];
  986. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}created.", EditIndex);
  987. SendClientMessage(ProjectEditor, -1, string);
  988. SelectTextDraw(playerid, -1);
  989. IsPSel = true;
  990. UpdateIcons(EditIndex);
  991.  
  992. if(EditMode == EDITMODE_MODELS)
  993. {
  994. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  995. EditMode = EDITMODE_NONE;
  996. }
  997. }
  998. case 1: // Sprites
  999. {
  1000. new Index = GetAvailableIndex();
  1001. if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}You can't create more TextDraws.");
  1002. EditIndex = Index;
  1003.  
  1004. if(EditIndex == 0)
  1005. {
  1006. Loop(1, sizeof(TDE_Menu))
  1007. {
  1008. TDE_TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
  1009. TDE_TextDrawSetSelectable(TDE_Menu[c], true);
  1010. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  1011. }
  1012. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  1013. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  1014. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  1015. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  1016. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  1017. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  1018. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  1019. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  1020. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  1021. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  1022. }
  1023.  
  1024. TDE_TextDrawCreate(ProjectTD[Index][ETextDrawID], 265.0, 155.0, "LD_SPAC:white");
  1025. TDE_TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.0, 0.0);
  1026. TDE_TextDrawTextSize(ProjectTD[Index][ETextDrawID], 90.0, 90.0);
  1027. TDE_TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
  1028. TDE_TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
  1029. TDE_TextDrawUseBox(ProjectTD[Index][ETextDrawID], 0);
  1030. TDE_TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
  1031. TDE_TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
  1032. TDE_TextDrawFont(ProjectTD[Index][ETextDrawID], 4);
  1033. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
  1034.  
  1035.  
  1036. ProjectTD[EditIndex][ItsFromTDE] = 1;
  1037. format(ProjectTD[EditIndex][ETextDrawText], 800, "LD_SPAC:white");
  1038. ProjectTD[EditIndex][ETextDrawPosX] = 265.0;
  1039. ProjectTD[EditIndex][ETextDrawPosY] = 155.0;
  1040. ProjectTD[EditIndex][ETextDrawTextX] = 90.0;
  1041. ProjectTD[EditIndex][ETextDrawTextY] = 90.0;
  1042. ProjectTD[EditIndex][ETextDrawLetterX] = 0.0;
  1043. ProjectTD[EditIndex][ETextDrawLetterY] = 0.0;
  1044. ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
  1045. ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
  1046. ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
  1047.  
  1048. new string[128];
  1049. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}criada.", EditIndex);
  1050. SendClientMessage(ProjectEditor, -1, string);
  1051. SelectTextDraw(playerid, -1);
  1052. IsPSel = true;
  1053. UpdateIcons(EditIndex);
  1054.  
  1055. if(EditMode == EDITMODE_MODELS)
  1056. {
  1057. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  1058. EditMode = EDITMODE_NONE;
  1059. }
  1060. }
  1061. case 2: // Preview models
  1062. {
  1063. new Index = GetAvailableIndex();
  1064. if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Erro: número máximo de textdraws por projeto alcançado.");
  1065. EditIndex = Index;
  1066.  
  1067. if(EditIndex == 0)
  1068. {
  1069. Loop(1, sizeof(TDE_Menu))
  1070. {
  1071. TDE_TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
  1072. TDE_TextDrawSetSelectable(TDE_Menu[c], true);
  1073. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  1074. }
  1075. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  1076. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  1077. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  1078. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  1079. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  1080. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  1081. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  1082. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  1083. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  1084. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  1085. }
  1086.  
  1087. TDE_TextDrawCreate(ProjectTD[Index][ETextDrawID], 265.0, 155.0, "");
  1088. TDE_TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.0, 0.0);
  1089. TDE_TextDrawTextSize(ProjectTD[Index][ETextDrawID], 90.0, 90.0);
  1090. TDE_TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
  1091. TDE_TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
  1092. TDE_TextDrawUseBox(ProjectTD[Index][ETextDrawID], 0);
  1093. TDE_TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
  1094. TDE_TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
  1095. TDE_TextDrawFont(ProjectTD[Index][ETextDrawID], 5);
  1096. TDE_TextDrawSetPreviewModel(ProjectTD[Index][ETextDrawID], 0);
  1097. TDE_TextDrawSetPreviewRot(ProjectTD[Index][ETextDrawID], 0.0, 0.0, 0.0, 1.0);
  1098. TDE_TextDrawBackgroundColor(ProjectTD[Index][ETextDrawID], 0x000000FF);
  1099. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
  1100.  
  1101.  
  1102. ProjectTD[EditIndex][ItsFromTDE] = 1;
  1103. format(ProjectTD[EditIndex][ETextDrawText], 800, "");
  1104. ProjectTD[EditIndex][ETextDrawPosX] = 265.0;
  1105. ProjectTD[EditIndex][ETextDrawPosY] = 155.0;
  1106. ProjectTD[EditIndex][ETextDrawTextX] = 90.0;
  1107. ProjectTD[EditIndex][ETextDrawTextY] = 90.0;
  1108. ProjectTD[EditIndex][ETextDrawLetterX] = 0.0;
  1109. ProjectTD[EditIndex][ETextDrawLetterY] = 0.0;
  1110. ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
  1111. ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
  1112. ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
  1113. ProjectTD[EditIndex][ETextDrawModelid] = 0;
  1114. ProjectTD[EditIndex][ETextDrawRotX] = 0.0;
  1115. ProjectTD[EditIndex][ETextDrawRotY] = 0.0;
  1116. ProjectTD[EditIndex][ETextDrawRotZ] = 0.0;
  1117. ProjectTD[EditIndex][ETextDrawZoom] = 1.0;
  1118. ProjectTD[EditIndex][ETextDrawVehCol1] = 1;
  1119. ProjectTD[EditIndex][ETextDrawVehCol2] = 1;
  1120. new string[128];
  1121. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}criada.", EditIndex);
  1122. SendClientMessage(ProjectEditor, -1, string);
  1123. SelectTextDraw(playerid, -1);
  1124. IsPSel = true;
  1125. UpdateIcons(EditIndex);
  1126. }
  1127. case 3:
  1128. {
  1129. new Index = GetAvailableIndex();
  1130. if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Erro: número máximo de textdraws por projeto alcançado.");
  1131. EditIndex = Index;
  1132.  
  1133. if(EditIndex == 0)
  1134. {
  1135. Loop(1, sizeof(TDE_Menu))
  1136. {
  1137. TDE_TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
  1138. TDE_TextDrawSetSelectable(TDE_Menu[c], true);
  1139. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  1140. }
  1141. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  1142. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  1143. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  1144. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  1145. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  1146. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  1147. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  1148. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  1149. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  1150. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  1151. }
  1152.  
  1153. TDE_TextDrawCreate(ProjectTD[Index][ETextDrawID], 290.0, 190.0, "box");
  1154. TDE_TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.0, 10.0);
  1155. TDE_TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
  1156. TDE_TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
  1157. TDE_TextDrawUseBox(ProjectTD[Index][ETextDrawID], 1);
  1158. TDE_TextDrawTextSize(ProjectTD[Index][ETextDrawID], 350.0, 0.0);
  1159. TDE_TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
  1160. TDE_TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
  1161. TDE_TextDrawBackgroundColor(ProjectTD[Index][ETextDrawID], 255);
  1162. TDE_TextDrawBoxColor(ProjectTD[Index][ETextDrawID], 255);
  1163. TDE_TextDrawFont(ProjectTD[Index][ETextDrawID], 1);
  1164. TDE_TextDrawSetProportional(ProjectTD[Index][ETextDrawID], 1);
  1165. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
  1166.  
  1167.  
  1168. ProjectTD[EditIndex][ItsFromTDE] = 1;
  1169. format(ProjectTD[EditIndex][ETextDrawText], 800, "box");
  1170. ProjectTD[EditIndex][ETextDrawPosX] = 290.0;
  1171. ProjectTD[EditIndex][ETextDrawPosY] = 190.0;
  1172. ProjectTD[EditIndex][ETextDrawLetterX] = 0.0;
  1173. ProjectTD[EditIndex][ETextDrawLetterY] = 10.0;
  1174. ProjectTD[EditIndex][ETextDrawTextX] = 350.0;
  1175. ProjectTD[EditIndex][ETextDrawTextY] = 0.0;
  1176. ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
  1177. ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
  1178. ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
  1179.  
  1180. new string[128];
  1181. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}criada.", EditIndex);
  1182. SendClientMessage(ProjectEditor, -1, string);
  1183. SelectTextDraw(playerid, -1);
  1184. IsPSel = true;
  1185. UpdateIcons(EditIndex);
  1186.  
  1187. if(EditMode == EDITMODE_MODELS)
  1188. {
  1189. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  1190. EditMode = EDITMODE_NONE;
  1191. }
  1192. }
  1193. }
  1194. }
  1195. else
  1196. {
  1197. SelectTextDraw(ProjectEditor, -1);
  1198. IsPSel = true;
  1199. }
  1200. }
  1201. case DIALOG_MANAGE:
  1202. {
  1203. if(response)
  1204. {
  1205. if(BackManageDialog[listitem] == 1)
  1206. {
  1207. PageStart -= 10;
  1208. ShowManage(ProjectEditor);
  1209. return 1;
  1210. }
  1211.  
  1212. if(listitem == 10)
  1213. {
  1214. PageStart += 10;
  1215. ShowManage(ProjectEditor);
  1216. return 1;
  1217. }
  1218.  
  1219. new id = 0;
  1220. for(new i = PageStart; i < MAX_PROJECT_TEXTDRAWS; i ++)
  1221. {
  1222. if(ProjectTD[i][ItsFromTDE] == 1)
  1223. {
  1224. if(id == listitem)
  1225. {
  1226. EditIndex = i;
  1227. break;
  1228. }
  1229. id ++;
  1230. }
  1231. }
  1232. UpdateIcons(EditIndex);
  1233. new string[128];
  1234. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}selecionada.", EditIndex);
  1235. SendClientMessage(ProjectEditor, -1, string);
  1236. SelectTextDraw(ProjectEditor, -1);
  1237. IsPSel = true;
  1238. }
  1239. else
  1240. {
  1241. SelectTextDraw(ProjectEditor, -1);
  1242. IsPSel = true;
  1243. }
  1244. }
  1245. case DIALOG_SELECTTDS:
  1246. {
  1247. if(response)
  1248. {
  1249. if(BackManageDialog[listitem] == 1)
  1250. {
  1251. PageStart -= 10;
  1252. ShowSelectTDManage(ProjectEditor);
  1253. return 1;
  1254. }
  1255.  
  1256. if(listitem == 10)
  1257. {
  1258. PageStart += 10;
  1259. ShowSelectTDManage(ProjectEditor);
  1260. return 1;
  1261. }
  1262.  
  1263. new id = 0;
  1264. for(new i = PageStart; i < MAX_PROJECT_TEXTDRAWS; i ++)
  1265. {
  1266. if(ProjectTD[i][ItsFromTDE] == 1)
  1267. {
  1268. if(id == listitem)
  1269. {
  1270. if(SelectedTextDraws[i]) SelectedTextDraws[i] = false;
  1271. else SelectedTextDraws[i] = true;
  1272. break;
  1273. }
  1274. id ++;
  1275. }
  1276. }
  1277. ShowSelectTDManage(ProjectEditor);
  1278.  
  1279. }
  1280. else
  1281. {
  1282. SelectTextDraw(ProjectEditor, -1);
  1283. IsPSel = true;
  1284. }
  1285. }
  1286. case DIALOG_EDITTEXT:
  1287. {
  1288. if(response)
  1289. {
  1290. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITTEXT, DIALOG_STYLE_INPUT, "ETDEditor - Texto", "Insira o texto de sua textdraw:", ">>", "X");
  1291. format(ProjectTD[EditIndex][ETextDrawText], 800, "%s", inputtext);
  1292. TDE_TextDrawSetString(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawText]);
  1293. SelectTextDraw(ProjectEditor, -1);
  1294. IsPSel = true;
  1295. }
  1296. else
  1297. {
  1298. SelectTextDraw(ProjectEditor, -1);
  1299. IsPSel = true;
  1300. }
  1301. }
  1302. case DIALOG_MODELID:
  1303. {
  1304. if(response)
  1305. {
  1306. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELID, DIALOG_STYLE_INPUT, "ETDEditor - ModelID", "Insira o ID do modelo:", ">>", "Fechar");
  1307. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELID, DIALOG_STYLE_INPUT, "ETDEditor - ModelID", "Insira o ID do modelo:", ">>", "Fechar");
  1308. //if(inputtext[0] < 0) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELID, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "X");
  1309. ProjectTD[EditIndex][ETextDrawModelid] = inputtext[0];
  1310. TDE_TextDrawSetPreviewModel(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawModelid]);
  1311. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) TDE_TextDrawSetPreviewVehCol(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
  1312. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1313. SelectTextDraw(ProjectEditor, -1);
  1314. IsPSel = true;
  1315. }
  1316. else
  1317. {
  1318. SelectTextDraw(ProjectEditor, -1);
  1319. IsPSel = true;
  1320. }
  1321. }
  1322. case DIALOG_CONFIRMEDELETE:
  1323. {
  1324. if(response)
  1325. {
  1326. if(EditIndex == INVALID_INDEX_ID) return false;
  1327. new string[128];
  1328. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}excluída.", EditIndex);
  1329. SendClientMessage(ProjectEditor, -1, string);
  1330.  
  1331. RemoveTextDrawTDE(EditIndex);
  1332. SelectTextDraw(ProjectEditor, -1);
  1333. IsPSel = true;
  1334. }
  1335. else
  1336. {
  1337. SelectTextDraw(ProjectEditor, -1);
  1338. IsPSel = true;
  1339. }
  1340. }
  1341. case DIALOG_SIZEX:
  1342. {
  1343. if(response)
  1344. {
  1345. new Float:SizeX;
  1346. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_SIZEX, DIALOG_STYLE_INPUT, "ETDEditor - TextSizeX", "Insira o valor do eixo TextSizeX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '18 .8 '", ">>", "X");
  1347. if(sscanf(inputtext, "f", SizeX)) return ShowPlayerDialog(ProjectEditor, DIALOG_SIZEX, DIALOG_STYLE_INPUT, "ETDEditor - TextSizeX", "Insira o valor do eixo TextSizeX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '18 .8 '", ">>", "X");
  1348. ProjectTD[EditIndex][ETextDrawTextX] = SizeX;
  1349. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  1350. if(alignment == 2) TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  1351. else TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  1352. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1353. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0) ShowPlayerDialog(ProjectEditor, DIALOG_SIZEY, DIALOG_STYLE_INPUT, "ETDEditor - LetterSizeY", "Insira o valor do eixo LetteSizeY:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '0.4'", ">>", "<<");
  1354. ShowPlayerDialog(ProjectEditor, DIALOG_SIZEY, DIALOG_STYLE_INPUT, "ETDEditor - TextSizeY", "Insira o valor do eixo TextSizeY:\nNota: para colocar um valor hexadecimal use '.' em vez de ',' exemplo: '10 .2 '", ">>", "<<");
  1355. }
  1356. else
  1357. {
  1358. SelectTextDraw(ProjectEditor, -1);
  1359. IsPSel = true;
  1360. }
  1361. return 1;
  1362. }
  1363. case DIALOG_SIZEY:
  1364. {
  1365. if(response)
  1366. {
  1367. new Float:SizeY;
  1368. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_SIZEY, DIALOG_STYLE_INPUT, "ETDEditor - TextSizeY", "Insira o valor do eixo TextSizeY:\nNota: para colocar um valor hexadecimal use '.' em vez de ',' exemplo: '10 .2 '", ">>", "<<");
  1369. if(sscanf(inputtext, "f", SizeY)) return ShowPlayerDialog(ProjectEditor, DIALOG_SIZEY, DIALOG_STYLE_INPUT, "ETDEditor - TextSizeY", "Insira o valor do eixo TextSizeY:\nNota: para colocar um valor hexadecimal use '.' em vez de ',' exemplo: '10 .2 '", ">>", "<<");
  1370. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0)
  1371. {
  1372. ProjectTD[EditIndex][ETextDrawLetterY] = SizeY;
  1373. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  1374. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1375. SelectTextDraw(ProjectEditor, -1);
  1376. IsPSel = true;
  1377. return 1;
  1378. }
  1379. ProjectTD[EditIndex][ETextDrawTextY] = SizeY;
  1380. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  1381. if(alignment == 2) TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  1382. else TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  1383. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1384. SelectTextDraw(ProjectEditor, -1);
  1385. IsPSel = true;
  1386. }
  1387. else ShowPlayerDialog(ProjectEditor, DIALOG_SIZEX, DIALOG_STYLE_INPUT, "ETDEditor - TextSizeX", "Insira o valor do eixo TextSizeX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '18 .8 '", ">>", "X");
  1388. }
  1389. case DIALOG_EDITOUTLINE:
  1390. {
  1391. if(response)
  1392. {
  1393. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "ETDEditor - Outline", "Insira um valor para o outline.\n\n0 para remover o outline.", ">>", "X");
  1394. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "ETDEditor - Outline", "Insira um valor para o outline.\n\n0 para remover o outline.", ">>", "X");
  1395. //if(inputtext[0] < 0) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "TDEditor - Outline", "Insert an integer value for the outline.\n\n0 to remove the outline.", ">>", "X");
  1396. ProjectTD[EditIndex][ETextDrawOutline] = inputtext[0];
  1397. TDE_TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], inputtext[0]);
  1398. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1399. SelectTextDraw(ProjectEditor, -1);
  1400. IsPSel = true;
  1401. }
  1402. else
  1403. {
  1404. SelectTextDraw(ProjectEditor, -1);
  1405. IsPSel = true;
  1406. }
  1407. }
  1408. case DIALOG_MODELS:
  1409. {
  1410. if(response)
  1411. {
  1412. switch(listitem)
  1413. {
  1414. case 0: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_MLD, DIALOG_STYLE_INPUT, "ETDEditor - ModelID", "Insira o ID do modelo:", ">>", "<<");
  1415. case 1: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RX, DIALOG_STYLE_INPUT, "ETDEditor - RotX", "RotationX, para usar um valor hexadecimal use ',' \nexemplo: '.': '83 .4 ':", ">>", "<<");
  1416. case 2: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RY, DIALOG_STYLE_INPUT, "ETDEditor - RotY", "RotationY, para usar um valor hexadecimal use ',' \nexemplo: '.': '83 .4 ':", ">>", "<<");
  1417. case 3: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RZ, DIALOG_STYLE_INPUT, "ETDEditor - RotZ", "RotationZ, para usar um valor hexadecimal use ',' \nexemplo: '.': '83 .4 ':", ">>", "<<");
  1418. case 4: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_ZO, DIALOG_STYLE_INPUT, "ETDEditor - Zoom", "Zoom, para usar um valor hexadecimal use ',' \nFor example '.': '1 .4 ':", ">>", "<<");
  1419. case 5: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C1, DIALOG_STYLE_INPUT, "ETDEditor - Cor do veículo 1", "Insira a cor do veículo 1:", ">>", "<<");
  1420. case 6: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C2, DIALOG_STYLE_INPUT, "ETDEditor - Cor do veículo 2", "Insira a cor do veículo 2:", ">>", "<<");
  1421. }
  1422. }
  1423. else
  1424. {
  1425. SelectTextDraw(ProjectEditor, -1);
  1426. IsPSel = true;
  1427. }
  1428. }
  1429. case DIALOG_MODELS_MLD:
  1430. {
  1431. if(response)
  1432. {
  1433. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_MLD, DIALOG_STYLE_INPUT, "ETDEditor - ModelID", "Insira o ID do modelo:", ">>", "<<");
  1434. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_MLD, DIALOG_STYLE_INPUT, "ETDEditor - ModelID", "Insira o ID do modelo:", ">>", "<<");
  1435. if(inputtext[0] < 0) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_MLD, DIALOG_STYLE_INPUT, "ETDEditor - ModelID", "Insira o ID do modelo:", ">>", "<<");
  1436. ProjectTD[EditIndex][ETextDrawModelid] = inputtext[0];
  1437. TDE_TextDrawSetPreviewModel(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawModelid]);
  1438. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) TDE_TextDrawSetPreviewVehCol(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
  1439. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1440. SelectTextDraw(ProjectEditor, -1);
  1441. IsPSel = true;
  1442. }
  1443. else
  1444. {
  1445. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
  1446. else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
  1447. }
  1448. }
  1449. case DIALOG_MODELS_RX:
  1450. {
  1451. if(response)
  1452. {
  1453. new Float:coord;
  1454. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RX, DIALOG_STYLE_INPUT, "ETDEditor - RotX", "RotationX, para usar um valor hexadecimal use ',' \nexemplo: '.': '83 .4 ':", ">>", "<<");
  1455. if(sscanf(inputtext, "f", coord)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RX, DIALOG_STYLE_INPUT, "ETDEditor - RotX", "RotationX, para usar um valor hexadecimal use ',' \exemplo: '.': '83 .4 ':", ">>", "<<");
  1456. ProjectTD[EditIndex][ETextDrawRotX] = coord;
  1457. TDE_TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
  1458. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1459. SelectTextDraw(ProjectEditor, -1);
  1460. IsPSel = true;
  1461. }
  1462. else
  1463. {
  1464. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
  1465. else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
  1466. }
  1467. }
  1468. case DIALOG_MODELS_RY:
  1469. {
  1470. if(response)
  1471. {
  1472. new Float:coord;
  1473. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RY, DIALOG_STYLE_INPUT, "ETDEditor - RotY", "RotationY, para usar um valor hexadecimal use ',' \nexemplo: '.': '83 .4 ':", ">>", "<<");
  1474. if(sscanf(inputtext, "f", coord)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RY, DIALOG_STYLE_INPUT, "ETDEditor - RotY", "RotationY, para usar um valor hexadecimal use ',' \nexemplo: '.': '83 .4 ':", ">>", "<<");
  1475. ProjectTD[EditIndex][ETextDrawRotY] = coord;
  1476. TDE_TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
  1477. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1478. SelectTextDraw(ProjectEditor, -1);
  1479. IsPSel = true;
  1480. }
  1481. else
  1482. {
  1483. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
  1484. else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
  1485. }
  1486. }
  1487. case DIALOG_MODELS_RZ:
  1488. {
  1489. if(response)
  1490. {
  1491. new Float:coord;
  1492. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RZ, DIALOG_STYLE_INPUT, "ETDEditor - RotZ", "RotationZ, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
  1493. if(sscanf(inputtext, "f", coord)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RZ, DIALOG_STYLE_INPUT, "ETDEditor - RotZ", "RotationZ, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
  1494. ProjectTD[EditIndex][ETextDrawRotZ] = coord;
  1495. TDE_TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
  1496. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1497. SelectTextDraw(ProjectEditor, -1);
  1498. IsPSel = true;
  1499. }
  1500. else
  1501. {
  1502. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
  1503. else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
  1504. }
  1505. }
  1506. case DIALOG_MODELS_ZO:
  1507. {
  1508. if(response)
  1509. {
  1510. new Float:coord;
  1511. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_ZO, DIALOG_STYLE_INPUT, "ETDEditor - Zoom", "Zoom, para usar um valor hexadecimal use ',' \nexemplo: '.': '1 .4 ':", ">>", "<<");
  1512. if(sscanf(inputtext, "f", coord)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_ZO, DIALOG_STYLE_INPUT, "ETDEditor - Zoom", "Zoom, para usar um valor hexadecimal use ',' \nexemplo: '.': '1 .4 ':", ">>", "<<");
  1513. ProjectTD[EditIndex][ETextDrawZoom] = coord;
  1514. TDE_TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
  1515. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1516. SelectTextDraw(ProjectEditor, -1);
  1517. IsPSel = true;
  1518. }
  1519. else
  1520. {
  1521. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
  1522. else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
  1523. }
  1524. }
  1525. case DIALOG_MODELS_C1:
  1526. {
  1527. if(response)
  1528. {
  1529. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C1, DIALOG_STYLE_INPUT, "ETDEditor - Cor do veículo 1", "Insira a cor do veículo 1:", ">>", "<<");
  1530. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C1, DIALOG_STYLE_INPUT, "ETDEditor - Cor do veículo 1", "Insira a cor do veículo 1:", ">>", "<<");
  1531. ProjectTD[EditIndex][ETextDrawVehCol1] = inputtext[0];
  1532. TDE_TextDrawSetPreviewVehCol(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
  1533. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1534. SelectTextDraw(ProjectEditor, -1);
  1535. IsPSel = true;
  1536. }
  1537. else
  1538. {
  1539. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
  1540. else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
  1541. }
  1542. }
  1543. case DIALOG_MODELS_C2:
  1544. {
  1545. if(response)
  1546. {
  1547. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C2, DIALOG_STYLE_INPUT, "ETDEditor - Cor do veículo 2", "Insira a cor do veículo 2:", ">>", "<<");
  1548. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C2, DIALOG_STYLE_INPUT, "ETDEditor - Vehicle Color 2", "Insira a cor do veículo 2:", ">>", "<<");
  1549. ProjectTD[EditIndex][ETextDrawVehCol2] = inputtext[0];
  1550. TDE_TextDrawSetPreviewVehCol(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
  1551. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1552. SelectTextDraw(ProjectEditor, -1);
  1553. IsPSel = true;
  1554. }
  1555. else
  1556. {
  1557. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
  1558. else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
  1559. }
  1560. }
  1561. case DIALOG_EDITSHADOW:
  1562. {
  1563. if(response)
  1564. {
  1565. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITSHADOW, DIALOG_STYLE_INPUT, "ETDEditor - Sombra", "Insira um valor para sombra.\n\n0 para remover a sombra.", ">>", "X");
  1566. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITSHADOW, DIALOG_STYLE_INPUT, "ETDEditor - Sombra", "Insira um valor para a sombra.\n\n0 para remover a sombra.", ">>", "X");
  1567. //if(inputtext[0] < 0) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "ETDEditor - Outline", "Insert an integer value for the outline.\n\n0 to remove the outline.", ">>", "X");
  1568. ProjectTD[EditIndex][ETextDrawShadow] = inputtext[0];
  1569. TDE_TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], inputtext[0]);
  1570. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1571. SelectTextDraw(ProjectEditor, -1);
  1572. IsPSel = true;
  1573. }
  1574. else
  1575. {
  1576. SelectTextDraw(ProjectEditor, -1);
  1577. IsPSel = true;
  1578. }
  1579. }
  1580. case DIALOG_LETTERX:
  1581. {
  1582. if(response)
  1583. {
  1584. new Float:LetterSizeX;
  1585. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_LETTERX, DIALOG_STYLE_INPUT, "ETDEditor - LetterSizeX", "Insira um valor para o eixo LetterSizeX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '0.4'", ">>", "X");
  1586. if(sscanf(inputtext, "f", LetterSizeX)) return ShowPlayerDialog(ProjectEditor, DIALOG_LETTERX, DIALOG_STYLE_INPUT, "ETDEditor - LetterSizeX", "Insira um valor para o eixo LetterSizeX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '0.4'", ">>", "X");
  1587. ProjectTD[EditIndex][ETextDrawLetterX] = LetterSizeX;
  1588. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  1589. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1590. ShowPlayerDialog(ProjectEditor, DIALOG_LETTERY, DIALOG_STYLE_INPUT, "ETDEditor - LetterSizeY", "Insira um valor para o eixo LetterSizeY:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '0.4'", ">>", "<<");
  1591. }
  1592. else
  1593. {
  1594. SelectTextDraw(ProjectEditor, -1);
  1595. IsPSel = true;
  1596. }
  1597. }
  1598. case DIALOG_LETTERY:
  1599. {
  1600. if(response)
  1601. {
  1602. new Float:LetterSizeY;
  1603. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_LETTERY, DIALOG_STYLE_INPUT, "ETDEditor - LetterSizeY", "Insira um valor para o eixo LetteSizeY:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '0.4'", ">>", "X");
  1604. if(sscanf(inputtext, "f", LetterSizeY)) return ShowPlayerDialog(ProjectEditor, DIALOG_LETTERY, DIALOG_STYLE_INPUT, "ETDEditor - LetterSizeY", "Insira um valor para o eixo LetterSizeY:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '0.4'", ">>", "X");
  1605. ProjectTD[EditIndex][ETextDrawLetterY] = LetterSizeY;
  1606. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  1607. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1608. SelectTextDraw(ProjectEditor, -1);
  1609. IsPSel = true;
  1610. }
  1611. else ShowPlayerDialog(ProjectEditor, DIALOG_LETTERX, DIALOG_STYLE_INPUT, "ETDEditor - LetterSizeX", "Insira um valor para o eixo LetterSizeX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '0.4'", ">>", "X");
  1612. }
  1613. case DIALOG_POSX:
  1614. {
  1615. if(response)
  1616. {
  1617. new Float:LetterSizeX;
  1618. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_POSX, DIALOG_STYLE_INPUT, "ETDEditor - PositionX", "Insira um valor para o eixo PositionX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '298.73'", ">>", "X");
  1619. if(sscanf(inputtext, "f", LetterSizeX)) return ShowPlayerDialog(ProjectEditor, DIALOG_POSX, DIALOG_STYLE_INPUT, "ETDEditor - PositionX", "Insira um valor para o eixo PositionX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '298.73'", ">>", "X");
  1620.  
  1621. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
  1622. {
  1623. if(TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]) != 2)
  1624. {
  1625. new Float:Offset = ProjectTD[EditIndex][ETextDrawTextX] - ProjectTD[EditIndex][ETextDrawPosX];
  1626. ProjectTD[EditIndex][ETextDrawTextX] = LetterSizeX+Offset;
  1627. TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  1628. }
  1629. }
  1630. ProjectTD[EditIndex][ETextDrawPosX] = LetterSizeX;
  1631. TDE_TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  1632. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1633. ShowPlayerDialog(ProjectEditor, DIALOG_POSY, DIALOG_STYLE_INPUT, "ETDEditor - PositionY", "Insira um valor para o eixo PositionY:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '32.3'", ">>", "X");
  1634. }
  1635. else
  1636. {
  1637. SelectTextDraw(ProjectEditor, -1);
  1638. IsPSel = true;
  1639. }
  1640. }
  1641. case DIALOG_POSY:
  1642. {
  1643. if(response)
  1644. {
  1645. new Float:LetterSizeY;
  1646. if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_POSY, DIALOG_STYLE_INPUT, "ETDEditor - PositionY", "Insira um valor para o eixo PositionY:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '32.3'", ">>", "X");
  1647. if(sscanf(inputtext, "f", LetterSizeY)) return ShowPlayerDialog(ProjectEditor, DIALOG_POSY, DIALOG_STYLE_INPUT, "ETDEditor - PositionY", "Insira um valor para o eixo PositionY:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '32.3'", ">>", "X");
  1648. ProjectTD[EditIndex][ETextDrawPosY] = LetterSizeY;
  1649. TDE_TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  1650. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1651. SelectTextDraw(ProjectEditor, -1);
  1652. IsPSel = true;
  1653. }
  1654. else ShowPlayerDialog(ProjectEditor, DIALOG_POSX, DIALOG_STYLE_INPUT, "ETDEditor - PositionX", "Insira o valor do eixo PositionX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '298.73'", ">>", "X");
  1655. }
  1656. case DIALOG_MIRROR:
  1657. {
  1658. if(response)
  1659. {
  1660. new Index = GetAvailableIndex();
  1661. if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Erro: o número máximo de textdraws por projeto foi alcançado.");
  1662.  
  1663. new string[128];
  1664. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}foi duplicada na TextDraw{e2b960} #%d.", EditIndex, Index);
  1665. SendClientMessage(ProjectEditor, -1, string);
  1666. DuplicateTextDraw(EditIndex, Index);
  1667.  
  1668. switch(listitem)
  1669. {
  1670. // Mirror X
  1671. case 0: ProjectTD[Index][ETextDrawPosX] = floatabs(ProjectTD[Index][ETextDrawPosX] - 640.0);
  1672. // Mirror Y
  1673. case 1: ProjectTD[Index][ETextDrawPosY] = floatabs(ProjectTD[Index][ETextDrawPosY] - 440.0);
  1674. // Mirror XY
  1675. case 2:
  1676. {
  1677. ProjectTD[Index][ETextDrawPosX] = floatabs(ProjectTD[Index][ETextDrawPosX] - 640.0);
  1678. ProjectTD[Index][ETextDrawPosY] = floatabs(ProjectTD[Index][ETextDrawPosY] - 440.0);
  1679. }
  1680. }
  1681. TDE_TextDrawSetPos(ProjectTD[Index][ETextDrawID], ProjectTD[Index][ETextDrawPosX], ProjectTD[Index][ETextDrawPosY]);
  1682. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
  1683. }
  1684. SelectTextDraw(ProjectEditor, -1);
  1685. IsPSel = true;
  1686. }
  1687.  
  1688.  
  1689. case DIALOG_EDITCOLOR:
  1690. {
  1691. if(response)
  1692. {
  1693. switch(listitem)
  1694. {
  1695. case 0:
  1696. {
  1697. new str[1024];
  1698. Loop(0, sizeof(PremadeColors))
  1699. {
  1700. format(str, sizeof(str), "%s{%06x}%s\n", str, PremadeColors[c][0] >>> 8, PremadeColors[c][1]);
  1701. }
  1702. ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+100, DIALOG_STYLE_LIST, "ETDEditor - BG/Box/Color", str, ">>", "<<");
  1703. }
  1704. case 1: ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+101, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "Insira a no formato HEX RRGGBBAA, exemplo: FF0000FF:", ">>", "<<");
  1705. case 2: ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+102, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor vermelha:", ">>", "<<");
  1706. }
  1707. }
  1708. else
  1709. {
  1710. EditMode = EDITMODE_NONE;
  1711. SelectTextDraw(ProjectEditor, -1);
  1712. IsPSel = true;
  1713. }
  1714. }
  1715. case DIALOG_EDITCOLOR+100:
  1716. {
  1717. if(response)
  1718. {
  1719. switch(EditMode)
  1720. {
  1721. case EDITMODE_COLOR:
  1722. {
  1723. ProjectTD[EditIndex][ETextDrawColor] = PremadeColors[listitem][0];
  1724. TDE_TextDrawColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawColor]);
  1725. }
  1726. case EDITMODE_BGCOLOR:
  1727. {
  1728. ProjectTD[EditIndex][ETextDrawBGColor] = PremadeColors[listitem][0];
  1729. TDE_TextDrawBackgroundColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBGColor]);
  1730. }
  1731. case EDITMODE_BOXCOLOR:
  1732. {
  1733. ProjectTD[EditIndex][ETextDrawBoxColor] = PremadeColors[listitem][0];
  1734. TDE_TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBoxColor]);
  1735. }
  1736. }
  1737. EditMode = EDITMODE_NONE;
  1738. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1739. SelectTextDraw(ProjectEditor, -1);
  1740. IsPSel = true;
  1741. }
  1742. else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "ETDEditor - BG/Box/Color", "Cores principais\nEscreva o exato valor (HEX)\nCombinador de cores (RGBA)", ">>", "X");
  1743. }
  1744. case DIALOG_EDITCOLOR+101:
  1745. {
  1746. if(response)
  1747. {
  1748. if(strlen(inputtext) < 8) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+101, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "Insira a cor no formato HEX RRGGBBAA, exemplo: FF0000FF:", ">>", "<<");
  1749.  
  1750. if(inputtext[0] == '0' && inputtext[1] == 'x') Colors[0] = HexToInt(inputtext[2]);
  1751. if(inputtext[0] == '#') Colors[0] = HexToInt(inputtext[1]);
  1752. else Colors[0] = HexToInt(inputtext);
  1753. switch(EditMode)
  1754. {
  1755. case EDITMODE_COLOR:
  1756. {
  1757. ProjectTD[EditIndex][ETextDrawColor] = Colors[0];
  1758. TDE_TextDrawColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawColor]);
  1759. }
  1760. case EDITMODE_BGCOLOR:
  1761. {
  1762. ProjectTD[EditIndex][ETextDrawBGColor] = Colors[0];
  1763. TDE_TextDrawBackgroundColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBGColor]);
  1764. }
  1765. case EDITMODE_BOXCOLOR:
  1766. {
  1767. ProjectTD[EditIndex][ETextDrawBoxColor] = Colors[0];
  1768. TDE_TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBoxColor]);
  1769. }
  1770. }
  1771. EditMode = EDITMODE_NONE;
  1772. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1773. SelectTextDraw(ProjectEditor, -1);
  1774. IsPSel = true;
  1775. }
  1776. else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "ETDEditor - BG/Box/Color", "Cores principais\nEscreva o valor exato (HEX)\nCombinador de cores (RGBA)", ">>", "X");
  1777. }
  1778. case DIALOG_EDITCOLOR+102:
  1779. {
  1780. if(response)
  1781. {
  1782. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+102, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor vermelha:", ">>", "<<");
  1783. if(inputtext[0] < 0 || inputtext[0] > 255) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+102, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor vermelha:", ">>", "<<");
  1784. Colors[0] = inputtext[0];
  1785. ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+103, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 to 255, insira o valor da cor verde:", ">>", "<<");
  1786. }
  1787. else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "ETDEditor - BG/Box/Color", "Cores principais\nInsira o valor exato (HEX)\nCombinador de cores (RGBA)", ">>", "X");
  1788. }
  1789. case DIALOG_EDITCOLOR+103:
  1790. {
  1791. if(response)
  1792. {
  1793. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+103, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor verde:", ">>", "X");
  1794. if(inputtext[0] < 0 || inputtext[0] > 255) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+103, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor verde:", ">>", "X");
  1795. Colors[1] = inputtext[0];
  1796. ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+104, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor azul:", ">>", "<<");
  1797. }
  1798. else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+102, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor vermelha:", ">>", "<<");
  1799. }
  1800. case DIALOG_EDITCOLOR+104:
  1801. {
  1802. if(response)
  1803. {
  1804. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+104, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor azul:", ">>", "X");
  1805. if(inputtext[0] < 0 || inputtext[0] > 255) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+104, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor azul:", ">>", "X");
  1806. Colors[2] = inputtext[0];
  1807. ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+105, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor de Alpha:", ">>", "<<");
  1808. }
  1809. else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+103, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor verde:", ">>", "<<");
  1810. }
  1811. case DIALOG_EDITCOLOR+105:
  1812. {
  1813. if(response)
  1814. {
  1815. if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+105, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor de Alpha:", ">>", "<<");
  1816. if(inputtext[0] < 0 || inputtext[0] > 255) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+105, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor de Alpha:", ">>", "<<");
  1817. Colors[3] = inputtext[0];
  1818. new color = RGB(Colors[0], Colors[1], Colors[2], Colors[3]);
  1819. switch(EditMode)
  1820. {
  1821. case EDITMODE_COLOR:
  1822. {
  1823. ProjectTD[EditIndex][ETextDrawColor] = color;
  1824. TDE_TextDrawColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawColor]);
  1825. }
  1826. case EDITMODE_BGCOLOR:
  1827. {
  1828. ProjectTD[EditIndex][ETextDrawBGColor] = color;
  1829. TDE_TextDrawBackgroundColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBGColor]);
  1830. }
  1831. case EDITMODE_BOXCOLOR:
  1832. {
  1833. ProjectTD[EditIndex][ETextDrawBoxColor] = color;
  1834. TDE_TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBoxColor]);
  1835. }
  1836. }
  1837. EditMode = EDITMODE_NONE;
  1838. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  1839. SelectTextDraw(ProjectEditor, -1);
  1840. IsPSel = true;
  1841. }
  1842. else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+104, DIALOG_STYLE_INPUT, "ETDEditor - BG/Box/Color", "0 a 255, Insira o valor da cor azul:", ">>", "<<");
  1843. }
  1844. }
  1845. return false;
  1846. }
  1847.  
  1848. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  1849. {
  1850. if(clickedid == Text:INVALID_TEXT_DRAW)
  1851. {
  1852. if(!EditorEnabled && ProjectEditor == -1)
  1853. {
  1854. if(!IsPSel) return false;
  1855. TogglePlayerControllable(playerid, true);
  1856. TDE_TextDrawHideForPlayer(playerid, TDELOGO);
  1857. DestroyMenuTextDraws();
  1858. MouseCursor = false;
  1859. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}ETDEditor fechado.");
  1860. return 1;
  1861. }
  1862. }
  1863. if(clickedid == TDELOGO)
  1864. {
  1865. if(!IsPSel) return false;
  1866. IsPSel = false;
  1867. TDE_TextDrawHideForPlayer(playerid, TDELOGO);
  1868. CancelSelectTextDraw(playerid);
  1869. ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "ETDEditor", "Crie um novo projeto\nCarregue um projeto\nFechar projeto", ">>", "X");
  1870. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}ETDEditor inciado, se você precisar de ajuda pode usar: /tde help...");
  1871. return 1;
  1872. }
  1873.  
  1874. if(!EditorEnabled || ProjectEditor != playerid) return false;
  1875. if(EditMode == EDITMODE_ADJUST) return false;
  1876. if(clickedid == Text:INVALID_TEXT_DRAW)
  1877. {
  1878. if(!IsPSel) return false;
  1879. if(MouseCursor) SelectTextDraw(playerid, -1);
  1880. return 1;
  1881. }
  1882. if(clickedid == TDE_Menu[1])
  1883. {
  1884. if(EditIndex == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "Erro");
  1885. if(EditMode == EDITMODE_COLOR || EditMode == EDITMODE_BGCOLOR || EditMode == EDITMODE_BOXCOLOR || EditMode == EDITMODE_MODELS)
  1886. {
  1887. if(!CursorX && (0 < CursorY < (ScreenHeight - 1)) ) return 1;
  1888. if(CursorX == (ScreenWidth - 1) && (0 < CursorY < (ScreenHeight - 1)) ) return 1;
  1889. if(CursorY == (ScreenHeight - 1) && (0 < CursorX < (ScreenWidth - 1)) ) return 1;
  1890. }
  1891. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  1892. EditMode = EDITMODE_NONE;
  1893. IsPSel = false;
  1894. CancelSelectTextDraw(ProjectEditor);
  1895. //CheckManageDialog();
  1896. new d, c, e = -1, dialog[310], str[31];
  1897. for (d = PageStart; d < MAX_PROJECT_TEXTDRAWS; d++)
  1898. {
  1899. if(ProjectTD[d][ItsFromTDE] == 1)
  1900. {
  1901. e = 1;
  1902. BackManageDialog[c] = 0;
  1903. c ++;
  1904. if(c == 11)
  1905. {
  1906. if(PageStart >= 10)
  1907. {
  1908. format(str, 30, ">>\n");
  1909. strcat(dialog, str);
  1910. }
  1911. else
  1912. {
  1913. format(str, 30, ">>");
  1914. strcat(dialog, str);
  1915. }
  1916. break;
  1917. }
  1918. if(TDE_TextDrawGetFont(ProjectTD[d][ETextDrawID]) == 5) format(str, 31, "%s(%i)ModelPreview: %d\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawModelid]);
  1919. else format(str, 31, "%s(%i)%s\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawText]);
  1920. if(strlen(str) >= 30)
  1921. {
  1922. strdel(str, 28, 30);
  1923. strcat(str, "\n");
  1924. }
  1925. strcat(dialog, str);
  1926. }
  1927. }
  1928. if(PageStart >= 10)
  1929. {
  1930. BackManageDialog[c] = 1;
  1931. format(str, 30, "<<");
  1932. strcat(dialog, str);
  1933. }
  1934. if(e == -1)
  1935. {
  1936.  
  1937. new d1, c1, e1 = -1, dialog1[310], str1[31], DC = PageStart - 10;
  1938. for (d1 = DC; d1 < DC+11; d1++)
  1939. {
  1940. if(ProjectTD[d1][ItsFromTDE] == 1)
  1941. {
  1942. e1 = 1;
  1943.  
  1944. BackManageDialog[c] = 0;
  1945. c1 ++;
  1946. if(c1 == 11)
  1947. {
  1948. if(DC >= 10)
  1949. {
  1950. format(str1, 30, ">>\n");
  1951. strcat(dialog1, str1);
  1952. }
  1953. else
  1954. {
  1955. format(str1, 30, ">>");
  1956. strcat(dialog1, str1);
  1957. }
  1958. break;
  1959. }
  1960. if(TDE_TextDrawGetFont(ProjectTD[d][ETextDrawID]) == 5) format(str1, 31, "%s(%i)ModelPreview: %d\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawModelid]);
  1961. else format(str1, 31, "%s(%i)%s\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawText]);
  1962.  
  1963. if(strlen(str1) >= 30)
  1964. {
  1965. strdel(str1, 28, 30);
  1966. strcat(str1, "\n");
  1967. }
  1968. strcat(dialog1, str1);
  1969. }
  1970. }
  1971. if(DC >= 10)
  1972. {
  1973. BackManageDialog[c1] = 1;
  1974. format(str1, 30, "<<");
  1975. strcat(dialog1, str1);
  1976. }
  1977. if(e1 == -1) return SelectTextDraw(ProjectEditor, -1), IsPSel = true, SendClientMessage(ProjectEditor, -1, "Erro");
  1978. PageStart -= 10;
  1979. ShowPlayerDialog(ProjectEditor, DIALOG_MANAGE, DIALOG_STYLE_LIST, "ETDEditor - Gerenciar", dialog1, ">>", "X");
  1980. IsPSel = false;
  1981. return 1;
  1982. }
  1983. ShowPlayerDialog(ProjectEditor, DIALOG_MANAGE, DIALOG_STYLE_LIST, "ETDEditor - Gerenciar", dialog, ">>", "X");
  1984. IsPSel = false;
  1985. }
  1986. if(clickedid == TDE_Menu[2])
  1987. {
  1988. new Index = GetAvailableIndex();
  1989. if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}o número máximo de textdraws por projeto foi alcançado.");
  1990. EditIndex = Index;
  1991.  
  1992. if(EditIndex == 0)
  1993. {
  1994. Loop(1, sizeof(TDE_Menu))
  1995. {
  1996. TDE_TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
  1997. TDE_TextDrawSetSelectable(TDE_Menu[c], true);
  1998. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  1999. }
  2000. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  2001. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  2002. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  2003. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  2004. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  2005. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  2006. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  2007. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  2008. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  2009. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  2010. }
  2011.  
  2012. TDE_TextDrawCreate(ProjectTD[Index][ETextDrawID], 290.0, 190.0, "Texto");
  2013. TDE_TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.4, 1.6);
  2014. TDE_TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
  2015. TDE_TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
  2016. TDE_TextDrawUseBox(ProjectTD[Index][ETextDrawID], 0);
  2017. TDE_TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
  2018. TDE_TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
  2019. TDE_TextDrawBackgroundColor(ProjectTD[Index][ETextDrawID], 255);
  2020. TDE_TextDrawFont(ProjectTD[Index][ETextDrawID], 1);
  2021. TDE_TextDrawSetProportional(ProjectTD[Index][ETextDrawID], 1);
  2022. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
  2023.  
  2024.  
  2025. ProjectTD[EditIndex][ItsFromTDE] = 1;
  2026. format(ProjectTD[EditIndex][ETextDrawText], 800, "Texto");
  2027. ProjectTD[EditIndex][ETextDrawPosX] = 290.0;
  2028. ProjectTD[EditIndex][ETextDrawPosY] = 190.0;
  2029. ProjectTD[EditIndex][ETextDrawLetterX] = 0.4;
  2030. ProjectTD[EditIndex][ETextDrawLetterY] = 1.6;
  2031. ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
  2032. ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
  2033. ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
  2034.  
  2035. new string[128];
  2036. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}criada.", EditIndex);
  2037. SendClientMessage(ProjectEditor, -1, string);
  2038. UpdateIcons(EditIndex);
  2039.  
  2040. if(EditMode == EDITMODE_MODELS)
  2041. {
  2042. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2043. EditMode = EDITMODE_NONE;
  2044. }
  2045. return 1;
  2046. }
  2047. if(EditIndex == INVALID_INDEX_ID) return false;
  2048. if(clickedid == TDE_Menu[3])
  2049. {
  2050. IsPSel = false;
  2051. CancelSelectTextDraw(ProjectEditor);
  2052. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2053. EditMode = EDITMODE_NONE;
  2054. ShowPlayerDialog(ProjectEditor, DIALOG_CONFIRMEDELETE, DIALOG_STYLE_MSGBOX, "ETDEditor - Excluir textdraw", "Você tem certeza que deseja excluir esta textdraw?", "Sim", "Não");
  2055. IsPSel = false;
  2056. return 1;
  2057. }
  2058. if(clickedid == TDE_Menu[4])
  2059. {
  2060. ExportProject();
  2061. return 1;
  2062. }
  2063. if(clickedid == TDE_Menu[8])
  2064. {
  2065. new Index = GetAvailableIndex();
  2066. if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}o número máximo de textdraws foi alcançado.");
  2067. DuplicateTextDraw(EditIndex, Index);
  2068.  
  2069. new string[128];
  2070. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}foi duplicada na TextDraw{e2b960} #%d.", EditIndex, Index);
  2071. SendClientMessage(ProjectEditor, -1, string);
  2072. EditIndex = Index;
  2073. return 1;
  2074. }
  2075. if(clickedid == TDE_Menu[9])
  2076. {
  2077. if(EditMode != EDITMODE_POSITION)
  2078. {
  2079. TDE_TextDrawSetString(TD_Status, "EDITMODE_POSITION");
  2080. EditMode = EDITMODE_POSITION;
  2081. }
  2082. else TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE"), EditMode = EDITMODE_NONE;
  2083. return 1;
  2084. }
  2085. if(clickedid == TDE_Menu[10])
  2086. {
  2087. if(EditMode != EDITMODE_SIZE)
  2088. {
  2089. TDE_TextDrawSetString(TD_Status, "EDITMODE_SIZE");
  2090. EditMode = EDITMODE_SIZE;
  2091. }
  2092. else TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE"), EditMode = EDITMODE_NONE;
  2093. return 1;
  2094. }
  2095. if(clickedid == TDE_Menu[11] || clickedid == TDE_Menu[35])
  2096. {
  2097. /*if((GetTickCount() - DoubleClickCount) <= 180)
  2098. {
  2099. ShowPlayerDialog(ProjectEditor, DIALOG_EDITTEXT, DIALOG_STYLE_INPUT, "TDEditor - Español", "Introduzca el texto aquí:", ">>", "X");
  2100. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2101. EditMode = EDITMODE_NONE;
  2102. IsPSel = false;
  2103. CancelSelectTextDraw(ProjectEditor);
  2104. return 1;
  2105. }
  2106. DoubleClickCount = GetTickCount();
  2107. */
  2108. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5)
  2109. {
  2110. IsPSel = false;
  2111. CancelSelectTextDraw(ProjectEditor);
  2112. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2113. EditMode = EDITMODE_NONE;
  2114. ShowPlayerDialog(ProjectEditor, DIALOG_MODELID, DIALOG_STYLE_INPUT, "ETDEditor - ModelID", "Insira o ID do modelo:", ">>", "X");
  2115. return 1;
  2116. }
  2117. if(EditMode != EDITMODE_TEXT)
  2118. {
  2119. TDE_TextDrawSetString(TD_Status, "EDITMODE_TEXT");
  2120. EditMode = EDITMODE_TEXT;
  2121. }
  2122. else TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE"), EditMode = EDITMODE_NONE;
  2123. return 1;
  2124. }
  2125. if(clickedid == TDE_Menu[14])
  2126. {
  2127. if(EditMode != EDITMODE_COLOR)
  2128. {
  2129. ShowInfoDraw("~n~~n~~n~MOVA O MOUSE NOS CANTOS", 1000);
  2130. TDE_TextDrawSetString(TD_Status, "EDITMODE_COLOR");
  2131. EditMode = EDITMODE_COLOR;
  2132. }
  2133. else
  2134. {
  2135. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2136. EditMode = EDITMODE_NONE;
  2137. }
  2138. return 1;
  2139. }
  2140. if(clickedid == TDE_Menu[15])
  2141. {
  2142. if(EditMode != EDITMODE_BGCOLOR)
  2143. {
  2144. ShowInfoDraw("~n~~n~~n~MOVA O MOUSE NOS CANTOS", 1000);
  2145. TDE_TextDrawSetString(TD_Status, "EDITMODE_BGCOLOR");
  2146. EditMode = EDITMODE_BGCOLOR;
  2147. }
  2148. else
  2149. {
  2150. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2151. EditMode = EDITMODE_NONE;
  2152. }
  2153. return 1;
  2154. }
  2155. if(clickedid == TDE_Menu[32])
  2156. {
  2157. if(EditMode != EDITMODE_BOXCOLOR)
  2158. {
  2159. ShowInfoDraw("~n~~n~~n~MOVA O MOUSE NOS CANTOS", 1000);
  2160. TDE_TextDrawSetString(TD_Status, "EDITMODE_BOXCOLOR");
  2161. EditMode = EDITMODE_BOXCOLOR;
  2162. }
  2163. else
  2164. {
  2165. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2166. EditMode = EDITMODE_NONE;
  2167. }
  2168. return 1;
  2169. }
  2170. if(clickedid == TDE_Menu[16])
  2171. {
  2172. if(EditMode != EDITMODE_LETTERSIZE)
  2173. {
  2174. TDE_TextDrawSetString(TD_Status, "EDITMODE_LETTERSIZE");
  2175. EditMode = EDITMODE_LETTERSIZE;
  2176. }
  2177. else
  2178. {
  2179. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2180. EditMode = EDITMODE_NONE;
  2181. }
  2182. return 1;
  2183. }
  2184. if(clickedid == TDE_Menu[17])
  2185. {
  2186. if(EditMode != EDITMODE_OUTLINE)
  2187. {
  2188. TDE_TextDrawSetString(TD_Status, "EDITMODE_OUTLINE");
  2189. EditMode = EDITMODE_OUTLINE;
  2190. }
  2191. else
  2192. {
  2193. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2194. EditMode = EDITMODE_NONE;
  2195. }
  2196. return 1;
  2197. }
  2198. if(clickedid == TDE_Menu[18])
  2199. {
  2200. if(EditMode != EDITMODE_SHADOW)
  2201. {
  2202. TDE_TextDrawSetString(TD_Status, "EDITMODE_SHADOW");
  2203. EditMode = EDITMODE_SHADOW;
  2204. }
  2205. else
  2206. {
  2207. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2208. EditMode = EDITMODE_NONE;
  2209. }
  2210. return 1;
  2211. }
  2212. if(clickedid == TDE_Menu[12] || clickedid == TDE_Menu[13] || clickedid == TDE_Menu[24] || clickedid == TDE_Menu[25] || clickedid == TDE_Menu[26] || clickedid == TDE_Menu[27])
  2213. {
  2214. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5)
  2215. {
  2216. if(EditMode != EDITMODE_MODELS)
  2217. {
  2218. Colors[0] = floatround(ProjectTD[EditIndex][ETextDrawRotX]);
  2219. Colors[1] = floatround(ProjectTD[EditIndex][ETextDrawRotY]);
  2220. Colors[2] = floatround(ProjectTD[EditIndex][ETextDrawRotZ]);
  2221. Zoom = ProjectTD[EditIndex][ETextDrawZoom];
  2222.  
  2223. TDE_TextDrawSetString(TD_Status, "EDITMODE_MODELS");
  2224. EditMode = EDITMODE_MODELS;
  2225. }
  2226. else
  2227. {
  2228. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2229. EditMode = EDITMODE_NONE;
  2230. }
  2231. return 1;
  2232. }
  2233. new font = TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]);
  2234. switch(font)
  2235. {
  2236. case 0:
  2237. {
  2238. ShowInfoDraw("~n~~n~~n~~y~FONTE ~g~1", 1000);
  2239. TDE_TextDrawFont(ProjectTD[EditIndex][ETextDrawID], 1);
  2240. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2241. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  2242. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[25]);
  2243. }
  2244. case 1:
  2245. {
  2246. ShowInfoDraw("~n~~n~~n~~y~FONTE ~g~2", 1000);
  2247. TDE_TextDrawFont(ProjectTD[EditIndex][ETextDrawID], 2);
  2248. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2249. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
  2250. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[26]);
  2251. }
  2252. case 2:
  2253. {
  2254. ShowInfoDraw("~n~~n~~n~~y~FONTE ~g~3", 1000);
  2255. TDE_TextDrawFont(ProjectTD[EditIndex][ETextDrawID], 3);
  2256. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2257. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  2258. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[27]);
  2259. }
  2260. case 3:
  2261. {
  2262. ShowInfoDraw("~n~~n~~n~~y~FONTE ~g~0", 1000);
  2263. TDE_TextDrawFont(ProjectTD[EditIndex][ETextDrawID], 0);
  2264. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2265. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  2266. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[24]);
  2267. }
  2268. }
  2269. return 1;
  2270. }
  2271. if(clickedid == TDE_Menu[19] || clickedid == TDE_Menu[20] || clickedid == TDE_Menu[34])
  2272. {
  2273. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
  2274. {
  2275. ShowInfoDraw("~n~~n~~n~~y~BOX~w~0", 1000);
  2276. TDE_TextDrawUseBox(ProjectTD[EditIndex][ETextDrawID], 0);
  2277. TDE_TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], 0);
  2278. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2279. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  2280. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
  2281. }
  2282. else
  2283. {
  2284. ShowInfoDraw("~n~~n~~n~~y~BOX~w~1", 1000);
  2285. TDE_TextDrawUseBox(ProjectTD[EditIndex][ETextDrawID], 1);
  2286. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  2287. if(ProjectTD[EditIndex][ETextDrawTextX] == 0.0)
  2288. {
  2289. switch(alignment)
  2290. {
  2291. case 1: ProjectTD[EditIndex][ETextDrawTextX] = floatadd(ProjectTD[EditIndex][ETextDrawPosX], 5.0);
  2292. case 2: ProjectTD[EditIndex][ETextDrawTextX] = 10.0;
  2293. case 3: ProjectTD[EditIndex][ETextDrawTextX] = floatadd(ProjectTD[EditIndex][ETextDrawPosX], 5.0); //SA-MP BUG?
  2294. }
  2295. }
  2296. if(alignment == 2) TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  2297. else TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  2298. TDE_TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], 255);
  2299. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2300. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[19]);
  2301. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
  2302. }
  2303. return 1;
  2304. }
  2305. if(clickedid == TDE_Menu[21] || clickedid == TDE_Menu[22] || clickedid == TDE_Menu[23])
  2306. {
  2307. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  2308. switch(alignment)
  2309. {
  2310. case 1:
  2311. {
  2312. ShowInfoDraw("~n~~n~~n~~y~ALINHAMENTO ~g~2", 1000);
  2313. TDE_TextDrawAlignment(ProjectTD[EditIndex][ETextDrawID], 2);
  2314. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID])) TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  2315. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2316. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[21]);
  2317. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
  2318. }
  2319. case 2:
  2320. {
  2321. ShowInfoDraw("~n~~n~~n~~y~ALINHAMENTO ~g~3", 1000);
  2322. TDE_TextDrawAlignment(ProjectTD[EditIndex][ETextDrawID], 3);
  2323. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID])) TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  2324. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2325. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  2326. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
  2327. }
  2328. case 3:
  2329. {
  2330. ShowInfoDraw("~n~~n~~n~~y~ALINHAMENTO ~g~1", 1000);
  2331. TDE_TextDrawAlignment(ProjectTD[EditIndex][ETextDrawID], 1);
  2332. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID])) TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  2333. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2334. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  2335. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
  2336. }
  2337. }
  2338. return 1;
  2339. }
  2340. if(clickedid == TDE_Menu[28] || clickedid == TDE_Menu[29])
  2341. {
  2342. if(ProjectTD[EditIndex][ETextDrawSelectable] == 0)
  2343. {
  2344. ShowInfoDraw("~n~~n~~n~~y~CLICAVEL ~g~1", 1000);
  2345. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[28]);
  2346. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[29]);
  2347. ProjectTD[EditIndex][ETextDrawSelectable] = 1;
  2348. }
  2349. else
  2350. {
  2351. ShowInfoDraw("~n~~n~~n~~y~CLICAVEL ~g~0", 1000);
  2352. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  2353. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[28]);
  2354. ProjectTD[EditIndex][ETextDrawSelectable] = 0;
  2355. }
  2356. return 1;
  2357. }
  2358. if(clickedid == TDE_Menu[5] || clickedid == TDE_Menu[33])
  2359. {
  2360. if(ProjectTD[EditIndex][ETextDrawType] == 0)
  2361. {
  2362. ShowInfoDraw("~n~~n~~n~~y~TIPO ~y~PLAYER", 1000);
  2363. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[5]);
  2364. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[33]);
  2365. ProjectTD[EditIndex][ETextDrawType] = 1;
  2366. }
  2367. else
  2368. {
  2369. ShowInfoDraw("~n~~n~~n~~y~TIPO ~y~GLOBAL", 1000);
  2370. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  2371. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[5]);
  2372. ProjectTD[EditIndex][ETextDrawType] = 0;
  2373. }
  2374. return 1;
  2375. }
  2376. if(clickedid == TDE_Menu[30] || clickedid == TDE_Menu[31])
  2377. {
  2378. if(EditMode == EDITMODE_COLOR || EditMode == EDITMODE_BGCOLOR || EditMode == EDITMODE_BOXCOLOR || EditMode == EDITMODE_MODELS)
  2379. {
  2380. if(!CursorX && (0 < CursorY < (ScreenHeight - 1)) ) return 1;
  2381. if(CursorX == (ScreenWidth - 1) && (0 < CursorY < (ScreenHeight - 1)) ) return 1;
  2382. if(CursorY == (ScreenHeight - 1) && (0 < CursorX < (ScreenWidth - 1)) ) return 1;
  2383. }
  2384. new proportional = TDE_TextDrawIsProportional(ProjectTD[EditIndex][ETextDrawID]);
  2385. if(proportional == 0)
  2386. {
  2387. ShowInfoDraw("~n~~n~~n~~y~PROPORTIONAL ~g~1", 1000);
  2388. TDE_TextDrawSetProportional(ProjectTD[EditIndex][ETextDrawID], 1);
  2389. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[30]);
  2390. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
  2391. }
  2392. else
  2393. {
  2394. ShowInfoDraw("~n~~n~~n~~y~PROPORTIONAL ~g~0", 1000);
  2395. TDE_TextDrawSetProportional(ProjectTD[EditIndex][ETextDrawID], 0);
  2396. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[31]);
  2397. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
  2398. }
  2399. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2400. return 1;
  2401. }
  2402. return false;
  2403. }
  2404.  
  2405. stock ActivateCallback_OnAnyKeyDown()
  2406. {
  2407. ActivateAnyKeyVariable(1);
  2408. ActivateAnyKey();
  2409. return 1;
  2410. }
  2411.  
  2412. public OnAnyKeyDown(key)
  2413. {
  2414. printf("%d %c", key, key);
  2415. return 1;
  2416. }
  2417.  
  2418. TDE_CALLBACK:OnEditorUpdate(playerid)
  2419. {
  2420. if(GetTickCount() > opu_check_afk + 600) return 1;
  2421.  
  2422. for(new c = 0; c < sizeof(VirtualKeys); c++)
  2423. {
  2424. if(GetVirtualKeyState(VirtualKeys[c][KEY_CODE]) & 0x8000)
  2425. {
  2426. if(!VirtualKeys[c][KEY_PRESSED])
  2427. {
  2428. CallLocalFunction("OnVirtualKeyDown", "id", playerid, VirtualKeys[c][KEY_CODE]);
  2429. VirtualKeys[c][KEY_PRESSED] = true;
  2430. }
  2431. }
  2432. else if(VirtualKeys[c][KEY_PRESSED])
  2433. {
  2434. CallLocalFunction("OnVirtualKeyRelease", "id", playerid, VirtualKeys[c][KEY_CODE]);
  2435. VirtualKeys[c][KEY_PRESSED] = false;
  2436. }
  2437. }
  2438.  
  2439. GetScreenSize(ScreenWidth, ScreenHeight);
  2440. GetMousePos(CursorX, CursorY);
  2441.  
  2442. if(CursorOX != CursorX || CursorOY != CursorY)
  2443. {
  2444. CallLocalFunction("OnCursorPositionChange", "idd", playerid, CursorX, CursorY);
  2445. CursorOX = CursorX;
  2446. CursorOY = CursorY;
  2447. }
  2448. return 1;
  2449. }
  2450.  
  2451. TDE_CALLBACK:OnCursorPositionChange(playerid, NewX, NewY)
  2452. {
  2453. if(!EditorEnabled || ProjectEditor != playerid) return false;
  2454. if(TDEHTimer == 1)
  2455. {
  2456. TDE_TextDrawSetPos(TDEditor_Helper[0], ((floatdiv(float(NewX), ScreenWidth) * 640.0)+0.15), -6.000000);
  2457. TDE_TextDrawLetterSize(TDEditor_Helper[0], 0.000000, (((floatdiv(float(NewY), ScreenHeight) * 448.0)/9.0)+0.4));
  2458. TDE_TextDrawSetPos(TDEditor_Helper[1], ((floatdiv(float(NewX), ScreenWidth) * 640.0)+1.0), (floatdiv(float(NewY), ScreenHeight) * 448.0));
  2459.  
  2460. TDE_TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[0]);
  2461. TDE_TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[1]);
  2462. }
  2463. if(EditMode == EDITMODE_ADJUST)
  2464. {
  2465. if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2466. {
  2467. OffsetZ -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0;
  2468. TDE_TextDrawSetPos(TDE_Menu[0], 0.0, OffsetZ - 2.0);
  2469. TDE_TextDrawShowForPlayer(playerid, TDE_Menu[0]);
  2470. if(OffsetZ < 10.0) TDE_TextDrawSetPos(TD_Status, 2.0, OffsetZ+35.14);
  2471. else TDE_TextDrawSetPos(TD_Status, 2.0, OffsetZ-10.14);
  2472. TDE_TextDrawShowForPlayer(playerid, TD_Status);
  2473. return 1;
  2474. }
  2475. return 1;
  2476. }
  2477.  
  2478. if(EditIndex == INVALID_INDEX_ID) return false;
  2479. switch(EditMode)
  2480. {
  2481. case EDITMODE_POSITION:
  2482. {
  2483. if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2484. {
  2485. if(moveselectedtds)
  2486. {
  2487. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  2488. {
  2489. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  2490. {
  2491. ProjectTD[i][ETextDrawPosX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
  2492. ProjectTD[i][ETextDrawPosY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0;
  2493.  
  2494. if(PixelLock)
  2495. {
  2496. ProjectTD[i][ETextDrawPosX] = float(floatround(ProjectTD[i][ETextDrawPosX], floatround_round));
  2497. ProjectTD[i][ETextDrawPosY] = float(floatround(ProjectTD[i][ETextDrawPosY], floatround_round));
  2498. }
  2499.  
  2500. TDE_TextDrawSetPos(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY]);
  2501.  
  2502. if(TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]))
  2503. {
  2504. if(TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]) != 2)
  2505. {
  2506. ProjectTD[i][ETextDrawTextX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
  2507. ProjectTD[i][ETextDrawTextX] = float(floatround(ProjectTD[i][ETextDrawTextX], floatround_round));
  2508. TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  2509. }
  2510. }
  2511. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  2512. }
  2513. }
  2514. }
  2515. else
  2516. {
  2517. ProjectTD[EditIndex][ETextDrawPosX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
  2518. ProjectTD[EditIndex][ETextDrawPosY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0;
  2519.  
  2520. if(PixelLock)
  2521. {
  2522. ProjectTD[EditIndex][ETextDrawPosX] = float(floatround(ProjectTD[EditIndex][ETextDrawPosX], floatround_round));
  2523. ProjectTD[EditIndex][ETextDrawPosY] = float(floatround(ProjectTD[EditIndex][ETextDrawPosY], floatround_round));
  2524. }
  2525.  
  2526. TDE_TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  2527.  
  2528. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
  2529. {
  2530. if(TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]) != 2)
  2531. {
  2532. ProjectTD[EditIndex][ETextDrawTextX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
  2533. ProjectTD[EditIndex][ETextDrawTextX] = float(floatround(ProjectTD[EditIndex][ETextDrawTextX], floatround_round));
  2534. TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  2535. }
  2536. }
  2537. format(SpeedSTR, 256, "~n~~n~~n~~y~posX~w~%.4f ~y~posY~w~%.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  2538. ShowInfoDraw(SpeedSTR, 1000);
  2539.  
  2540. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2541. }
  2542. }
  2543. }
  2544. case EDITMODE_SIZE:
  2545. {
  2546. if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2547. {
  2548. if(moveselectedtds)
  2549. {
  2550. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  2551. {
  2552. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  2553. {
  2554. ProjectTD[i][ETextDrawTextX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
  2555. ProjectTD[i][ETextDrawTextX] = float(floatround(ProjectTD[i][ETextDrawTextX], floatround_round));
  2556. if(TDE_TextDrawGetFont(ProjectTD[i][ETextDrawID]) == 4 || TDE_TextDrawGetFont(ProjectTD[i][ETextDrawID]) == 5)
  2557. {
  2558. ProjectTD[i][ETextDrawTextY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0;
  2559. ProjectTD[i][ETextDrawTextY] = float(floatround(ProjectTD[i][ETextDrawTextY], floatround_round));
  2560. }
  2561.  
  2562. new alignment = TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
  2563. switch(alignment)
  2564. {
  2565. case 1, 3: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  2566. case 2: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
  2567. }
  2568. if(TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]) && ProjectTD[i][ETextDrawLetterX] == 0.0)
  2569. {
  2570. ProjectTD[i][ETextDrawLetterY] -= (floatdiv(floatsub(CursorOY, NewY), ScreenWidth) * 640.0)/10.0;
  2571. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  2572. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  2573. return 1;
  2574. }
  2575.  
  2576. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  2577. }
  2578. }
  2579. }
  2580. else
  2581. {
  2582. ProjectTD[EditIndex][ETextDrawTextX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
  2583. ProjectTD[EditIndex][ETextDrawTextX] = float(floatround(ProjectTD[EditIndex][ETextDrawTextX], floatround_round));
  2584. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5)
  2585. {
  2586. ProjectTD[EditIndex][ETextDrawTextY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0;
  2587. ProjectTD[EditIndex][ETextDrawTextY] = float(floatround(ProjectTD[EditIndex][ETextDrawTextY], floatround_round));
  2588. }
  2589.  
  2590. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  2591. switch(alignment)
  2592. {
  2593. case 1, 3: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  2594. case 2: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  2595. }
  2596. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0)
  2597. {
  2598. ProjectTD[EditIndex][ETextDrawLetterY] -= (floatdiv(floatsub(CursorOY, NewY), ScreenWidth) * 640.0)/10.0;
  2599. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  2600. format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
  2601. ShowInfoDraw(SpeedSTR, 1000);
  2602.  
  2603. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2604. return 1;
  2605. }
  2606.  
  2607. format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~sizeY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  2608. ShowInfoDraw(SpeedSTR, 1000);
  2609.  
  2610. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2611. }
  2612. }
  2613. }
  2614. case EDITMODE_MODELS:
  2615. {
  2616. if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2617. {
  2618. switch(ColorMode)
  2619. {
  2620. case COLORMODE_RED: Colors[0] = floatround( floatdiv((NewY - 1), (ScreenHeight - 2)) * 360.0 );
  2621. case COLORMODE_GREEN: Colors[1] = floatround( floatdiv((NewX - 1), (ScreenWidth - 2)) * 360.0 );
  2622. case COLORMODE_BLUE: Colors[2] = floatround( floatdiv((NewY - 1), (ScreenHeight - 2)) * 360.0 );
  2623. case COLORMODE_ALPHA: Zoom = floatdiv((NewX - 1), (ScreenWidth - 2)) * 10.0;
  2624. }
  2625. format(SpeedSTR, 256, "~n~~n~~n~~y~RX~w~%i~n~~y~RY~w~%i~n~~y~RZ~w~%i~n~~y~Z~w~%.2f", Colors[0], Colors[1], Colors[2], Zoom);
  2626. ShowInfoDraw(SpeedSTR, 1000);
  2627. ProjectTD[EditIndex][ETextDrawRotX] = float(Colors[0]);
  2628. ProjectTD[EditIndex][ETextDrawRotY] = float(Colors[1]);
  2629. ProjectTD[EditIndex][ETextDrawRotZ] = float(Colors[2]);
  2630. ProjectTD[EditIndex][ETextDrawZoom] = Zoom;
  2631. TDE_TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
  2632. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2633. }
  2634. }
  2635. case EDITMODE_COLOR, EDITMODE_BGCOLOR, EDITMODE_BOXCOLOR:
  2636. {
  2637. if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2638. {
  2639.  
  2640. if(EditMode == EDITMODE_COLOR) HexToRGBA(ProjectTD[EditIndex][ETextDrawColor], Colors[0], Colors[1], Colors[2], Colors[3]);
  2641. else if(EditMode == EDITMODE_BGCOLOR) HexToRGBA(ProjectTD[EditIndex][ETextDrawBGColor], Colors[0], Colors[1], Colors[2], Colors[3]);
  2642. else if(EditMode == EDITMODE_BOXCOLOR) HexToRGBA(ProjectTD[EditIndex][ETextDrawBoxColor], Colors[0], Colors[1], Colors[2], Colors[3]);
  2643. switch(ColorMode)
  2644. {
  2645. case COLORMODE_RED: Colors[0] = floatround( floatdiv((NewY - 1), (ScreenHeight - 2)) * 255.0 );
  2646. case COLORMODE_GREEN: Colors[1] = floatround( floatdiv((NewX - 1), (ScreenWidth - 2)) * 255.0 );
  2647. case COLORMODE_BLUE: Colors[2] = floatround( floatdiv((NewY - 1), (ScreenHeight - 2)) * 255.0 );
  2648. case COLORMODE_ALPHA: Colors[3] = floatround( floatdiv((NewX - 1), (ScreenWidth - 2)) * 255.0 );
  2649. }
  2650. format(SpeedSTR, 256, "~n~~n~~n~~r~R%i~n~~g~G%i~n~~b~B%i~n~~w~A%i", Colors[0], Colors[1], Colors[2], Colors[3]);
  2651. ShowInfoDraw(SpeedSTR, 1000);
  2652. switch(EditMode)
  2653. {
  2654. case EDITMODE_COLOR:
  2655. {
  2656. ProjectTD[EditIndex][ETextDrawColor] = RGBAToHex(Colors[0], Colors[1], Colors[2], Colors[3]);
  2657. TDE_TextDrawColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawColor]);
  2658. }
  2659. case EDITMODE_BGCOLOR:
  2660. {
  2661. ProjectTD[EditIndex][ETextDrawBGColor] = RGBAToHex(Colors[0], Colors[1], Colors[2], Colors[3]);
  2662. TDE_TextDrawBackgroundColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBGColor]);
  2663. }
  2664. case EDITMODE_BOXCOLOR:
  2665. {
  2666. ProjectTD[EditIndex][ETextDrawBoxColor] = RGBAToHex(Colors[0], Colors[1], Colors[2], Colors[3]);
  2667. TDE_TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBoxColor]);
  2668. }
  2669. }
  2670. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2671. }
  2672. }
  2673. case EDITMODE_OUTLINE:
  2674. {
  2675. if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2676. {
  2677. if(moveselectedtds)
  2678. {
  2679. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  2680. {
  2681. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  2682. {
  2683. ProjectTD[i][ETextDrawOutline] -= floatround(floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0);
  2684. ProjectTD[i][ETextDrawOutline] -= floatround(floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0);
  2685. TDE_TextDrawSetOutline(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawOutline]);
  2686. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  2687. }
  2688. }
  2689. }
  2690. else
  2691. {
  2692. ProjectTD[EditIndex][ETextDrawOutline] -= floatround(floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0);
  2693. ProjectTD[EditIndex][ETextDrawOutline] -= floatround(floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0);
  2694. TDE_TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
  2695. format(SpeedSTR, 256, "~n~~n~~n~~y~OUTLINE~w~%d", ProjectTD[EditIndex][ETextDrawOutline]);
  2696. ShowInfoDraw(SpeedSTR, 1000);
  2697. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2698. }
  2699. }
  2700. }
  2701. case EDITMODE_SHADOW:
  2702. {
  2703. if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2704. {
  2705. if(moveselectedtds)
  2706. {
  2707. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  2708. {
  2709. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  2710. {
  2711. ProjectTD[i][ETextDrawShadow] -= floatround(floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0);
  2712. ProjectTD[i][ETextDrawShadow] -= floatround(floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0);
  2713. TDE_TextDrawSetShadow(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawShadow]);
  2714. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  2715. }
  2716. }
  2717. }
  2718. else
  2719. {
  2720. ProjectTD[EditIndex][ETextDrawShadow] -= floatround(floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0);
  2721. ProjectTD[EditIndex][ETextDrawShadow] -= floatround(floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0);
  2722. TDE_TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
  2723. format(SpeedSTR, 256, "~n~~n~~n~~y~SHADOW~w~%d", ProjectTD[EditIndex][ETextDrawShadow]);
  2724. ShowInfoDraw(SpeedSTR, 1000);
  2725. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2726. }
  2727. }
  2728. }
  2729. case EDITMODE_LETTERSIZE:
  2730. {
  2731. if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2732. {
  2733. if(moveselectedtds)
  2734. {
  2735. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  2736. {
  2737. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  2738. {
  2739. ProjectTD[i][ETextDrawLetterX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0 * 0.001;
  2740. ProjectTD[i][ETextDrawLetterY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0 * 0.01;
  2741. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  2742. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  2743. }
  2744. }
  2745. }
  2746. else
  2747. {
  2748. ProjectTD[EditIndex][ETextDrawLetterX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0 * 0.001;
  2749. ProjectTD[EditIndex][ETextDrawLetterY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0 * 0.01;
  2750. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  2751. format(SpeedSTR, 256, "~n~~n~~n~~y~letterX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  2752. ShowInfoDraw(SpeedSTR, 1000);
  2753. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  2754. }
  2755. }
  2756. }
  2757. }
  2758. return true;
  2759. }
  2760.  
  2761. TDE_CALLBACK:OnVirtualKeyRelease(playerid, key)
  2762. {
  2763. if(!EditorEnabled || ProjectEditor != playerid) return false;
  2764. if(key == VK_ESCAPE)
  2765. {
  2766. if(EditMode == EDITMODE_ADJUST)
  2767. {
  2768. SelectTextDraw(playerid, -1);
  2769. if(!VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
  2770. {
  2771. new Float:pos[2];
  2772. for(new i = 1; i < sizeof(TDE_Menu); i++)
  2773. {
  2774. if(i == 6 || i == 7) continue;
  2775. TDE_TextDrawGetPos(TDE_Menu[i], pos[0], pos[1]);
  2776. TDE_TextDrawSetPos(TDE_Menu[i], pos[0], OffsetZ);
  2777. TDE_TextDrawShowForPlayer(playerid, TDE_Menu[i]);
  2778. }
  2779.  
  2780. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2781. EditMode = EDITMODE_NONE;
  2782. IsPSel = true;
  2783. return 1;
  2784. }
  2785. }
  2786. }
  2787. if(key == VK_LBUTTON)
  2788. {
  2789. if(ColorMode) ColorMode = 0;
  2790. if(IsPSel) SaveProject();
  2791. }
  2792. if(EditMode == EDITMODE_ADJUST) return false;
  2793. if(key == VK_RBUTTON)
  2794. {
  2795. if(!IsPSel) return false;
  2796. new Float:ConvertedX, Float:ConvertedY;
  2797. ConvertedX = ((floatdiv(float(CursorX), ScreenWidth) * 640.0));
  2798. ConvertedY = (((floatdiv(float(CursorY), ScreenHeight) * 448.0)));
  2799. if( (ConvertedX > 64.01 && ConvertedX < 32.0+64.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //New
  2800. {
  2801. ShowPlayerDialog(ProjectEditor, DIALOG_NEW, DIALOG_STYLE_LIST, "ETDEditor - Nova Textdraw", "Textdraw Normal\nTextdraw Sprite (TXD)\nPreview Models (objetos, veículos, skins)\nBox TextDraw", ">>", "X");
  2802. IsPSel = false;
  2803. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2804. EditMode = EDITMODE_NONE;
  2805. CancelSelectTextDraw(ProjectEditor);
  2806. return 1;
  2807. }
  2808. if( (ConvertedX > 128.01 && ConvertedX < 32.0+128.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Duplicate
  2809. {
  2810. if(EditIndex == INVALID_INDEX_ID) return SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}No textdraw selected");
  2811. ShowPlayerDialog(ProjectEditor, DIALOG_MIRROR, DIALOG_STYLE_LIST, "ETDEditor - Mirror Textdraw", "Mirror X\nMirror Y\nMirror XY", ">>", "X");
  2812. IsPSel = false;
  2813. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2814. EditMode = EDITMODE_NONE;
  2815. CancelSelectTextDraw(ProjectEditor);
  2816. return 1;
  2817. }
  2818.  
  2819. if(EditIndex == INVALID_INDEX_ID) return false;
  2820. if( (ConvertedX > 192.01 && ConvertedX < 32.0+192.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Position
  2821. {
  2822. ShowPlayerDialog(ProjectEditor, DIALOG_POSX, DIALOG_STYLE_INPUT, "ETDEditor - PositionX", "Insira o valor do eixo PositionX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '298.73'", ">>", "X");
  2823. IsPSel = false;
  2824. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2825. EditMode = EDITMODE_NONE;
  2826. CancelSelectTextDraw(ProjectEditor);
  2827. return 1;
  2828. }
  2829. if( (ConvertedX > 160.01 && ConvertedX < 32.0+160.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Models/Font
  2830. {
  2831. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5)
  2832. {
  2833. if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
  2834. else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "ETDEditor - Preview Models", "Mudar ID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
  2835. IsPSel = false;
  2836. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2837. EditMode = EDITMODE_NONE;
  2838. CancelSelectTextDraw(ProjectEditor);
  2839. return 1;
  2840. }
  2841. return 1;
  2842. }
  2843. if( (ConvertedX > 224.01 && ConvertedX < 32.0+224.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //TextSize
  2844. {
  2845. ShowPlayerDialog(ProjectEditor, DIALOG_SIZEX, DIALOG_STYLE_INPUT, "ETDEditor - TextSizeX", "Insira o valor do eixo TextSizeX:\nNota: para colocar um valor hexadecimal use '.' em vez de ',' exemplo: '18 .8 '", ">>", "X");
  2846. IsPSel = false;
  2847. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2848. EditMode = EDITMODE_NONE;
  2849. CancelSelectTextDraw(ProjectEditor);
  2850. return 1;
  2851. }
  2852. if( (ConvertedX > 256.01 && ConvertedX < 32.0+256.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Text
  2853. {
  2854. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
  2855. ShowPlayerDialog(ProjectEditor, DIALOG_EDITTEXT, DIALOG_STYLE_INPUT, "ETDEditor - Texto", "Insira o texto da TextDraw:", ">>", "X");
  2856. IsPSel = false;
  2857. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2858. EditMode = EDITMODE_NONE;
  2859. CancelSelectTextDraw(ProjectEditor);
  2860. return 1;
  2861. }
  2862. if( (ConvertedX > 384.01 && ConvertedX < 32.0+384.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //LetterSize
  2863. {
  2864. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
  2865. ShowPlayerDialog(ProjectEditor, DIALOG_LETTERX, DIALOG_STYLE_INPUT, "ETDEditor - LetterSizeX", "Insira o valor do eixo LetterSizeX:\nNota: para usar um valor hexadecimal use '.' em vez de ',' exemplo: '0.4'", ">>", "X");
  2866. IsPSel = false;
  2867. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2868. EditMode = EDITMODE_NONE;
  2869. CancelSelectTextDraw(ProjectEditor);
  2870. return 1;
  2871. }
  2872. if( (ConvertedX > 416.01 && ConvertedX < 32.0+416.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Outline
  2873. {
  2874. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
  2875. ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "ETDEditor - Outline", "Insira um valor para o outline.\n\n0 para remover o outline.", ">>", "X");
  2876. IsPSel = false;
  2877. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2878. EditMode = EDITMODE_NONE;
  2879. CancelSelectTextDraw(ProjectEditor);
  2880. return 1;
  2881. }
  2882. if( (ConvertedX > 448.01 && ConvertedX < 32.0+448.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Shadow
  2883. {
  2884. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
  2885. ShowPlayerDialog(ProjectEditor, DIALOG_EDITSHADOW, DIALOG_STYLE_INPUT, "ETDEditor - Sombra", "Insira um valor para a sombra.\n\n0 para remover a sombra.", ">>", "X");
  2886. IsPSel = false;
  2887. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2888. EditMode = EDITMODE_NONE;
  2889. CancelSelectTextDraw(ProjectEditor);
  2890. return 1;
  2891. }
  2892. if( (ConvertedX > 288.01 && ConvertedX < 32.0+288.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Colors
  2893. {
  2894. ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "ETDEditor - Cor", "Cores principais\nDigite o valor exato (HEX)\nCombinador de cores (RGBA)", ">>", "X");
  2895. IsPSel = false;
  2896. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2897. EditMode = EDITMODE_COLOR;
  2898. CancelSelectTextDraw(ProjectEditor);
  2899. return 1;
  2900. }
  2901. if( (ConvertedX > 320.01 && ConvertedX < 32.0+320.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //BGColors
  2902. {
  2903. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4) return false;
  2904. ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "ETDEditor - BGColor", "Cores principais\nInsira o valor exato (HEX)\nCombinador de cores (RGBA)", ">>", "X");
  2905. IsPSel = false;
  2906. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2907. EditMode = EDITMODE_BGCOLOR;
  2908. CancelSelectTextDraw(ProjectEditor);
  2909. return 1;
  2910. }
  2911. if( (ConvertedX > 352.01 && ConvertedX < 32.0+352.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //BoxColors
  2912. {
  2913. if(TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TDE_TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
  2914. ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "ETDEditor - BoxColor", "Cores principais\nDigite o valor exato (HEX)\nCombinador de cores (RGBA)", ">>", "X");
  2915. IsPSel = false;
  2916. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  2917. EditMode = EDITMODE_BOXCOLOR;
  2918. CancelSelectTextDraw(ProjectEditor);
  2919. return 1;
  2920. }
  2921. }
  2922. switch(EditMode)
  2923. {
  2924. case EDITMODE_TEXT:
  2925. {
  2926. if(key == VK_DELETE || key == VK_BACKSPACE) KillTimer(DeleteTimer);
  2927. }
  2928. case EDITMODE_POSITION:
  2929. {
  2930. if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_OEM_MINUS || key == VK_SUBTRACT) KillTimer(SpeedTimer);
  2931. }
  2932. case EDITMODE_SIZE:
  2933. {
  2934. if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_OEM_MINUS || key == VK_SUBTRACT) KillTimer(EditSizeSpeedT);
  2935. }
  2936. case EDITMODE_OUTLINE:
  2937. {
  2938. if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_UP || key == VK_RIGHT || key == VK_OEM_MINUS || key == VK_SUBTRACT || key == VK_DOWN || key == VK_LEFT) KillTimer(OutlineTimer);
  2939. }
  2940. case EDITMODE_SHADOW:
  2941. {
  2942. if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_UP || key == VK_RIGHT || key == VK_OEM_MINUS || key == VK_SUBTRACT || key == VK_DOWN || key == VK_LEFT) KillTimer(ShadowTimer);
  2943. }
  2944. case EDITMODE_LETTERSIZE:
  2945. {
  2946. if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_OEM_MINUS || key == VK_SUBTRACT) KillTimer(LetterTimer);
  2947. }
  2948. }
  2949. return 1;
  2950. }
  2951.  
  2952. TDE_CALLBACK:OnVirtualKeyDown(playerid, key)
  2953. {
  2954.  
  2955. if(!EditorEnabled || ProjectEditor != playerid) return false;
  2956.  
  2957. if(key == VK_RBUTTON)
  2958. {
  2959. if(TDEHTimer == 1)
  2960. {
  2961. TDEHTimer = 2;
  2962. SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}clique com o botão direito novamente para descongelar as linhas vermelhas.");
  2963. }
  2964. else if(TDEHTimer == 2)
  2965. {
  2966. new X, Y;
  2967. GetMousePos(X, Y);
  2968. TDE_TextDrawSetPos(TDEditor_Helper[0], ((floatdiv(float(X), ScreenWidth) * 640.0)+0.15), -6.000000);
  2969. TDE_TextDrawLetterSize(TDEditor_Helper[0], 0.000000, (((floatdiv(float(Y), ScreenHeight) * 448.0)/9.0)+0.4));
  2970. TDE_TextDrawSetPos(TDEditor_Helper[1], ((floatdiv(float(X), ScreenWidth) * 640.0)+1.0), (floatdiv(float(Y), ScreenHeight) * 448.0));
  2971. TDE_TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[0]);
  2972. TDE_TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[1]);
  2973. TDEHTimer = 1;
  2974. }
  2975. }
  2976.  
  2977. if(VirtualKeys[44][KEY_PRESSED])
  2978. {
  2979. if(key == VK_KEY_R)
  2980. {
  2981. if(TDEHTimer == -1)
  2982. {
  2983. new X, Y;
  2984. GetMousePos(X, Y);
  2985. TDE_TextDrawSetPos(TDEditor_Helper[0], ((floatdiv(float(X), ScreenWidth) * 640.0)+0.15), -6.000000);
  2986. TDE_TextDrawLetterSize(TDEditor_Helper[0], 0.000000, (((floatdiv(float(Y), ScreenHeight) * 448.0)/9.0)+0.4));
  2987. TDE_TextDrawSetPos(TDEditor_Helper[1], ((floatdiv(float(X), ScreenWidth) * 640.0)+1.0), (floatdiv(float(Y), ScreenHeight) * 448.0));
  2988. SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Clique com o botão direito para congelar as linhas vermelhas.");
  2989. TDE_TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[0]);
  2990. TDE_TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[1]);
  2991. TDEHTimer = 1;
  2992. }
  2993. else
  2994. {
  2995. TDEHTimer = -1;
  2996. TDE_TextDrawHideForPlayer(ProjectEditor, TDEditor_Helper[0]);
  2997. TDE_TextDrawHideForPlayer(ProjectEditor, TDEditor_Helper[1]);
  2998. }
  2999. return 1;
  3000. }
  3001. if(EditMode == EDITMODE_ADJUST) return false;
  3002. if(key == VK_KEY_C)
  3003. {
  3004. if(EditIndex == INVALID_INDEX_ID) return false;
  3005. if(!IsPSel) return false;
  3006. new Index = GetAvailableIndex();
  3007. if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}o número máximo de textdraws por projeto foi alcançado.");
  3008. DuplicateTextDraw(EditIndex, Index);
  3009.  
  3010. new string[128];
  3011. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}foi duplicada na TextDraw{e2b960} #%d.", EditIndex, Index);
  3012. SendClientMessage(ProjectEditor, -1, string);
  3013. EditIndex = Index;
  3014. return 1;
  3015. }
  3016. if(key == VK_KEY_X)
  3017. {
  3018. if(EditIndex == INVALID_INDEX_ID) return false;
  3019. if(!IsPSel) return false;
  3020. new string[128];
  3021. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}removida.", EditIndex);
  3022. SendClientMessage(ProjectEditor, -1, string);
  3023.  
  3024. RemoveTextDrawTDE(EditIndex);
  3025. SelectTextDraw(ProjectEditor, -1);
  3026. }
  3027. }
  3028. if(key == VK_END)
  3029. {
  3030. if(MouseCursor)
  3031. {
  3032. MouseCursor = false;
  3033. TogglePlayerControllable(ProjectEditor, 1);
  3034. CancelSelectTextDraw(ProjectEditor);
  3035. }
  3036. else
  3037. {
  3038. MouseCursor = true;
  3039. TogglePlayerControllable(ProjectEditor, 0);
  3040. SelectTextDraw(ProjectEditor, -1);
  3041. }
  3042. return 1;
  3043. }
  3044.  
  3045. if(key == VK_HOME)
  3046. {
  3047. if(PixelLock)
  3048. {
  3049. PixelLock = false;
  3050. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}trava de pixel: OFF");
  3051. }
  3052. else
  3053. {
  3054. PixelLock = true;
  3055. SendClientMessage(playerid, -1, "{e2b960}ETDEditor: {FFFFFF}trava de pixel: ON");
  3056. }
  3057. return 1;
  3058. }
  3059.  
  3060.  
  3061.  
  3062. if(EditMode == EDITMODE_ADJUST) return false;
  3063. if(EditIndex == INVALID_INDEX_ID) return false;
  3064. switch(EditMode)
  3065. {
  3066. case EDITMODE_TEXT:
  3067. {
  3068. if(key == VK_KEY_T || key == VK_F6) PressKeyEnter(VK_ENTER);
  3069. if(key == VK_DELETE || key == VK_BACKSPACE)
  3070. {
  3071. new len = strlen(ProjectTD[EditIndex][ETextDrawText]);
  3072. if(len == 0) return 1;
  3073. if(ProjectTD[EditIndex][ETextDrawText][len-1] == '~' && ProjectTD[EditIndex][ETextDrawText][len-2] == 'n' && ProjectTD[EditIndex][ETextDrawText][len-3] == '~')
  3074. {
  3075. strdel(ProjectTD[EditIndex][ETextDrawText], len-3, len);
  3076. }
  3077. else strdel(ProjectTD[EditIndex][ETextDrawText], len-1, len);
  3078. TDE_TextDrawSetString(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawText]);
  3079. DeleteTimer = SetTimer("DeleteTextDrawLetter", 500, 0);
  3080. return 1;
  3081. }
  3082. /*new KEYT[24]; NO HAVE GOOD WORK
  3083. /format(KEYT, 24, "%c", key);*/
  3084. strcat(ProjectTD[EditIndex][ETextDrawText], KeyToString(key), 800);
  3085. TDE_TextDrawSetString(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawText]);
  3086. }
  3087. case EDITMODE_POSITION:
  3088. {
  3089. switch(key)
  3090. {
  3091. case VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT: if(MoveTDTimer == -1) MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 50, 0);
  3092. case VK_OEM_PLUS, VK_ADD:
  3093. {
  3094. if(EditMoveSpeed == 0.05)
  3095. {
  3096. EditMoveSpeed = 0.1;
  3097. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditMoveSpeed);
  3098. ShowInfoDraw(SpeedSTR, 1000);
  3099. SpeedTimer = SetTimerEx("EditMovementSpeed", 500, 0, "d", 0);
  3100. return 1;
  3101. }
  3102. EditMoveSpeed += 0.1;
  3103. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditMoveSpeed);
  3104. ShowInfoDraw(SpeedSTR, 1000);
  3105. SpeedTimer = SetTimerEx("EditMovementSpeed", 500, 0, "d", 0);
  3106. }
  3107. case VK_OEM_MINUS, VK_SUBTRACT:
  3108. {
  3109. if(EditMoveSpeed <= 0.1)
  3110. {
  3111. EditMoveSpeed = 0.05;
  3112. format(SpeedSTR, 256, "~n~~n~~n~~y~S~r~%.2f", EditMoveSpeed);
  3113. ShowInfoDraw(SpeedSTR, 1000);
  3114. SpeedTimer = SetTimerEx("EditMovementSpeed", 500, 0, "d", 1);
  3115. return 1;
  3116. }
  3117. EditMoveSpeed -= 0.1;
  3118. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditMoveSpeed);
  3119. ShowInfoDraw(SpeedSTR, 1000);
  3120. SpeedTimer = SetTimerEx("EditMovementSpeed", 500, 0, "d", 1);
  3121. }
  3122. }
  3123. }
  3124. case EDITMODE_SIZE:
  3125. {
  3126. switch(key)
  3127. {
  3128. case VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT: if(EditSizeTDTimer == -1) EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 50, 0);
  3129. case VK_OEM_PLUS, VK_ADD:
  3130. {
  3131. if(EditSizeSpeed == 0.05)
  3132. {
  3133. EditSizeSpeed = 0.1;
  3134. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditSizeSpeed);
  3135. ShowInfoDraw(SpeedSTR, 1000);
  3136. EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 500, 0, "d", 0);
  3137. return 1;
  3138. }
  3139. EditSizeSpeed += 0.1;
  3140. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditSizeSpeed);
  3141. ShowInfoDraw(SpeedSTR, 1000);
  3142. EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 500, 0, "d", 0);
  3143. }
  3144. case VK_OEM_MINUS, VK_SUBTRACT:
  3145. {
  3146. if(EditSizeSpeed <= 0.1)
  3147. {
  3148. EditSizeSpeed = 0.05;
  3149. format(SpeedSTR, 256, "~n~~n~~n~~y~S~r~%.2f", EditSizeSpeed);
  3150. ShowInfoDraw(SpeedSTR, 1000);
  3151. EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 500, 0, "d", 1);
  3152. return 1;
  3153. }
  3154. EditSizeSpeed -= 0.1;
  3155. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditSizeSpeed);
  3156. ShowInfoDraw(SpeedSTR, 1000);
  3157. EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 500, 0, "d", 1);
  3158. }
  3159. }
  3160. }
  3161. case EDITMODE_COLOR, EDITMODE_BGCOLOR, EDITMODE_BOXCOLOR, EDITMODE_MODELS:
  3162. {
  3163. if(key == VK_LBUTTON)
  3164. {
  3165. if(!CursorX && (0 < CursorY < (ScreenHeight - 1)) && ColorMode != COLORMODE_RED) ColorMode = COLORMODE_RED;
  3166. if(CursorX == (ScreenWidth - 1) && (0 < CursorY < (ScreenHeight - 1)) && ColorMode != COLORMODE_BLUE) ColorMode = COLORMODE_BLUE;
  3167. if(!CursorY && (0 < CursorX < (ScreenWidth - 1)) && ColorMode != COLORMODE_GREEN) ColorMode = COLORMODE_GREEN;
  3168. if(CursorY == (ScreenHeight - 1) && (0 < CursorX < (ScreenWidth - 1)) && ColorMode != COLORMODE_ALPHA) ColorMode = COLORMODE_ALPHA;
  3169. }
  3170. }
  3171. case EDITMODE_OUTLINE:
  3172. {
  3173. switch(key)
  3174. {
  3175. case VK_OEM_PLUS, VK_ADD, VK_UP, VK_RIGHT:
  3176. {
  3177. if(moveselectedtds)
  3178. {
  3179. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3180. {
  3181. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3182. {
  3183. ProjectTD[i][ETextDrawOutline] += 1;
  3184. TDE_TextDrawSetOutline(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawOutline]);
  3185. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3186. }
  3187. }
  3188. OutlineTimer = SetTimerEx("EditOutline", 500, 0, "d", 0);
  3189. return 1;
  3190. }
  3191. ProjectTD[EditIndex][ETextDrawOutline] += 1;
  3192. TDE_TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
  3193. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3194. format(SpeedSTR, 256, "~n~~n~~n~~y~OUTLINE~w~%d", ProjectTD[EditIndex][ETextDrawOutline]);
  3195. ShowInfoDraw(SpeedSTR, 1000);
  3196.  
  3197. OutlineTimer = SetTimerEx("EditOutline", 500, 0, "d", 0);
  3198. }
  3199. case VK_OEM_MINUS, VK_SUBTRACT, VK_DOWN, VK_LEFT:
  3200. {
  3201. if(moveselectedtds)
  3202. {
  3203. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3204. {
  3205. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3206. {
  3207. ProjectTD[i][ETextDrawOutline] -= 1;
  3208. TDE_TextDrawSetOutline(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawOutline]);
  3209. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3210. }
  3211. }
  3212. OutlineTimer = SetTimerEx("EditOutline", 500, 0, "d", 1);
  3213. return 1;
  3214. }
  3215. ProjectTD[EditIndex][ETextDrawOutline] -= 1;
  3216. TDE_TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
  3217. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3218. format(SpeedSTR, 256, "~n~~n~~n~~y~OUTLINE~w~%d", ProjectTD[EditIndex][ETextDrawOutline]);
  3219. ShowInfoDraw(SpeedSTR, 1000);
  3220.  
  3221. OutlineTimer = SetTimerEx("EditOutline", 500, 0, "d", 1);
  3222. }
  3223. }
  3224. }
  3225. case EDITMODE_SHADOW:
  3226. {
  3227. switch(key)
  3228. {
  3229. case VK_OEM_PLUS, VK_ADD, VK_UP, VK_RIGHT:
  3230. {
  3231. if(moveselectedtds)
  3232. {
  3233. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3234. {
  3235. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3236. {
  3237. ProjectTD[i][ETextDrawShadow] += 1;
  3238. TDE_TextDrawSetShadow(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawShadow]);
  3239. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3240. }
  3241. }
  3242. ShadowTimer = SetTimerEx("EditShadow", 500, 0, "d", 0);
  3243. return 1;
  3244. }
  3245. ProjectTD[EditIndex][ETextDrawShadow] += 1;
  3246. TDE_TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
  3247. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3248. format(SpeedSTR, 256, "~n~~n~~n~~y~SHADOW~w~%d", ProjectTD[EditIndex][ETextDrawShadow]);
  3249. ShowInfoDraw(SpeedSTR, 1000);
  3250.  
  3251. ShadowTimer = SetTimerEx("EditShadow", 500, 0, "d", 0);
  3252. }
  3253. case VK_OEM_MINUS, VK_SUBTRACT, VK_DOWN, VK_LEFT:
  3254. {
  3255. if(moveselectedtds)
  3256. {
  3257. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3258. {
  3259. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3260. {
  3261. ProjectTD[i][ETextDrawShadow] -= 1;
  3262. TDE_TextDrawSetShadow(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawShadow]);
  3263. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3264. }
  3265. }
  3266. ShadowTimer = SetTimerEx("EditShadow", 500, 0, "d", 1);
  3267. return 1;
  3268. }
  3269. ProjectTD[EditIndex][ETextDrawShadow] -= 1;
  3270. TDE_TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
  3271. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3272. new Speed[32];
  3273. format(Speed, 24, "~y~SHADOW~w~%d", ProjectTD[EditIndex][ETextDrawShadow]);
  3274. ShowInfoDraw(Speed, 1000);
  3275.  
  3276. ShadowTimer = SetTimerEx("EditShadow", 500, 0, "d", 1);
  3277. }
  3278. }
  3279. }
  3280. case EDITMODE_LETTERSIZE:
  3281. {
  3282. switch(key)
  3283. {
  3284. case VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT: if(LetterSizeTimer == -1) LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 50, 0);
  3285. case VK_OEM_PLUS, VK_ADD:
  3286. {
  3287. if(EditLetterSizeSpeed == 0.005)
  3288. {
  3289. EditLetterSizeSpeed = 0.01;
  3290. new Speed[24];
  3291. format(Speed, 24, "~y~S~w~%.3f", EditLetterSizeSpeed);
  3292. ShowInfoDraw(Speed, 1000);
  3293. LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 0);
  3294. return 1;
  3295. }
  3296. EditLetterSizeSpeed += 0.01;
  3297. new Speed[24];
  3298. format(Speed, 24, "~y~S~w~%.3f", EditLetterSizeSpeed);
  3299. ShowInfoDraw(Speed, 1000);
  3300. LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 0);
  3301. }
  3302. case VK_OEM_MINUS, VK_SUBTRACT:
  3303. {
  3304. if(EditLetterSizeSpeed <= 0.01)
  3305. {
  3306. EditLetterSizeSpeed = 0.005;
  3307. new Speed[24];
  3308. format(Speed, 24, "~y~S~r~%.4f", EditLetterSizeSpeed);
  3309. ShowInfoDraw(Speed, 1000);
  3310. LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 1);
  3311. return 1;
  3312. }
  3313. EditLetterSizeSpeed -= 0.01;
  3314. new Speed[24];
  3315. format(Speed, 24, "~y~S~w~%.3f", EditLetterSizeSpeed);
  3316. ShowInfoDraw(Speed, 1000);
  3317. LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 1);
  3318. }
  3319. }
  3320. }
  3321. }
  3322. return true;
  3323. }
  3324.  
  3325. TDE_CALLBACK:EditOutline(key)
  3326. {
  3327. if(EditMode != EDITMODE_OUTLINE) return 1;
  3328. if(key == 0)
  3329. {
  3330. if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED] || VirtualKeys[31][KEY_PRESSED] || VirtualKeys[30][KEY_PRESSED])
  3331. {
  3332. if(moveselectedtds)
  3333. {
  3334. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3335. {
  3336. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3337. {
  3338. ProjectTD[i][ETextDrawOutline] += 1;
  3339. TDE_TextDrawSetOutline(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawOutline]);
  3340. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3341. }
  3342. }
  3343. OutlineTimer = SetTimerEx("EditOutline", 25, 0, "d", 0);
  3344. return 1;
  3345. }
  3346. ProjectTD[EditIndex][ETextDrawOutline] += 1;
  3347. TDE_TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
  3348. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3349. new Speed[32];
  3350. format(Speed, 24, "~y~OUTLINE~w~%d", ProjectTD[EditIndex][ETextDrawOutline]);
  3351. ShowInfoDraw(Speed, 1000);
  3352. OutlineTimer = SetTimerEx("EditOutline", 25, 0, "d", 0);
  3353. }
  3354. }
  3355. else if(key == 1)
  3356. {
  3357. if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED] || VirtualKeys[32][KEY_PRESSED] || VirtualKeys[29][KEY_PRESSED])
  3358. {
  3359. if(moveselectedtds)
  3360. {
  3361. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3362. {
  3363. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3364. {
  3365. ProjectTD[i][ETextDrawOutline] -= 1;
  3366. TDE_TextDrawSetOutline(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawOutline]);
  3367. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3368. }
  3369. }
  3370. OutlineTimer = SetTimerEx("EditOutline", 25, 0, "d", 1);
  3371. return 1;
  3372. }
  3373. ProjectTD[EditIndex][ETextDrawOutline] -= 1;
  3374. TDE_TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
  3375. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3376. new Speed[32];
  3377. format(Speed, 24, "~y~OUTLINE~w~%d", ProjectTD[EditIndex][ETextDrawOutline]);
  3378. ShowInfoDraw(Speed, 1000);
  3379. OutlineTimer = SetTimerEx("EditOutline", 25, 0, "d", 1);
  3380. }
  3381. }
  3382. return 1;
  3383. }
  3384.  
  3385. TDE_CALLBACK:EditShadow(key)
  3386. {
  3387. if(EditMode != EDITMODE_SHADOW) return 1;
  3388. if(key == 0)
  3389. {
  3390. if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED] || VirtualKeys[31][KEY_PRESSED] || VirtualKeys[30][KEY_PRESSED])
  3391. {
  3392. if(moveselectedtds)
  3393. {
  3394. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3395. {
  3396. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3397. {
  3398. ProjectTD[i][ETextDrawShadow] += 1;
  3399. TDE_TextDrawSetShadow(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawShadow]);
  3400. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3401. }
  3402. }
  3403. ShadowTimer = SetTimerEx("EditShadow", 25, 0, "d", 0);
  3404. return 1;
  3405. }
  3406. ProjectTD[EditIndex][ETextDrawShadow] += 1;
  3407. TDE_TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
  3408. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3409. new Speed[32];
  3410. format(Speed, 24, "~y~SHADOW~w~%d", ProjectTD[EditIndex][ETextDrawShadow]);
  3411. ShowInfoDraw(Speed, 1000);
  3412. ShadowTimer = SetTimerEx("EditShadow", 25, 0, "d", 0);
  3413. }
  3414. }
  3415. else if(key == 1)
  3416. {
  3417. if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED] || VirtualKeys[32][KEY_PRESSED] || VirtualKeys[29][KEY_PRESSED])
  3418. {
  3419. if(moveselectedtds)
  3420. {
  3421. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3422. {
  3423. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3424. {
  3425. ProjectTD[i][ETextDrawShadow] -= 1;
  3426. TDE_TextDrawSetShadow(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawShadow]);
  3427. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3428. }
  3429. }
  3430. ShadowTimer = SetTimerEx("EditShadow", 25, 0, "d", 1);
  3431. return 1;
  3432. }
  3433. ProjectTD[EditIndex][ETextDrawShadow] -= 1;
  3434. TDE_TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
  3435. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3436. new Speed[32];
  3437. format(Speed, 24, "~y~SHADOW~w~%d", ProjectTD[EditIndex][ETextDrawShadow]);
  3438. ShowInfoDraw(Speed, 1000);
  3439. ShadowTimer = SetTimerEx("EditShadow", 25, 0, "d", 1);
  3440. }
  3441. }
  3442. return 1;
  3443. }
  3444.  
  3445. TDE_CALLBACK:EditSizeSpeedCallback(key)
  3446. {
  3447. if(EditMode != EDITMODE_SIZE) return 1;
  3448. if(key == 0)
  3449. {
  3450. if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED])
  3451. {
  3452. if(EditSizeSpeed == 0.05)
  3453. {
  3454. EditSizeSpeed = 0.1;
  3455. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditSizeSpeed);
  3456. ShowInfoDraw(SpeedSTR, 1000);
  3457. EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 25, 0, "d", 0);
  3458. return 1;
  3459. }
  3460. EditSizeSpeed += 0.1;
  3461. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditSizeSpeed);
  3462. ShowInfoDraw(SpeedSTR, 1000);
  3463. EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 25, 0, "d", 0);
  3464. }
  3465. }
  3466. else if(key == 1)
  3467. {
  3468. if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED])
  3469. {
  3470. if(EditSizeSpeed <= 0.1)
  3471. {
  3472. EditSizeSpeed = 0.05;
  3473. format(SpeedSTR, 256, "~n~~n~~n~~y~S~r~%.2f", EditSizeSpeed);
  3474. ShowInfoDraw(SpeedSTR, 1000);
  3475. EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 25, 0, "d", 1);
  3476. return 1;
  3477. }
  3478. EditSizeSpeed -= 0.1;
  3479. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditSizeSpeed);
  3480. ShowInfoDraw(SpeedSTR, 1000);
  3481. EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 25, 0, "d", 1);
  3482. }
  3483. }
  3484. return 1;
  3485. }
  3486.  
  3487. TDE_CALLBACK:EditMovementSpeed(key)
  3488. {
  3489. if(EditMode != EDITMODE_POSITION) return 1;
  3490. if(key == 0)
  3491. {
  3492. if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED])
  3493. {
  3494. if(EditMoveSpeed == 0.05)
  3495. {
  3496. EditMoveSpeed = 0.1;
  3497. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditMoveSpeed);
  3498. ShowInfoDraw(SpeedSTR, 1000);
  3499. SpeedTimer = SetTimerEx("EditMovementSpeed", 25, 0, "d", 0);
  3500. return 1;
  3501. }
  3502. EditMoveSpeed += 0.1;
  3503. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditMoveSpeed);
  3504. ShowInfoDraw(SpeedSTR, 1000);
  3505. SpeedTimer = SetTimerEx("EditMovementSpeed", 25, 0, "d", 0);
  3506. }
  3507. }
  3508. else if(key == 1)
  3509. {
  3510. if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED])
  3511. {
  3512. if(EditMoveSpeed <= 0.1)
  3513. {
  3514. EditMoveSpeed = 0.05;
  3515. format(SpeedSTR, 256, "~n~~n~~n~~y~S~r~%.2f", EditMoveSpeed);
  3516. ShowInfoDraw(SpeedSTR, 1000);
  3517. SpeedTimer = SetTimerEx("EditMovementSpeed", 25, 0, "d", 1);
  3518. return 1;
  3519. }
  3520. EditMoveSpeed -= 0.1;
  3521. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.1f", EditMoveSpeed);
  3522. ShowInfoDraw(SpeedSTR, 1000);
  3523. SpeedTimer = SetTimerEx("EditMovementSpeed", 25, 0, "d", 1);
  3524. }
  3525. }
  3526. return 1;
  3527. }
  3528.  
  3529. TDE_CALLBACK:TEditLetterSizeSpeed(key)
  3530. {
  3531. if(EditMode != EDITMODE_LETTERSIZE) return 1;
  3532. if(key == 0)
  3533. {
  3534. if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED])
  3535. {
  3536. if(EditLetterSizeSpeed == 0.005)
  3537. {
  3538. EditLetterSizeSpeed = 0.01;
  3539. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.3f", EditLetterSizeSpeed);
  3540. ShowInfoDraw(SpeedSTR, 1000);
  3541. LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 0);
  3542. return 1;
  3543. }
  3544. EditLetterSizeSpeed += 0.01;
  3545. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.3f", EditLetterSizeSpeed);
  3546. ShowInfoDraw(SpeedSTR, 1000);
  3547. LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 25, 0, "d", 0);
  3548. }
  3549. }
  3550. else if(key == 1)
  3551. {
  3552. if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED])
  3553. {
  3554. if(EditLetterSizeSpeed <= 0.01)
  3555. {
  3556. EditLetterSizeSpeed = 0.005;
  3557. format(SpeedSTR, 256, "~n~~n~~n~~y~S~r~%.4f", EditLetterSizeSpeed);
  3558. ShowInfoDraw(SpeedSTR, 1000);
  3559. LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 1);
  3560. return 1;
  3561. }
  3562. EditLetterSizeSpeed -= 0.01;
  3563. format(SpeedSTR, 256, "~n~~n~~n~~y~S~w~%.3f", EditLetterSizeSpeed);
  3564. ShowInfoDraw(SpeedSTR, 1000);
  3565. LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 25, 0, "d", 1);
  3566. }
  3567. }
  3568. return 1;
  3569. }
  3570.  
  3571. TDE_CALLBACK:DeleteTextDrawLetter()
  3572. {
  3573. if(EditMode != EDITMODE_TEXT) return 1;
  3574. if(VirtualKeys[52][KEY_PRESSED] || VirtualKeys[37][KEY_PRESSED]) //Delete
  3575. {
  3576. new len = strlen(ProjectTD[EditIndex][ETextDrawText]);
  3577. if(len == 0) return 1;
  3578. if(ProjectTD[EditIndex][ETextDrawText][len-1] == '~' && ProjectTD[EditIndex][ETextDrawText][len-2] == 'n' && ProjectTD[EditIndex][ETextDrawText][len-3] == '~')
  3579. {
  3580. strdel(ProjectTD[EditIndex][ETextDrawText], len-3, len);
  3581. }
  3582. else strdel(ProjectTD[EditIndex][ETextDrawText], len-1, len);
  3583. TDE_TextDrawSetString(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawText]);
  3584. DeleteTimer = SetTimer("DeleteTextDrawLetter", 25, 0);
  3585. }
  3586. return 1;
  3587. }
  3588.  
  3589. TDE_CALLBACK:LetterSizeTextDrawEDITOR()
  3590. {
  3591. if(EditMode != EDITMODE_LETTERSIZE) return 1;
  3592. if(VirtualKeys[31][KEY_PRESSED]) //UP
  3593. {
  3594. if(moveselectedtds)
  3595. {
  3596. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3597. {
  3598. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3599. {
  3600. ProjectTD[i][ETextDrawLetterY] -= EditLetterSizeSpeed;
  3601. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  3602. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3603. }
  3604. }
  3605. LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
  3606. return 1;
  3607. }
  3608. ProjectTD[EditIndex][ETextDrawLetterY] -= EditLetterSizeSpeed;
  3609. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3610. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3611. format(SpeedSTR, 256, "~n~~n~~n~~y~letterX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3612. ShowInfoDraw(SpeedSTR, 1000);
  3613. LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
  3614. return 1;
  3615. }
  3616. if(VirtualKeys[32][KEY_PRESSED]) //DOWN
  3617. {
  3618. if(moveselectedtds)
  3619. {
  3620. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3621. {
  3622. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3623. {
  3624. ProjectTD[i][ETextDrawLetterY] += EditLetterSizeSpeed;
  3625. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  3626. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3627. }
  3628. }
  3629. LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
  3630. return 1;
  3631. }
  3632. ProjectTD[EditIndex][ETextDrawLetterY] += EditLetterSizeSpeed;
  3633. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3634. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3635. format(SpeedSTR, 256, "~n~~n~~n~~y~letterX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3636. ShowInfoDraw(SpeedSTR, 1000);
  3637. LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
  3638. return 1;
  3639. }
  3640. if(VirtualKeys[29][KEY_PRESSED]) //LEFT
  3641. {
  3642. if(moveselectedtds)
  3643. {
  3644. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3645. {
  3646. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3647. {
  3648. ProjectTD[i][ETextDrawLetterX] -= floatdiv(EditLetterSizeSpeed, 10);
  3649. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  3650. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3651. }
  3652. }
  3653. LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
  3654. return 1;
  3655. }
  3656. ProjectTD[EditIndex][ETextDrawLetterX] -= floatdiv(EditLetterSizeSpeed, 10);
  3657. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3658. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3659. format(SpeedSTR, 256, "~n~~n~~n~~y~letterX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3660. ShowInfoDraw(SpeedSTR, 1000);
  3661. LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
  3662. return 1;
  3663. }
  3664. if(VirtualKeys[30][KEY_PRESSED]) //RIGHT
  3665. {
  3666. if(moveselectedtds)
  3667. {
  3668. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3669. {
  3670. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3671. {
  3672. ProjectTD[i][ETextDrawLetterX] += floatdiv(EditLetterSizeSpeed, 10);
  3673. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  3674. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3675. }
  3676. }
  3677. LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
  3678. return 1;
  3679. }
  3680. ProjectTD[EditIndex][ETextDrawLetterX] += floatdiv(EditLetterSizeSpeed, 10);
  3681. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3682. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3683. format(SpeedSTR, 256, "~n~~n~~n~~y~letterX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3684. ShowInfoDraw(SpeedSTR, 1000);
  3685. LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
  3686. return 1;
  3687. }
  3688. KillTimer(LetterSizeTimer);
  3689. LetterSizeTimer = -1;
  3690. return 1;
  3691. }
  3692.  
  3693. TDE_CALLBACK:ReSizeTextDrawEDITOR()
  3694. {
  3695. if(EditMode != EDITMODE_SIZE) return 1;
  3696. if(VirtualKeys[31][KEY_PRESSED]) //UP
  3697. {
  3698. if(moveselectedtds)
  3699. {
  3700. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3701. {
  3702. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3703. {
  3704. if( (TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]) && ProjectTD[i][ETextDrawLetterX] == 0.0) )
  3705. {
  3706. ProjectTD[i][ETextDrawLetterY] -= EditSizeSpeed/10;
  3707. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  3708.  
  3709. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3710. return 1;
  3711. }
  3712. ProjectTD[i][ETextDrawTextY] -= EditSizeSpeed;
  3713. new alignment = TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
  3714. switch(alignment)
  3715. {
  3716. case 1, 3: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  3717. case 2: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
  3718. }
  3719. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3720. }
  3721. }
  3722. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3723. return 1;
  3724. }
  3725. if( (TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0) )
  3726. {
  3727. ProjectTD[EditIndex][ETextDrawLetterY] -= EditSizeSpeed/10;
  3728. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3729.  
  3730. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3731. format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3732. ShowInfoDraw(SpeedSTR, 1000);
  3733. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3734. return 1;
  3735. }
  3736. ProjectTD[EditIndex][ETextDrawTextY] -= EditSizeSpeed;
  3737. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  3738. switch(alignment)
  3739. {
  3740. case 1, 3: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3741. case 2: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  3742. }
  3743. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3744.  
  3745. format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~sizeY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3746. ShowInfoDraw(SpeedSTR, 1000);
  3747. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3748. return 1;
  3749. }
  3750. if(VirtualKeys[32][KEY_PRESSED]) //DOWN
  3751. {
  3752. if(moveselectedtds)
  3753. {
  3754. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3755. {
  3756. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3757. {
  3758. if( (TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]) && ProjectTD[i][ETextDrawLetterX] == 0.0) )
  3759. {
  3760. ProjectTD[i][ETextDrawLetterY] += EditSizeSpeed/10;
  3761. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  3762.  
  3763. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3764. return 1;
  3765. }
  3766. ProjectTD[i][ETextDrawTextY] += EditSizeSpeed;
  3767. new alignment = TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
  3768. switch(alignment)
  3769. {
  3770. case 1, 3: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  3771. case 2: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
  3772. }
  3773. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3774. }
  3775. }
  3776. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3777. return 1;
  3778. }
  3779. if( (TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0) )
  3780. {
  3781. ProjectTD[EditIndex][ETextDrawLetterY] += EditSizeSpeed/10;
  3782. TDE_TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3783.  
  3784. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3785. format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3786. ShowInfoDraw(SpeedSTR, 1000);
  3787. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3788. return 1;
  3789. }
  3790. ProjectTD[EditIndex][ETextDrawTextY] += EditSizeSpeed;
  3791. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  3792. switch(alignment)
  3793. {
  3794. case 1, 3: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3795. case 2: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  3796. }
  3797. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3798. format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~sizeY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3799. ShowInfoDraw(SpeedSTR, 1000);
  3800. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3801. return 1;
  3802. }
  3803. if(VirtualKeys[29][KEY_PRESSED]) //LEFT
  3804. {
  3805. if(moveselectedtds)
  3806. {
  3807. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3808. {
  3809. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3810. {
  3811. ProjectTD[i][ETextDrawTextX] -= EditSizeSpeed;
  3812. new alignment = TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
  3813. switch(alignment)
  3814. {
  3815. case 1, 3: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  3816. case 2: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
  3817. }
  3818. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3819. }
  3820. }
  3821. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3822. return 1;
  3823. }
  3824. ProjectTD[EditIndex][ETextDrawTextX] -= EditSizeSpeed;
  3825. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  3826. switch(alignment)
  3827. {
  3828. case 1, 3: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3829. case 2: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  3830. }
  3831. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3832. format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~sizeY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3833. if( (TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0) ) format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3834. ShowInfoDraw(SpeedSTR, 1000);
  3835. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3836. return 1;
  3837. }
  3838. if(VirtualKeys[30][KEY_PRESSED]) //RIGHT
  3839. {
  3840. if(moveselectedtds)
  3841. {
  3842. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3843. {
  3844. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3845. {
  3846. ProjectTD[i][ETextDrawTextX] += EditSizeSpeed;
  3847. new alignment = TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
  3848. switch(alignment)
  3849. {
  3850. case 1, 3: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  3851. case 2: TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
  3852. }
  3853. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3854. }
  3855. }
  3856. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3857. return 1;
  3858. }
  3859. ProjectTD[EditIndex][ETextDrawTextX] += EditSizeSpeed;
  3860. new alignment = TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
  3861. switch(alignment)
  3862. {
  3863. case 1, 3: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3864. case 2: TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
  3865. }
  3866. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3867. format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~sizeY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3868. if( (TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0) ) format(SpeedSTR, 256, "~n~~n~~n~~y~sizeX~w~%.4f ~y~letterY~w~%.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
  3869. ShowInfoDraw(SpeedSTR, 1000);
  3870. EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
  3871. return 1;
  3872. }
  3873. KillTimer(EditSizeTDTimer);
  3874. EditSizeTDTimer = -1;
  3875. return 1;
  3876. }
  3877.  
  3878. TDE_CALLBACK:MoveTextDrawEDITOR()
  3879. {
  3880. if(EditMode != EDITMODE_POSITION) return 1;
  3881. if(VirtualKeys[31][KEY_PRESSED]) //UP
  3882. {
  3883. if(moveselectedtds)
  3884. {
  3885. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3886. {
  3887. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3888. {
  3889. ProjectTD[i][ETextDrawPosY] -= EditMoveSpeed;
  3890. TDE_TextDrawSetPos(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY]);
  3891. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3892. }
  3893. }
  3894. MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
  3895. return 1;
  3896. }
  3897. ProjectTD[EditIndex][ETextDrawPosY] -= EditMoveSpeed;
  3898. TDE_TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  3899. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3900. format(SpeedSTR, 256, "~n~~n~~n~~y~posX~w~%.4f ~y~posY~w~%.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  3901. ShowInfoDraw(SpeedSTR, 1000);
  3902. MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
  3903. return 1;
  3904. }
  3905. if(VirtualKeys[32][KEY_PRESSED]) //DOWN
  3906. {
  3907. if(moveselectedtds)
  3908. {
  3909. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3910. {
  3911. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3912. {
  3913. ProjectTD[i][ETextDrawPosY] += EditMoveSpeed;
  3914. TDE_TextDrawSetPos(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY]);
  3915. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3916. }
  3917. }
  3918. MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
  3919. return 1;
  3920. }
  3921. ProjectTD[EditIndex][ETextDrawPosY] += EditMoveSpeed;
  3922. TDE_TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  3923. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3924. format(SpeedSTR, 256, "~n~~n~~n~~y~posX~w~%.4f ~y~posY~w~%.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  3925. ShowInfoDraw(SpeedSTR, 1000);
  3926. MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
  3927. return 1;
  3928. }
  3929. if(VirtualKeys[29][KEY_PRESSED]) //LEFT
  3930. {
  3931. if(moveselectedtds)
  3932. {
  3933. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3934. {
  3935. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3936. {
  3937. ProjectTD[i][ETextDrawPosX] -= EditMoveSpeed;
  3938. TDE_TextDrawSetPos(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY]);
  3939.  
  3940. if(TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]))
  3941. {
  3942. if(TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]) != 2)
  3943. {
  3944. ProjectTD[i][ETextDrawTextX] -= EditMoveSpeed;
  3945. TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  3946. }
  3947. }
  3948.  
  3949. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3950. }
  3951. }
  3952. MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
  3953. return 1;
  3954. }
  3955. ProjectTD[EditIndex][ETextDrawPosX] -= EditMoveSpeed;
  3956. TDE_TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  3957.  
  3958. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
  3959. {
  3960. if(TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]) != 2)
  3961. {
  3962. ProjectTD[EditIndex][ETextDrawTextX] -= EditMoveSpeed;
  3963. TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  3964. }
  3965. }
  3966.  
  3967. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  3968. format(SpeedSTR, 256, "~n~~n~~n~~y~posX~w~%.4f ~y~posY~w~%.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  3969. ShowInfoDraw(SpeedSTR, 1000);
  3970. MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
  3971. return 1;
  3972. }
  3973. if(VirtualKeys[30][KEY_PRESSED]) //RIGHT
  3974. {
  3975. if(moveselectedtds)
  3976. {
  3977. for(new i = 0; i < MAX_PROJECT_TEXTDRAWS; i ++)
  3978. {
  3979. if(ProjectTD[i][ItsFromTDE] == 1 && SelectedTextDraws[i])
  3980. {
  3981. ProjectTD[i][ETextDrawPosX] += EditMoveSpeed;
  3982. TDE_TextDrawSetPos(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY]);
  3983.  
  3984. if(TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]))
  3985. {
  3986. if(TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]) != 2)
  3987. {
  3988. ProjectTD[i][ETextDrawTextX] -= EditMoveSpeed;
  3989. TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  3990. }
  3991. }
  3992.  
  3993. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  3994. }
  3995. }
  3996. MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
  3997. return 1;
  3998. }
  3999. ProjectTD[EditIndex][ETextDrawPosX] += EditMoveSpeed;
  4000. TDE_TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  4001.  
  4002. if(TDE_TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
  4003. {
  4004. if(TDE_TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]) != 2)
  4005. {
  4006. ProjectTD[EditIndex][ETextDrawTextX] += EditMoveSpeed;
  4007. TDE_TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
  4008. }
  4009. }
  4010.  
  4011. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
  4012. format(SpeedSTR, 256, "~n~~n~~n~~y~posX~w~%.4f ~y~posY~w~%.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
  4013. ShowInfoDraw(SpeedSTR, 1000);
  4014. MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
  4015. return 1;
  4016. }
  4017. KillTimer(MoveTDTimer);
  4018. MoveTDTimer = -1;
  4019. return 1;
  4020. }
  4021.  
  4022. stock ShowEditor()
  4023. {
  4024. TogglePlayerControllable(ProjectEditor, false);
  4025.  
  4026. Loop(0, sizeof(TDE_Menu))
  4027. {
  4028. switch(c)
  4029. {
  4030. case 0:
  4031. {
  4032. TDE_TextDrawColor(TDE_Menu[c], 0x000000FF);
  4033. TDE_TextDrawSetSelectable(TDE_Menu[c], false);
  4034. }
  4035. case 2:
  4036. {
  4037. TDE_TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
  4038. TDE_TextDrawSetSelectable(TDE_Menu[c], true);
  4039. }
  4040. default:
  4041. {
  4042. TDE_TextDrawColor(TDE_Menu[c], 0x888888FF);
  4043. TDE_TextDrawSetSelectable(TDE_Menu[c], false);
  4044. }
  4045. }
  4046. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  4047. }
  4048. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  4049. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  4050. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  4051. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  4052. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  4053. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  4054. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  4055. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  4056. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  4057. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  4058. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
  4059. TDE_TextDrawShowForPlayer(ProjectEditor, TD_Status);
  4060. SelectTextDraw(ProjectEditor, -1);
  4061. return true;
  4062. }
  4063.  
  4064. stock ShowEditorEx()
  4065. {
  4066.  
  4067.  
  4068. Loop(0, sizeof(TDE_Menu))
  4069. {
  4070. switch(c)
  4071. {
  4072. case 0:
  4073. {
  4074. TDE_TextDrawColor(TDE_Menu[c], 0x000000FF);
  4075. TDE_TextDrawSetSelectable(TDE_Menu[c], false);
  4076. }
  4077. default:
  4078. {
  4079. TDE_TextDrawColor(TDE_Menu[c], 0x888888FF);
  4080. TDE_TextDrawSetSelectable(TDE_Menu[c], false);
  4081. }
  4082. }
  4083. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  4084. }
  4085. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  4086. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  4087. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  4088. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  4089. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  4090. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  4091. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  4092. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  4093. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  4094. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  4095. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
  4096. TDE_TextDrawShowForPlayer(ProjectEditor, TD_Status);
  4097. SelectTextDraw(ProjectEditor, -1);
  4098. return true;
  4099. }
  4100.  
  4101. stock CreateMenuTextDraws()
  4102. {
  4103. TDE_TextDrawCreate(TDE_Menu[0], 0.0, OffsetZ - 2.0, "LD_SPAC:white");
  4104. TextdrawSettings(TDE_Menu[0], Float:{0.5, 1.0, 640.0, 37.0}, {0,0x000000FF,0,0,0,0,255,4,1,0});
  4105.  
  4106. new Float:OffsetX = 0.01;
  4107. TDE_TextDrawCreate(TDE_Menu[1], OffsetX, OffsetZ, "TDE:btn_manage"); OffsetX += 32.0;
  4108. TDE_TextDrawCreate(TDE_Menu[4], OffsetX, OffsetZ, "TDE:btn_export"); OffsetX += 32.0;
  4109. TDE_TextDrawCreate(TDE_Menu[2], OffsetX, OffsetZ, "TDE:btn_new"); OffsetX += 32.0;
  4110. TDE_TextDrawCreate(TDE_Menu[3], OffsetX, OffsetZ, "TDE:btn_delete"); OffsetX += 32.0;
  4111. TDE_TextDrawCreate(TDE_Menu[8], OffsetX, OffsetZ, "TDE:btn_duplicate"); OffsetX += 32.0;
  4112. TDE_TextDrawCreate(TDE_Menu[24], OffsetX, OffsetZ, "TDE:btn_font0");
  4113. TDE_TextDrawCreate(TDE_Menu[25], OffsetX, OffsetZ, "TDE:btn_font1");
  4114. TDE_TextDrawCreate(TDE_Menu[26], OffsetX, OffsetZ, "TDE:btn_font2");
  4115. TDE_TextDrawCreate(TDE_Menu[27], OffsetX, OffsetZ, "TDE:btn_font3");
  4116. TDE_TextDrawCreate(TDE_Menu[12], OffsetX, OffsetZ, "TDE:btn_image");
  4117. TDE_TextDrawCreate(TDE_Menu[13], OffsetX, OffsetZ, "TDE:btn_previews"); OffsetX += 32.0;
  4118. TDE_TextDrawCreate(TDE_Menu[9], OffsetX, OffsetZ, "TDE:btn_pos"); OffsetX += 32.0;
  4119. TDE_TextDrawCreate(TDE_Menu[10], OffsetX, OffsetZ, "TDE:btn_size"); OffsetX += 32.0;
  4120. TDE_TextDrawCreate(TDE_Menu[11], OffsetX, OffsetZ, "TDE:btn_text");
  4121. TDE_TextDrawCreate(TDE_Menu[35], OffsetX, OffsetZ, "TDE:btn_modelid"); OffsetX += 32.0;
  4122. TDE_TextDrawCreate(TDE_Menu[14], OffsetX, OffsetZ, "TDE:btn_color"); OffsetX += 32.0;
  4123. TDE_TextDrawCreate(TDE_Menu[15], OffsetX, OffsetZ, "TDE:btn_bgcolor"); OffsetX += 32.0;
  4124. TDE_TextDrawCreate(TDE_Menu[32], OffsetX, OffsetZ, "TDE:btn_boxcolor"); OffsetX += 32.0;
  4125. TDE_TextDrawCreate(TDE_Menu[16], OffsetX, OffsetZ, "TDE:btn_lettersize"); OffsetX += 32.0;
  4126. TDE_TextDrawCreate(TDE_Menu[17], OffsetX, OffsetZ, "TDE:btn_outline"); OffsetX += 32.0;
  4127. TDE_TextDrawCreate(TDE_Menu[18], OffsetX, OffsetZ, "TDE:btn_shadow"); OffsetX += 32.0;
  4128. TDE_TextDrawCreate(TDE_Menu[19], OffsetX, OffsetZ, "TDE:btn_useboxno");
  4129. TDE_TextDrawCreate(TDE_Menu[20], OffsetX, OffsetZ, "TDE:btn_useboxyes");
  4130. TDE_TextDrawCreate(TDE_Menu[34], OffsetX, OffsetZ, "TDE:btn_modeloptions"); OffsetX += 32.0;
  4131. TDE_TextDrawCreate(TDE_Menu[21], OffsetX, OffsetZ, "TDE:btn_alignmentleft");
  4132. TDE_TextDrawCreate(TDE_Menu[22], OffsetX, OffsetZ, "TDE:btn_alignmentcenter");
  4133. TDE_TextDrawCreate(TDE_Menu[23], OffsetX, OffsetZ, "TDE:btn_alignmentright"); OffsetX += 32.0;
  4134. TDE_TextDrawCreate(TDE_Menu[5], OffsetX, OffsetZ, "TDE:btn_global");
  4135. TDE_TextDrawCreate(TDE_Menu[33], OffsetX, OffsetZ, "TDE:btn_player"); OffsetX += 32.0;
  4136. TDE_TextDrawCreate(TDE_Menu[28], OffsetX, OffsetZ, "TDE:btn_selectableno");
  4137. TDE_TextDrawCreate(TDE_Menu[29], OffsetX, OffsetZ, "TDE:btn_selectableyes"); OffsetX += 32.0;
  4138. TDE_TextDrawCreate(TDE_Menu[30], OffsetX, OffsetZ, "TDE:btn_proportionno");
  4139. TDE_TextDrawCreate(TDE_Menu[31], OffsetX, OffsetZ, "TDE:btn_proportionyes"); OffsetX += 32.0;
  4140. Loop(1, sizeof TDE_Menu)
  4141. {
  4142. if(c == 6 || c == 7) continue;
  4143. TextdrawSettings(TDE_Menu[c], Float:{0.5, 1.0, 32.0, 32.0}, {0,0xDDDDDDFF,0,0,0,0,0,4,1,0});
  4144. }
  4145.  
  4146. TDE_TextDrawCreate(TD_Status, 2.0, 404.86, "EDITMODE_NONE");
  4147. TDE_TextDrawLetterSize(TD_Status, 0.179665, 0.857481);
  4148. TDE_TextDrawAlignment(TD_Status, 1);
  4149. TDE_TextDrawColor(TD_Status, -186);
  4150. TDE_TextDrawSetShadow(TD_Status, 0);
  4151. TDE_TextDrawSetOutline(TD_Status, 0);
  4152. TDE_TextDrawBackgroundColor(TD_Status, 255);
  4153. TDE_TextDrawFont(TD_Status, 1);
  4154. TDE_TextDrawSetProportional(TD_Status, 1);
  4155.  
  4156. TDE_TextDrawCreate(TDEditor_Helper[0], 322.000000, -6.000000, "_");
  4157. TDE_TextDrawAlignment(TDEditor_Helper[0], 2);
  4158. TDE_TextDrawBackgroundColor(TDEditor_Helper[0], 255);
  4159. TDE_TextDrawFont(TDEditor_Helper[0], 1);
  4160. TDE_TextDrawLetterSize(TDEditor_Helper[0], 0.000000, 24.000003);
  4161. TDE_TextDrawColor(TDEditor_Helper[0], -1);
  4162. TDE_TextDrawSetOutline(TDEditor_Helper[0], 0);
  4163. TDE_TextDrawSetProportional(TDEditor_Helper[0], 1);
  4164. TDE_TextDrawSetShadow(TDEditor_Helper[0], 1);
  4165. TDE_TextDrawUseBox(TDEditor_Helper[0], 1);
  4166. TDE_TextDrawBoxColor(TDEditor_Helper[0], -16776961);
  4167. TDE_TextDrawTextSize(TDEditor_Helper[0], 0.000000, -2.000000);
  4168. TDE_TextDrawSetSelectable(TDEditor_Helper[0], 0);
  4169.  
  4170. TDE_TextDrawCreate(TDEditor_Helper[1], 324.000000, 150.000000, "_");
  4171. TDE_TextDrawBackgroundColor(TDEditor_Helper[1], 255);
  4172. TDE_TextDrawFont(TDEditor_Helper[1], 1);
  4173. TDE_TextDrawLetterSize(TDEditor_Helper[1], 0.00000, -0.321204);
  4174. TDE_TextDrawColor(TDEditor_Helper[1], -1);
  4175. TDE_TextDrawSetOutline(TDEditor_Helper[1], 0);
  4176. TDE_TextDrawSetProportional(TDEditor_Helper[1], 1);
  4177. TDE_TextDrawSetShadow(TDEditor_Helper[1], 1);
  4178. TDE_TextDrawUseBox(TDEditor_Helper[1], 1);
  4179. TDE_TextDrawBoxColor(TDEditor_Helper[1], -16776961);
  4180. TDE_TextDrawTextSize(TDEditor_Helper[1], -30.000000, 0.000000);
  4181. TDE_TextDrawSetSelectable(TDEditor_Helper[1], 0);
  4182.  
  4183. TDE_TextDrawCreate(TDELOGO, 215.000091, 182.933395, "TDE:TDELogo");
  4184. TDE_TextDrawLetterSize(TDELOGO, 0.000000, 0.000000);
  4185. TDE_TextDrawTextSize(TDELOGO, 190.0, 50.0);
  4186. TDE_TextDrawAlignment(TDELOGO, 1);
  4187. TDE_TextDrawColor(TDELOGO, -1);
  4188. TDE_TextDrawSetShadow(TDELOGO, 0);
  4189. TDE_TextDrawSetOutline(TDELOGO, 0);
  4190. TDE_TextDrawFont(TDELOGO, 4);
  4191. TDE_TextDrawSetSelectable(TDELOGO, 1);
  4192.  
  4193. return 1;
  4194. }
  4195.  
  4196. stock DestroyMenuTextDraws()
  4197. {
  4198. Loop(0, sizeof TDE_Menu)
  4199. {
  4200. TDE_TextDrawDestroy(TDE_Menu[c]);
  4201. TDE_Menu[c] = Text:INVALID_TEXT_DRAW;
  4202. }
  4203. TDE_TextDrawDestroy(TD_Status);
  4204. TD_Status = Text:INVALID_TEXT_DRAW;
  4205. TDE_TextDrawDestroy(TDEditor_Helper[0]);
  4206. TDEditor_Helper[0] = Text:INVALID_TEXT_DRAW;
  4207. TDE_TextDrawDestroy(TDEditor_Helper[1]);
  4208. TDEditor_Helper[1] = Text:INVALID_TEXT_DRAW;
  4209. TDE_TextDrawDestroy(TDELOGO);
  4210. TDELOGO = Text:INVALID_TEXT_DRAW;
  4211. return 1;
  4212. }
  4213.  
  4214. stock TextdrawSettings(Text:textid, Float:Sizes[4], Options[10]) //By iPleomax
  4215. {
  4216. TDE_TextDrawLetterSize (textid, Sizes[0], Sizes[1]);
  4217. TDE_TextDrawTextSize (textid, Sizes[2], Sizes[3]);
  4218. TDE_TextDrawAlignment (textid, Options[0] ? Options[0] : 1);
  4219. TDE_TextDrawColor (textid, Options[1]);
  4220. TDE_TextDrawUseBox (textid, Options[2]);
  4221. TDE_TextDrawBoxColor (textid, Options[3]);
  4222. TDE_TextDrawSetShadow (textid, Options[4]);
  4223. TDE_TextDrawSetOutline (textid, Options[5]);
  4224. TDE_TextDrawBackgroundColor (textid, Options[6]);
  4225. TDE_TextDrawFont (textid, Options[7]);
  4226. TDE_TextDrawSetProportional (textid, Options[8]);
  4227. TDE_TextDrawSetSelectable (textid, Options[9]);
  4228. }
  4229.  
  4230. stock GetAvailableIndex()
  4231. {
  4232. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
  4233. {
  4234. if(ProjectTD[i][ItsFromTDE] == -1)
  4235. {
  4236. if(ProjectTD[i][ETextDrawID] == Text:INVALID_TEXT_DRAW)
  4237. {
  4238. return i;
  4239. }
  4240. }
  4241. }
  4242. return INVALID_INDEX_ID;
  4243. }
  4244.  
  4245. stock KeyToString(key)
  4246. {
  4247. new LETTER[4] = "";
  4248. if((GetKeyState(VK_CAPSLOCK) & 0x0001) != 0)
  4249. {
  4250. if(VirtualKeys[41][KEY_PRESSED]) //Shift
  4251. {
  4252. switch(key)
  4253. {
  4254. case VK_KEY_A: LETTER = "a";//41
  4255. case VK_KEY_B: LETTER = "b";//42
  4256. case VK_KEY_C: LETTER = "c";//43
  4257. case VK_KEY_D: LETTER = "d";//44
  4258. case VK_KEY_E: LETTER = "e";//45
  4259. case VK_KEY_F: LETTER = "f";//46
  4260. case VK_KEY_G: LETTER = "g";//47
  4261. case VK_KEY_H: LETTER = "h";//48
  4262. case VK_KEY_I: LETTER = "i";//49
  4263. case VK_KEY_J: LETTER = "j";//4A
  4264. case VK_KEY_K: LETTER = "k";//4B
  4265. case VK_KEY_L: LETTER = "l";//4C
  4266. case VK_KEY_M: LETTER = "m";//4D
  4267. case VK_KEY_N: LETTER = "n";//4E
  4268. case VK_KEY_O: LETTER = "o";//4F
  4269. case VK_KEY_P: LETTER = "p";//50
  4270. case VK_KEY_Q: LETTER = "q";//51
  4271. case VK_KEY_R: LETTER = "r";//52
  4272. case VK_KEY_S: LETTER = "s";//53
  4273. case VK_KEY_T: LETTER = "t";//54
  4274. case VK_KEY_U: LETTER = "u";//55
  4275. case VK_KEY_V: LETTER = "v";//56
  4276. case VK_KEY_W: LETTER = "w";//57
  4277. case VK_KEY_X: LETTER = "x";//58
  4278. case VK_KEY_Y: LETTER = "y";//59
  4279. case VK_KEY_Z: LETTER = "z";//5A
  4280. case VK_SPACE: LETTER = "_";
  4281. case VK_ENTER: LETTER = "~n~";
  4282. case VK_KEYB0: LETTER = "=";//30
  4283. case VK_KEYB1: LETTER = "!";//!
  4284. case VK_KEYB2: LETTER = "\"";//32
  4285. //case VK_KEYB3: LETTER = "·";//33
  4286. case VK_KEYB4: LETTER = "$";//34
  4287. case VK_KEYB5: LETTER = "%";//35
  4288. case VK_KEYB6: LETTER = "&";//36
  4289. case VK_KEYB7: LETTER = "/";//37
  4290. case VK_KEYB8: LETTER = "(";//38
  4291. case VK_KEYB9: LETTER = ")";//39
  4292. case VK_OEM_PLUS: LETTER = "*";
  4293. case VK_OEM_COMMA: LETTER = ";";
  4294. case VK_OEM_MINUS: LETTER = "_";
  4295. case VK_OEM_PERIOD: LETTER = ":";
  4296. case VK_OEM_2: LETTER = "?";
  4297. case VK_OEM_4: LETTER = "?";
  4298. //case VK_OEM_5: LETTER = "ª";
  4299. case VK_OEM_6: LETTER = "[";
  4300. case VK_OEM_102: LETTER = ">";
  4301. case VK_NUMPAD0: LETTER = "0";
  4302. case VK_NUMPAD1: LETTER = "1";
  4303. case VK_NUMPAD2: LETTER = "2";
  4304. case VK_NUMPAD3: LETTER = "3";
  4305. case VK_NUMPAD4: LETTER = "4";
  4306. case VK_NUMPAD5: LETTER = "5";
  4307. case VK_NUMPAD6: LETTER = "6";
  4308. case VK_NUMPAD7: LETTER = "7";
  4309. case VK_NUMPAD8: LETTER = "8";
  4310. case VK_NUMPAD9: LETTER = "9";
  4311. case VK_MULTIPLY: LETTER = "*";
  4312. case VK_ADD: LETTER = "+";
  4313. //case VK_SEPARATOR: LETTER = "?";
  4314. case VK_SUBTRACT: LETTER = "-";
  4315. case VK_DECIMAL: LETTER = ".";
  4316. case VK_DIVIDE: LETTER = "/";
  4317. }
  4318. }
  4319. else
  4320. {
  4321. switch(key)
  4322. {
  4323. case VK_KEY_A: LETTER = "A";//41
  4324. case VK_KEY_B: LETTER = "B";//42
  4325. case VK_KEY_C: LETTER = "C";//43
  4326. case VK_KEY_D: LETTER = "D";//44
  4327. case VK_KEY_E: LETTER = "E";//45
  4328. case VK_KEY_F: LETTER = "F";//46
  4329. case VK_KEY_G: LETTER = "G";//47
  4330. case VK_KEY_H: LETTER = "H";//48
  4331. case VK_KEY_I: LETTER = "I";//49
  4332. case VK_KEY_J: LETTER = "J";//4A
  4333. case VK_KEY_K: LETTER = "K";//4B
  4334. case VK_KEY_L: LETTER = "L";//4C
  4335. case VK_KEY_M: LETTER = "M";//4D
  4336. case VK_KEY_N: LETTER = "N";//4E
  4337. case VK_KEY_O: LETTER = "O";//4F
  4338. case VK_KEY_P: LETTER = "P";//50
  4339. case VK_KEY_Q: LETTER = "Q";//51
  4340. case VK_KEY_R: LETTER = "R";//52
  4341. case VK_KEY_S: LETTER = "S";//53
  4342. case VK_KEY_T: LETTER = "T";//54
  4343. case VK_KEY_U: LETTER = "U";//55
  4344. case VK_KEY_V: LETTER = "V";//56
  4345. case VK_KEY_W: LETTER = "W";//57
  4346. case VK_KEY_X: LETTER = "X";//58
  4347. case VK_KEY_Y: LETTER = "Y";//59
  4348. case VK_KEY_Z: LETTER = "Z";//5A
  4349. case VK_SPACE: LETTER = "_";
  4350. case VK_ENTER: LETTER = "~n~";
  4351. case VK_KEYB0: LETTER = "0";//30
  4352. case VK_KEYB1: LETTER = "1";//31
  4353. case VK_KEYB2: LETTER = "2";//32
  4354. case VK_KEYB3: LETTER = "3";//33
  4355. case VK_KEYB4: LETTER = "4";//34
  4356. case VK_KEYB5: LETTER = "5";//35
  4357. case VK_KEYB6: LETTER = "6";//36
  4358. case VK_KEYB7: LETTER = "7";//37
  4359. case VK_KEYB8: LETTER = "8";//38
  4360. case VK_KEYB9: LETTER = "9";//39
  4361. case VK_OEM_PLUS: LETTER = "+";
  4362. case VK_OEM_COMMA: LETTER = ",";
  4363. case VK_OEM_MINUS: LETTER = "-";
  4364. case VK_OEM_PERIOD: LETTER = ".";
  4365. case VK_OEM_2: LETTER = "]";
  4366. case VK_OEM_4: LETTER = "'";
  4367. case VK_OEM_5: LETTER = "|";
  4368. case VK_OEM_6: LETTER = "¡";
  4369. case VK_OEM_102: LETTER = "<";
  4370. case VK_NUMPAD0: LETTER = "0";
  4371. case VK_NUMPAD1: LETTER = "1";
  4372. case VK_NUMPAD2: LETTER = "2";
  4373. case VK_NUMPAD3: LETTER = "3";
  4374. case VK_NUMPAD4: LETTER = "4";
  4375. case VK_NUMPAD5: LETTER = "5";
  4376. case VK_NUMPAD6: LETTER = "6";
  4377. case VK_NUMPAD7: LETTER = "7";
  4378. case VK_NUMPAD8: LETTER = "8";
  4379. case VK_NUMPAD9: LETTER = "9";
  4380. case VK_MULTIPLY: LETTER = "*";
  4381. case VK_ADD: LETTER = "+";
  4382. //case VK_SEPARATOR: LETTER = "?";
  4383. case VK_SUBTRACT: LETTER = "-";
  4384. case VK_DECIMAL: LETTER = ".";
  4385. case VK_DIVIDE: LETTER = "/";
  4386.  
  4387.  
  4388. }
  4389. }
  4390. }
  4391. else
  4392. {
  4393. if(VirtualKeys[41][KEY_PRESSED]) //Shift
  4394. {
  4395. switch(key)
  4396. {
  4397. case VK_KEY_A: LETTER = "A";//41
  4398. case VK_KEY_B: LETTER = "B";//42
  4399. case VK_KEY_C: LETTER = "C";//43
  4400. case VK_KEY_D: LETTER = "D";//44
  4401. case VK_KEY_E: LETTER = "E";//45
  4402. case VK_KEY_F: LETTER = "F";//46
  4403. case VK_KEY_G: LETTER = "G";//47
  4404. case VK_KEY_H: LETTER = "H";//48
  4405. case VK_KEY_I: LETTER = "I";//49
  4406. case VK_KEY_J: LETTER = "J";//4A
  4407. case VK_KEY_K: LETTER = "K";//4B
  4408. case VK_KEY_L: LETTER = "L";//4C
  4409. case VK_KEY_M: LETTER = "M";//4D
  4410. case VK_KEY_N: LETTER = "N";//4E
  4411. case VK_KEY_O: LETTER = "O";//4F
  4412. case VK_KEY_P: LETTER = "P";//50
  4413. case VK_KEY_Q: LETTER = "Q";//51
  4414. case VK_KEY_R: LETTER = "R";//52
  4415. case VK_KEY_S: LETTER = "S";//53
  4416. case VK_KEY_T: LETTER = "T";//54
  4417. case VK_KEY_U: LETTER = "U";//55
  4418. case VK_KEY_V: LETTER = "V";//56
  4419. case VK_KEY_W: LETTER = "W";//57
  4420. case VK_KEY_X: LETTER = "X";//58
  4421. case VK_KEY_Y: LETTER = "Y";//59
  4422. case VK_KEY_Z: LETTER = "Z";//5A
  4423. case VK_SPACE: LETTER = "_";
  4424. case VK_ENTER: LETTER = "~n~";
  4425. case VK_KEYB0: LETTER = "=";//30
  4426. case VK_KEYB1: LETTER = "!";//!
  4427. case VK_KEYB2: LETTER = "\"";//32
  4428. //case VK_KEYB3: LETTER = "·";//33
  4429. case VK_KEYB4: LETTER = "$";//34
  4430. case VK_KEYB5: LETTER = "%";//35
  4431. case VK_KEYB6: LETTER = "&";//36
  4432. case VK_KEYB7: LETTER = "/";//37
  4433. case VK_KEYB8: LETTER = "(";//38
  4434. case VK_KEYB9: LETTER = ")";//39
  4435. case VK_OEM_PLUS: LETTER = "*";
  4436. case VK_OEM_COMMA: LETTER = ";";
  4437. case VK_OEM_MINUS: LETTER = "_";
  4438. case VK_OEM_PERIOD: LETTER = ":";
  4439. case VK_OEM_2: LETTER = "?";
  4440. case VK_OEM_4: LETTER = "?";
  4441. //case VK_OEM_5: LETTER = "ª";
  4442. case VK_OEM_6: LETTER = "[";
  4443. case VK_OEM_102: LETTER = ">";
  4444. case VK_NUMPAD0: LETTER = "0";
  4445. case VK_NUMPAD1: LETTER = "1";
  4446. case VK_NUMPAD2: LETTER = "2";
  4447. case VK_NUMPAD3: LETTER = "3";
  4448. case VK_NUMPAD4: LETTER = "4";
  4449. case VK_NUMPAD5: LETTER = "5";
  4450. case VK_NUMPAD6: LETTER = "6";
  4451. case VK_NUMPAD7: LETTER = "7";
  4452. case VK_NUMPAD8: LETTER = "8";
  4453. case VK_NUMPAD9: LETTER = "9";
  4454. case VK_MULTIPLY: LETTER = "*";
  4455. case VK_ADD: LETTER = "+";
  4456. //case VK_SEPARATOR: LETTER = "?";
  4457. case VK_SUBTRACT: LETTER = "-";
  4458. case VK_DECIMAL: LETTER = ".";
  4459. case VK_DIVIDE: LETTER = "/";
  4460. }
  4461. }
  4462. else
  4463. {
  4464. switch(key)
  4465. {
  4466. case VK_KEY_A: LETTER = "a";//41
  4467. case VK_KEY_B: LETTER = "b";//42
  4468. case VK_KEY_C: LETTER = "c";//43
  4469. case VK_KEY_D: LETTER = "d";//44
  4470. case VK_KEY_E: LETTER = "e";//45
  4471. case VK_KEY_F: LETTER = "f";//46
  4472. case VK_KEY_G: LETTER = "g";//47
  4473. case VK_KEY_H: LETTER = "h";//48
  4474. case VK_KEY_I: LETTER = "i";//49
  4475. case VK_KEY_J: LETTER = "j";//4A
  4476. case VK_KEY_K: LETTER = "k";//4B
  4477. case VK_KEY_L: LETTER = "l";//4C
  4478. case VK_KEY_M: LETTER = "m";//4D
  4479. case VK_KEY_N: LETTER = "n";//4E
  4480. case VK_KEY_O: LETTER = "o";//4F
  4481. case VK_KEY_P: LETTER = "p";//50
  4482. case VK_KEY_Q: LETTER = "q";//51
  4483. case VK_KEY_R: LETTER = "r";//52
  4484. case VK_KEY_S: LETTER = "s";//53
  4485. case VK_KEY_T: LETTER = "t";//54
  4486. case VK_KEY_U: LETTER = "u";//55
  4487. case VK_KEY_V: LETTER = "v";//56
  4488. case VK_KEY_W: LETTER = "w";//57
  4489. case VK_KEY_X: LETTER = "x";//58
  4490. case VK_KEY_Y: LETTER = "y";//59
  4491. case VK_KEY_Z: LETTER = "z";//5A
  4492. case VK_SPACE: LETTER = "_";
  4493. case VK_ENTER: LETTER = "~n~";
  4494. case VK_KEYB0: LETTER = "0";//30
  4495. case VK_KEYB1: LETTER = "1";//31
  4496. case VK_KEYB2: LETTER = "2";//32
  4497. case VK_KEYB3: LETTER = "3";//33
  4498. case VK_KEYB4: LETTER = "4";//34
  4499. case VK_KEYB5: LETTER = "5";//35
  4500. case VK_KEYB6: LETTER = "6";//36
  4501. case VK_KEYB7: LETTER = "7";//37
  4502. case VK_KEYB8: LETTER = "8";//38
  4503. case VK_KEYB9: LETTER = "9";//39
  4504. case VK_OEM_PLUS: LETTER = "+";
  4505. case VK_OEM_COMMA: LETTER = ",";
  4506. case VK_OEM_MINUS: LETTER = "-";
  4507. case VK_OEM_PERIOD: LETTER = ".";
  4508. case VK_OEM_2: LETTER = "]";
  4509. case VK_OEM_4: LETTER = "'";
  4510. case VK_OEM_5: LETTER = "|";
  4511. case VK_OEM_6: LETTER = "¡";
  4512. case VK_OEM_102: LETTER = "<";
  4513. case VK_NUMPAD0: LETTER = "0";
  4514. case VK_NUMPAD1: LETTER = "1";
  4515. case VK_NUMPAD2: LETTER = "2";
  4516. case VK_NUMPAD3: LETTER = "3";
  4517. case VK_NUMPAD4: LETTER = "4";
  4518. case VK_NUMPAD5: LETTER = "5";
  4519. case VK_NUMPAD6: LETTER = "6";
  4520. case VK_NUMPAD7: LETTER = "7";
  4521. case VK_NUMPAD8: LETTER = "8";
  4522. case VK_NUMPAD9: LETTER = "9";
  4523. case VK_MULTIPLY: LETTER = "*";
  4524. case VK_ADD: LETTER = "+";
  4525. //case VK_SEPARATOR: LETTER = "?";
  4526. case VK_SUBTRACT: LETTER = "-";
  4527. case VK_DECIMAL: LETTER = ".";
  4528. case VK_DIVIDE: LETTER = "/";
  4529.  
  4530.  
  4531. }
  4532. }
  4533. }
  4534. return LETTER;
  4535. }
  4536.  
  4537. stock HexToRGBA(colour, &r, &g, &b, &a) //By Betamaster
  4538. {
  4539. r = (colour >> 24) & 0xFF;
  4540. g = (colour >> 16) & 0xFF;
  4541. b = (colour >> 8) & 0xFF;
  4542. a = colour & 0xFF;
  4543. }
  4544.  
  4545. stock RGBAToHex(r, g, b, a) //By Betamaster
  4546. {
  4547. return (r<<24 | g<<16 | b<<8 | a);
  4548. }
  4549.  
  4550. stock RemoveTextDrawTDE(Index)
  4551. {
  4552. format(ProjectTD[Index][ETextDrawText], 800, "");
  4553. ProjectTD[Index][ETextDrawPosX] = 0.0;
  4554. ProjectTD[Index][ETextDrawPosY] = 0.0;
  4555. ProjectTD[Index][ETextDrawLetterX] = 0.0;
  4556. ProjectTD[Index][ETextDrawLetterY] = 0.0;
  4557. ProjectTD[Index][ETextDrawTextX] = 0.0;
  4558. ProjectTD[Index][ETextDrawTextY] = 0.0;
  4559. ProjectTD[Index][ETextDrawOutline] = 0;
  4560. ProjectTD[Index][ETextDrawShadow] = 0;
  4561. ProjectTD[Index][ETextDrawModelid] = 0;
  4562. ProjectTD[Index][ETextDrawRotX] = 0.0;
  4563. ProjectTD[Index][ETextDrawRotY] = 0.0;
  4564. ProjectTD[Index][ETextDrawRotZ] = 0.0;
  4565. ProjectTD[Index][ETextDrawZoom] = 0.0;
  4566. ProjectTD[Index][ETextDrawType] = 0;
  4567. ProjectTD[Index][ETextDrawSelectable] = 0;
  4568. ProjectTD[Index][ETextDrawColor] = 0;
  4569. ProjectTD[Index][ETextDrawBGColor] = 0;
  4570. ProjectTD[Index][ETextDrawBoxColor] = 0;
  4571. ProjectTD[Index][ETextDrawVehCol1] = 0;
  4572. ProjectTD[Index][ETextDrawVehCol2] = 0;
  4573. TDE_TextDrawDestroy(ProjectTD[Index][ETextDrawID]);
  4574. ProjectTD[Index][ItsFromTDE] = -1;
  4575. ProjectTD[Index][ETextDrawID] = Text:INVALID_TEXT_DRAW;
  4576.  
  4577. new NewIndex = GetAvailableIndexBack(EditIndex);
  4578. EditIndex = NewIndex;
  4579. if(EditIndex == -1)
  4580. {
  4581. Loop(1, sizeof(TDE_Menu))
  4582. {
  4583. TDE_TextDrawColor(TDE_Menu[c], 0x888888FF);
  4584. TDE_TextDrawSetSelectable(TDE_Menu[c], false);
  4585. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
  4586. }
  4587. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  4588. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  4589. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  4590. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  4591. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  4592. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  4593. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  4594. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  4595. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  4596. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  4597. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
  4598. TDE_TextDrawColor(TDE_Menu[2], 0xDDDDDDFF);
  4599. TDE_TextDrawSetSelectable(TDE_Menu[2], true);
  4600. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[2]);
  4601. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  4602. EditMode = EDITMODE_NONE;
  4603. }
  4604. else
  4605. {
  4606. new string[128];
  4607. format(string, sizeof(string), "{e2b960}ETDEditor: {FFFFFF}Agora você está editando a textdraw {e2b960}#%d.", EditIndex);
  4608. SendClientMessage(ProjectEditor, -1, string);
  4609. UpdateIcons(EditIndex);
  4610.  
  4611. if(EditMode == EDITMODE_MODELS)
  4612. {
  4613. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  4614. EditMode = EDITMODE_NONE;
  4615. }
  4616. }
  4617. return 1;
  4618. }
  4619.  
  4620. stock RemoveTextDrawTDEOnly(Index)
  4621. {
  4622. format(ProjectTD[Index][ETextDrawText], 800, "");
  4623. ProjectTD[Index][ETextDrawPosX] = 0.0;
  4624. ProjectTD[Index][ETextDrawPosY] = 0.0;
  4625. ProjectTD[Index][ETextDrawLetterX] = 0.0;
  4626. ProjectTD[Index][ETextDrawLetterY] = 0.0;
  4627. ProjectTD[Index][ETextDrawTextX] = 0.0;
  4628. ProjectTD[Index][ETextDrawTextY] = 0.0;
  4629. ProjectTD[Index][ETextDrawOutline] = 0;
  4630. ProjectTD[Index][ETextDrawShadow] = 0;
  4631. ProjectTD[Index][ETextDrawModelid] = 0;
  4632. ProjectTD[Index][ETextDrawRotX] = 0.0;
  4633. ProjectTD[Index][ETextDrawRotY] = 0.0;
  4634. ProjectTD[Index][ETextDrawRotZ] = 0.0;
  4635. ProjectTD[Index][ETextDrawZoom] = 0.0;
  4636. ProjectTD[Index][ETextDrawType] = 0;
  4637. ProjectTD[Index][ETextDrawSelectable] = 0;
  4638. ProjectTD[Index][ETextDrawColor] = 0;
  4639. ProjectTD[Index][ETextDrawBGColor] = 0;
  4640. ProjectTD[Index][ETextDrawBoxColor] = 0;
  4641. ProjectTD[Index][ETextDrawVehCol1] = 0;
  4642. ProjectTD[Index][ETextDrawVehCol2] = 0;
  4643. TDE_TextDrawDestroy(ProjectTD[Index][ETextDrawID]);
  4644. ProjectTD[Index][ItsFromTDE] = -1;
  4645. ProjectTD[Index][ETextDrawID] = Text:INVALID_TEXT_DRAW;
  4646. return 1;
  4647. }
  4648.  
  4649. stock GetAvailableIndexBack(start)
  4650. {
  4651. for (new i = start; i != -1; i--)
  4652. {
  4653. if(ProjectTD[i][ItsFromTDE] == 1)
  4654. {
  4655. if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
  4656. {
  4657. return i;
  4658. }
  4659. }
  4660. }
  4661.  
  4662. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
  4663. {
  4664. if(ProjectTD[i][ItsFromTDE] == 1)
  4665. {
  4666. if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
  4667. {
  4668. return i;
  4669. }
  4670. }
  4671. }
  4672. return INVALID_INDEX_ID;
  4673. }
  4674.  
  4675. stock HexToInt(string[])//DracoBlue
  4676. {
  4677. if (string[0] == 0) return 0;
  4678. new i, cur=1, res = 0;
  4679. for (i=strlen(string);i>0;i--) {
  4680. if (string[i-1]<58) res=res+cur*(string[i-1]-48); else res=res+cur*(string[i-1]-65+10);
  4681. cur=cur*16;
  4682. }
  4683. return res;
  4684. }
  4685.  
  4686. stock RGB( red, green, blue, alpha )
  4687. {
  4688. return (red * 16777216) + (green * 65536) + (blue * 256) + alpha;
  4689. }
  4690.  
  4691. stock ShowManage(playerid)
  4692. {
  4693. new d, c, dialog[310], str[31];
  4694. for (d = PageStart; d < MAX_PROJECT_TEXTDRAWS; d++)
  4695. {
  4696. if(ProjectTD[d][ItsFromTDE] == 1)
  4697. {
  4698. BackManageDialog[c] = 0;
  4699. c ++;
  4700. if(c == 11)
  4701. {
  4702. if(PageStart >= 10)
  4703. {
  4704. format(str, 30, ">>\n");
  4705. strcat(dialog, str);
  4706. }
  4707. else
  4708. {
  4709. format(str, 30, ">>");
  4710. strcat(dialog, str);
  4711. }
  4712. break;
  4713. }
  4714. if(TDE_TextDrawGetFont(ProjectTD[d][ETextDrawID]) == 5) format(str, 31, "%s(%i)ModelPreview: %d\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawModelid]);
  4715. else format(str, 31, "%s(%i)%s\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawText]);
  4716.  
  4717. if(strlen(str) >= 30)
  4718. {
  4719. strdel(str, 28, 30);
  4720. strcat(str, "\n");
  4721. }
  4722. strcat(dialog, str);
  4723. }
  4724. }
  4725. if(PageStart >= 10)
  4726. {
  4727. BackManageDialog[c] = 1;
  4728. format(str, 30, "<<");
  4729. strcat(dialog, str);
  4730. }
  4731. ShowPlayerDialog(playerid, DIALOG_MANAGE, DIALOG_STYLE_LIST, "ETDEditor - Gerenciar", dialog, ">>", "X");
  4732. IsPSel = false;
  4733. return 1;
  4734. }
  4735.  
  4736. stock ShowSelectTDManage(playerid)
  4737. {
  4738. new d, c, dialog[310], str[31];
  4739. for (d = PageStart; d < MAX_PROJECT_TEXTDRAWS; d++)
  4740. {
  4741. if(ProjectTD[d][ItsFromTDE] == 1)
  4742. {
  4743. BackManageDialog[c] = 0;
  4744. c ++;
  4745. if(c == 11)
  4746. {
  4747. if(PageStart >= 10)
  4748. {
  4749. format(str, 30, ">>\n");
  4750. strcat(dialog, str);
  4751. }
  4752. else
  4753. {
  4754. format(str, 30, ">>");
  4755. strcat(dialog, str);
  4756. }
  4757. break;
  4758. }
  4759. if(TDE_TextDrawGetFont(ProjectTD[d][ETextDrawID]) == 5)
  4760. {
  4761. if(SelectedTextDraws[d]) format(str, 31, "{33FF00}(%i)ModelPreview: %d\n", d, ProjectTD[d][ETextDrawModelid]);
  4762. else format(str, 31, "{CCCCCC}(%i)ModelPreview: %d\n", d, ProjectTD[d][ETextDrawModelid]);
  4763. }
  4764. else
  4765. {
  4766. if(SelectedTextDraws[d]) format(str, 31, "{33FF00}(%i)%s\n", d, ProjectTD[d][ETextDrawText]);
  4767. else format(str, 31, "{CCCCCC}(%i)%s\n", d, ProjectTD[d][ETextDrawText]);
  4768. }
  4769.  
  4770. if(strlen(str) >= 30)
  4771. {
  4772. strdel(str, 28, 30);
  4773. strcat(str, "\n");
  4774. }
  4775. strcat(dialog, str);
  4776. }
  4777. }
  4778. if(PageStart >= 10)
  4779. {
  4780. BackManageDialog[c] = 1;
  4781. format(str, 30, "<<");
  4782. strcat(dialog, str);
  4783. }
  4784. ShowPlayerDialog(playerid, DIALOG_SELECTTDS, DIALOG_STYLE_LIST, "ETDEditor - Selecionar textdraws", dialog, ">>", "X");
  4785. IsPSel = false;
  4786. return 1;
  4787. }
  4788.  
  4789. stock DuplicateTextDraw(Index, ToIndex)
  4790. {
  4791. format(ProjectTD[ToIndex][ETextDrawText], 800, "%s", ProjectTD[Index][ETextDrawText]);
  4792. ProjectTD[ToIndex][ETextDrawPosX] = ProjectTD[Index][ETextDrawPosX];
  4793. ProjectTD[ToIndex][ETextDrawPosY] = ProjectTD[Index][ETextDrawPosY];
  4794. ProjectTD[ToIndex][ETextDrawLetterX] = ProjectTD[Index][ETextDrawLetterX];
  4795. ProjectTD[ToIndex][ETextDrawLetterY] = ProjectTD[Index][ETextDrawLetterY];
  4796. ProjectTD[ToIndex][ETextDrawTextX] = ProjectTD[Index][ETextDrawTextX];
  4797. ProjectTD[ToIndex][ETextDrawTextY] = ProjectTD[Index][ETextDrawTextY];
  4798. ProjectTD[ToIndex][ETextDrawOutline] = ProjectTD[Index][ETextDrawOutline];
  4799. ProjectTD[ToIndex][ETextDrawShadow] = ProjectTD[Index][ETextDrawShadow];
  4800. ProjectTD[ToIndex][ETextDrawModelid] = ProjectTD[Index][ETextDrawModelid];
  4801. ProjectTD[ToIndex][ETextDrawRotX] = ProjectTD[Index][ETextDrawRotX];
  4802. ProjectTD[ToIndex][ETextDrawRotY] = ProjectTD[Index][ETextDrawRotY];
  4803. ProjectTD[ToIndex][ETextDrawRotZ] = ProjectTD[Index][ETextDrawRotZ];
  4804. ProjectTD[ToIndex][ETextDrawZoom] = ProjectTD[Index][ETextDrawZoom];
  4805. ProjectTD[ToIndex][ETextDrawType] = ProjectTD[Index][ETextDrawType];
  4806. ProjectTD[ToIndex][ETextDrawSelectable] = ProjectTD[Index][ETextDrawSelectable];
  4807. ProjectTD[ToIndex][ETextDrawColor] = ProjectTD[Index][ETextDrawColor];
  4808. ProjectTD[ToIndex][ETextDrawBGColor] = ProjectTD[Index][ETextDrawBGColor];
  4809. ProjectTD[ToIndex][ETextDrawBoxColor] = ProjectTD[Index][ETextDrawBoxColor];
  4810. ProjectTD[ToIndex][ETextDrawVehCol1] = ProjectTD[Index][ETextDrawVehCol1];
  4811. ProjectTD[ToIndex][ETextDrawVehCol2] = ProjectTD[Index][ETextDrawVehCol2];
  4812. TDE_TextDrawGetFontSize(ProjectTD[Index][ETextDrawID], ProjectTD[ToIndex][ETextDrawLetterX], ProjectTD[ToIndex][ETextDrawLetterY]);
  4813. new alignment = TDE_TextDrawGetAlignment(ProjectTD[Index][ETextDrawID]);
  4814. new usebox = TDE_TextDrawIsBox(ProjectTD[Index][ETextDrawID]);
  4815. new font = TDE_TextDrawGetFont(ProjectTD[Index][ETextDrawID]);
  4816. new proportional = TDE_TextDrawIsProportional(ProjectTD[Index][ETextDrawID]);
  4817.  
  4818. TDE_TextDrawCreate(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawPosX], ProjectTD[ToIndex][ETextDrawPosY], ProjectTD[ToIndex][ETextDrawText]);
  4819. TDE_TextDrawLetterSize(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawLetterX], ProjectTD[ToIndex][ETextDrawLetterY]);
  4820. TDE_TextDrawAlignment(ProjectTD[ToIndex][ETextDrawID], alignment);
  4821. TDE_TextDrawColor(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawColor]);
  4822. TDE_TextDrawUseBox(ProjectTD[ToIndex][ETextDrawID], usebox);
  4823. if(alignment == 2) TDE_TextDrawTextSize(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawTextY], ProjectTD[ToIndex][ETextDrawTextX]);
  4824. else TDE_TextDrawTextSize(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawTextX], ProjectTD[ToIndex][ETextDrawTextY]);
  4825. TDE_TextDrawBoxColor(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawBoxColor]);
  4826. TDE_TextDrawSetShadow(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawShadow]);
  4827. TDE_TextDrawSetOutline(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawOutline]);
  4828. TDE_TextDrawBackgroundColor(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawBGColor]);
  4829. TDE_TextDrawFont(ProjectTD[ToIndex][ETextDrawID], font);
  4830. TDE_TextDrawSetProportional(ProjectTD[ToIndex][ETextDrawID], proportional);
  4831.  
  4832. if(font == 5)
  4833. {
  4834. TDE_TextDrawSetPreviewModel(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawModelid]);
  4835. TDE_TextDrawSetPreviewRot(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawRotX], ProjectTD[ToIndex][ETextDrawRotY], ProjectTD[ToIndex][ETextDrawRotZ], ProjectTD[ToIndex][ETextDrawZoom]);
  4836. if(IsVehicle(ProjectTD[ToIndex][ETextDrawModelid])) TDE_TextDrawSetPreviewVehCol(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawVehCol1], ProjectTD[ToIndex][ETextDrawVehCol2]);
  4837. }
  4838. else
  4839. {
  4840. if(EditMode == EDITMODE_MODELS)
  4841. {
  4842. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  4843. EditMode = EDITMODE_NONE;
  4844. }
  4845. }
  4846. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[ToIndex][ETextDrawID]);
  4847. ProjectTD[ToIndex][ItsFromTDE] = ProjectTD[Index][ItsFromTDE];
  4848. return 1;
  4849. }
  4850.  
  4851. stock UpdateIcons(Index)
  4852. {
  4853. switch(TDE_TextDrawGetFont(ProjectTD[Index][ETextDrawID]))
  4854. {
  4855. case 0:
  4856. {
  4857. TDE_TextDrawColor(TDE_Menu[12], 0xDDDDDDFF);
  4858. TDE_TextDrawSetSelectable(TDE_Menu[12], true);
  4859. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
  4860. TDE_TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
  4861. TDE_TextDrawSetSelectable(TDE_Menu[15], true);
  4862. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
  4863. TDE_TextDrawColor(TDE_Menu[32], 0xDDDDDDFF);
  4864. TDE_TextDrawSetSelectable(TDE_Menu[32], true);
  4865. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
  4866. TDE_TextDrawColor(TDE_Menu[16], 0xDDDDDDFF);
  4867. TDE_TextDrawSetSelectable(TDE_Menu[16], true);
  4868. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
  4869. TDE_TextDrawColor(TDE_Menu[17], 0xDDDDDDFF);
  4870. TDE_TextDrawSetSelectable(TDE_Menu[17], true);
  4871. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
  4872. TDE_TextDrawColor(TDE_Menu[18], 0xDDDDDDFF);
  4873. TDE_TextDrawSetSelectable(TDE_Menu[18], true);
  4874. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
  4875. TDE_TextDrawColor(TDE_Menu[19], 0xDDDDDDFF);
  4876. TDE_TextDrawSetSelectable(TDE_Menu[19], true);
  4877. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
  4878. TDE_TextDrawColor(TDE_Menu[20], 0xDDDDDDFF);
  4879. TDE_TextDrawSetSelectable(TDE_Menu[20], true);
  4880. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
  4881. TDE_TextDrawColor(TDE_Menu[34], 0xDDDDDDFF);
  4882. TDE_TextDrawSetSelectable(TDE_Menu[34], true);
  4883. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
  4884. TDE_TextDrawColor(TDE_Menu[21], 0xDDDDDDFF);
  4885. TDE_TextDrawSetSelectable(TDE_Menu[21], true);
  4886. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
  4887. TDE_TextDrawColor(TDE_Menu[22], 0xDDDDDDFF);
  4888. TDE_TextDrawSetSelectable(TDE_Menu[22], true);
  4889. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
  4890. TDE_TextDrawColor(TDE_Menu[23], 0xDDDDDDFF);
  4891. TDE_TextDrawSetSelectable(TDE_Menu[23], true);
  4892. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
  4893. TDE_TextDrawColor(TDE_Menu[30], 0xDDDDDDFF);
  4894. TDE_TextDrawSetSelectable(TDE_Menu[30], true);
  4895. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
  4896. TDE_TextDrawColor(TDE_Menu[31], 0xDDDDDDFF);
  4897. TDE_TextDrawSetSelectable(TDE_Menu[31], true);
  4898. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
  4899.  
  4900. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  4901. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
  4902. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  4903. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  4904. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  4905. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  4906. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
  4907. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
  4908. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[24]);
  4909. }
  4910. case 1:
  4911. {
  4912. TDE_TextDrawColor(TDE_Menu[12], 0xDDDDDDFF);
  4913. TDE_TextDrawSetSelectable(TDE_Menu[12], true);
  4914. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
  4915. TDE_TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
  4916. TDE_TextDrawSetSelectable(TDE_Menu[15], true);
  4917. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
  4918. TDE_TextDrawColor(TDE_Menu[32], 0xDDDDDDFF);
  4919. TDE_TextDrawSetSelectable(TDE_Menu[32], true);
  4920. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
  4921. TDE_TextDrawColor(TDE_Menu[16], 0xDDDDDDFF);
  4922. TDE_TextDrawSetSelectable(TDE_Menu[16], true);
  4923. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
  4924. TDE_TextDrawColor(TDE_Menu[17], 0xDDDDDDFF);
  4925. TDE_TextDrawSetSelectable(TDE_Menu[17], true);
  4926. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
  4927. TDE_TextDrawColor(TDE_Menu[18], 0xDDDDDDFF);
  4928. TDE_TextDrawSetSelectable(TDE_Menu[18], true);
  4929. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
  4930. TDE_TextDrawColor(TDE_Menu[19], 0xDDDDDDFF);
  4931. TDE_TextDrawSetSelectable(TDE_Menu[19], true);
  4932. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
  4933. TDE_TextDrawColor(TDE_Menu[20], 0xDDDDDDFF);
  4934. TDE_TextDrawSetSelectable(TDE_Menu[20], true);
  4935. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
  4936. TDE_TextDrawColor(TDE_Menu[34], 0xDDDDDDFF);
  4937. TDE_TextDrawSetSelectable(TDE_Menu[34], true);
  4938. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
  4939. TDE_TextDrawColor(TDE_Menu[21], 0xDDDDDDFF);
  4940. TDE_TextDrawSetSelectable(TDE_Menu[21], true);
  4941. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
  4942. TDE_TextDrawColor(TDE_Menu[22], 0xDDDDDDFF);
  4943. TDE_TextDrawSetSelectable(TDE_Menu[22], true);
  4944. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
  4945. TDE_TextDrawColor(TDE_Menu[23], 0xDDDDDDFF);
  4946. TDE_TextDrawSetSelectable(TDE_Menu[23], true);
  4947. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
  4948. TDE_TextDrawColor(TDE_Menu[30], 0xDDDDDDFF);
  4949. TDE_TextDrawSetSelectable(TDE_Menu[30], true);
  4950. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
  4951. TDE_TextDrawColor(TDE_Menu[31], 0xDDDDDDFF);
  4952. TDE_TextDrawSetSelectable(TDE_Menu[31], true);
  4953. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
  4954.  
  4955. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  4956. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
  4957. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  4958. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  4959. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  4960. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  4961. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
  4962. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
  4963. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[25]);
  4964. }
  4965. case 2:
  4966. {
  4967. TDE_TextDrawColor(TDE_Menu[12], 0xDDDDDDFF);
  4968. TDE_TextDrawSetSelectable(TDE_Menu[12], true);
  4969. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
  4970. TDE_TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
  4971. TDE_TextDrawSetSelectable(TDE_Menu[15], true);
  4972. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
  4973. TDE_TextDrawColor(TDE_Menu[32], 0xDDDDDDFF);
  4974. TDE_TextDrawSetSelectable(TDE_Menu[32], true);
  4975. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
  4976. TDE_TextDrawColor(TDE_Menu[16], 0xDDDDDDFF);
  4977. TDE_TextDrawSetSelectable(TDE_Menu[16], true);
  4978. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
  4979. TDE_TextDrawColor(TDE_Menu[17], 0xDDDDDDFF);
  4980. TDE_TextDrawSetSelectable(TDE_Menu[17], true);
  4981. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
  4982. TDE_TextDrawColor(TDE_Menu[18], 0xDDDDDDFF);
  4983. TDE_TextDrawSetSelectable(TDE_Menu[18], true);
  4984. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
  4985. TDE_TextDrawColor(TDE_Menu[19], 0xDDDDDDFF);
  4986. TDE_TextDrawSetSelectable(TDE_Menu[19], true);
  4987. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
  4988. TDE_TextDrawColor(TDE_Menu[20], 0xDDDDDDFF);
  4989. TDE_TextDrawSetSelectable(TDE_Menu[20], true);
  4990. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
  4991. TDE_TextDrawColor(TDE_Menu[34], 0xDDDDDDFF);
  4992. TDE_TextDrawSetSelectable(TDE_Menu[34], true);
  4993. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
  4994. TDE_TextDrawColor(TDE_Menu[21], 0xDDDDDDFF);
  4995. TDE_TextDrawSetSelectable(TDE_Menu[21], true);
  4996. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
  4997. TDE_TextDrawColor(TDE_Menu[22], 0xDDDDDDFF);
  4998. TDE_TextDrawSetSelectable(TDE_Menu[22], true);
  4999. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
  5000. TDE_TextDrawColor(TDE_Menu[23], 0xDDDDDDFF);
  5001. TDE_TextDrawSetSelectable(TDE_Menu[23], true);
  5002. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
  5003. TDE_TextDrawColor(TDE_Menu[30], 0xDDDDDDFF);
  5004. TDE_TextDrawSetSelectable(TDE_Menu[30], true);
  5005. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
  5006. TDE_TextDrawColor(TDE_Menu[31], 0xDDDDDDFF);
  5007. TDE_TextDrawSetSelectable(TDE_Menu[31], true);
  5008. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
  5009.  
  5010. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  5011. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
  5012. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  5013. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  5014. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  5015. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  5016. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
  5017. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
  5018. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[26]);
  5019. }
  5020. case 3:
  5021. {
  5022. TDE_TextDrawColor(TDE_Menu[12], 0xDDDDDDFF);
  5023. TDE_TextDrawSetSelectable(TDE_Menu[12], true);
  5024. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
  5025. TDE_TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
  5026. TDE_TextDrawSetSelectable(TDE_Menu[15], true);
  5027. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
  5028. TDE_TextDrawColor(TDE_Menu[32], 0xDDDDDDFF);
  5029. TDE_TextDrawSetSelectable(TDE_Menu[32], true);
  5030. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
  5031. TDE_TextDrawColor(TDE_Menu[16], 0xDDDDDDFF);
  5032. TDE_TextDrawSetSelectable(TDE_Menu[16], true);
  5033. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
  5034. TDE_TextDrawColor(TDE_Menu[17], 0xDDDDDDFF);
  5035. TDE_TextDrawSetSelectable(TDE_Menu[17], true);
  5036. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
  5037. TDE_TextDrawColor(TDE_Menu[18], 0xDDDDDDFF);
  5038. TDE_TextDrawSetSelectable(TDE_Menu[18], true);
  5039. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
  5040. TDE_TextDrawColor(TDE_Menu[19], 0xDDDDDDFF);
  5041. TDE_TextDrawSetSelectable(TDE_Menu[19], true);
  5042. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
  5043. TDE_TextDrawColor(TDE_Menu[20], 0xDDDDDDFF);
  5044. TDE_TextDrawSetSelectable(TDE_Menu[20], true);
  5045. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
  5046. TDE_TextDrawColor(TDE_Menu[34], 0xDDDDDDFF);
  5047. TDE_TextDrawSetSelectable(TDE_Menu[34], true);
  5048. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
  5049. TDE_TextDrawColor(TDE_Menu[21], 0xDDDDDDFF);
  5050. TDE_TextDrawSetSelectable(TDE_Menu[21], true);
  5051. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
  5052. TDE_TextDrawColor(TDE_Menu[22], 0xDDDDDDFF);
  5053. TDE_TextDrawSetSelectable(TDE_Menu[22], true);
  5054. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
  5055. TDE_TextDrawColor(TDE_Menu[23], 0xDDDDDDFF);
  5056. TDE_TextDrawSetSelectable(TDE_Menu[23], true);
  5057. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
  5058. TDE_TextDrawColor(TDE_Menu[30], 0xDDDDDDFF);
  5059. TDE_TextDrawSetSelectable(TDE_Menu[30], true);
  5060. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
  5061. TDE_TextDrawColor(TDE_Menu[31], 0xDDDDDDFF);
  5062. TDE_TextDrawSetSelectable(TDE_Menu[31], true);
  5063. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
  5064.  
  5065. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  5066. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
  5067. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  5068. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  5069. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  5070. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  5071. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
  5072. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
  5073. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[27]);
  5074. }
  5075. case 4:
  5076. {
  5077. TDE_TextDrawColor(TDE_Menu[12], 0x888888FF);
  5078. TDE_TextDrawSetSelectable(TDE_Menu[12], false);
  5079. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
  5080. TDE_TextDrawColor(TDE_Menu[15], 0x888888FF);
  5081. TDE_TextDrawSetSelectable(TDE_Menu[15], false);
  5082. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
  5083. TDE_TextDrawColor(TDE_Menu[32], 0x888888FF);
  5084. TDE_TextDrawSetSelectable(TDE_Menu[32], false);
  5085. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
  5086. TDE_TextDrawColor(TDE_Menu[16], 0x888888FF);
  5087. TDE_TextDrawSetSelectable(TDE_Menu[16], false);
  5088. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
  5089. TDE_TextDrawColor(TDE_Menu[17], 0x888888FF);
  5090. TDE_TextDrawSetSelectable(TDE_Menu[17], false);
  5091. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
  5092. TDE_TextDrawColor(TDE_Menu[18], 0x888888FF);
  5093. TDE_TextDrawSetSelectable(TDE_Menu[18], false);
  5094. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
  5095. TDE_TextDrawColor(TDE_Menu[19], 0x888888FF);
  5096. TDE_TextDrawSetSelectable(TDE_Menu[19], false);
  5097. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
  5098. TDE_TextDrawColor(TDE_Menu[20], 0x888888FF);
  5099. TDE_TextDrawSetSelectable(TDE_Menu[20], false);
  5100. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
  5101. TDE_TextDrawColor(TDE_Menu[34], 0x888888FF);
  5102. TDE_TextDrawSetSelectable(TDE_Menu[34], false);
  5103. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
  5104. TDE_TextDrawColor(TDE_Menu[21], 0x888888FF);
  5105. TDE_TextDrawSetSelectable(TDE_Menu[21], false);
  5106. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
  5107. TDE_TextDrawColor(TDE_Menu[22], 0x888888FF);
  5108. TDE_TextDrawSetSelectable(TDE_Menu[22], false);
  5109. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
  5110. TDE_TextDrawColor(TDE_Menu[23], 0x888888FF);
  5111. TDE_TextDrawSetSelectable(TDE_Menu[23], false);
  5112. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
  5113. TDE_TextDrawColor(TDE_Menu[30], 0x888888FF);
  5114. TDE_TextDrawSetSelectable(TDE_Menu[30], false);
  5115. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
  5116. TDE_TextDrawColor(TDE_Menu[31], 0x888888FF);
  5117. TDE_TextDrawSetSelectable(TDE_Menu[31], false);
  5118. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
  5119.  
  5120. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  5121. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
  5122. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  5123. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  5124. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  5125. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  5126. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
  5127. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
  5128. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
  5129.  
  5130. }
  5131. case 5:
  5132. {
  5133. TDE_TextDrawColor(TDE_Menu[12], 0x888888FF);
  5134. TDE_TextDrawSetSelectable(TDE_Menu[12], false);
  5135. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
  5136. TDE_TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
  5137. TDE_TextDrawSetSelectable(TDE_Menu[15], true);
  5138. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
  5139. TDE_TextDrawColor(TDE_Menu[32], 0x888888FF);
  5140. TDE_TextDrawSetSelectable(TDE_Menu[32], false);
  5141. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
  5142. TDE_TextDrawColor(TDE_Menu[16], 0x888888FF);
  5143. TDE_TextDrawSetSelectable(TDE_Menu[16], false);
  5144. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
  5145. TDE_TextDrawColor(TDE_Menu[17], 0x888888FF);
  5146. TDE_TextDrawSetSelectable(TDE_Menu[17], false);
  5147. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
  5148. TDE_TextDrawColor(TDE_Menu[18], 0x888888FF);
  5149. TDE_TextDrawSetSelectable(TDE_Menu[18], false);
  5150. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
  5151. TDE_TextDrawColor(TDE_Menu[19], 0x888888FF);
  5152. TDE_TextDrawSetSelectable(TDE_Menu[19], false);
  5153. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
  5154. TDE_TextDrawColor(TDE_Menu[20], 0x888888FF);
  5155. TDE_TextDrawSetSelectable(TDE_Menu[20], false);
  5156. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
  5157. TDE_TextDrawColor(TDE_Menu[34], 0x888888FF);
  5158. TDE_TextDrawSetSelectable(TDE_Menu[34], false);
  5159. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
  5160. TDE_TextDrawColor(TDE_Menu[21], 0x888888FF);
  5161. TDE_TextDrawSetSelectable(TDE_Menu[21], false);
  5162. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
  5163. TDE_TextDrawColor(TDE_Menu[22], 0x888888FF);
  5164. TDE_TextDrawSetSelectable(TDE_Menu[22], false);
  5165. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
  5166. TDE_TextDrawColor(TDE_Menu[23], 0x888888FF);
  5167. TDE_TextDrawSetSelectable(TDE_Menu[23], false);
  5168. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
  5169. TDE_TextDrawColor(TDE_Menu[30], 0x888888FF);
  5170. TDE_TextDrawSetSelectable(TDE_Menu[30], false);
  5171. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
  5172. TDE_TextDrawColor(TDE_Menu[31], 0x888888FF);
  5173. TDE_TextDrawSetSelectable(TDE_Menu[31], false);
  5174. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
  5175.  
  5176. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
  5177. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
  5178. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
  5179. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
  5180. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
  5181. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
  5182. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[13]);
  5183. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[11]);
  5184. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[35]);
  5185. }
  5186. }
  5187.  
  5188. if(TDE_TextDrawIsBox(ProjectTD[Index][ETextDrawID]))
  5189. {
  5190. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[19]);
  5191. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  5192. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[34]);
  5193. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
  5194. }
  5195. else
  5196. {
  5197. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[19]);
  5198. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
  5199. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[34]);
  5200. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
  5201. }
  5202.  
  5203.  
  5204.  
  5205. switch(TDE_TextDrawGetAlignment(ProjectTD[Index][ETextDrawID]))
  5206. {
  5207. case 1:
  5208. {
  5209. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[21]);
  5210. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  5211. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  5212. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
  5213. }
  5214. case 2:
  5215. {
  5216. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[21]);
  5217. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  5218. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  5219. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
  5220. }
  5221. case 3:
  5222. {
  5223. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[21]);
  5224. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
  5225. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
  5226. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
  5227. }
  5228. }
  5229.  
  5230. switch(ProjectTD[Index][ETextDrawType])
  5231. {
  5232. case 0:
  5233. {
  5234. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[5]);
  5235. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  5236. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[5]);
  5237. }
  5238. case 1:
  5239. {
  5240. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[5]);
  5241. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
  5242. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[33]);
  5243. }
  5244. }
  5245.  
  5246. switch(ProjectTD[Index][ETextDrawSelectable])
  5247. {
  5248. case 0:
  5249. {
  5250. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[28]);
  5251. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  5252. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[28]);
  5253. }
  5254. case 1:
  5255. {
  5256. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[28]);
  5257. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
  5258. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[29]);
  5259. }
  5260. }
  5261.  
  5262. switch(TDE_TextDrawIsProportional(ProjectTD[Index][ETextDrawID]))
  5263. {
  5264. case 0:
  5265. {
  5266. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[30]);
  5267. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[31]);
  5268. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
  5269. }
  5270. case 1:
  5271. {
  5272. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[30]);
  5273. TDE_TextDrawHideForPlayer(ProjectEditor, TDE_Menu[31]);
  5274. TDE_TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
  5275. }
  5276. }
  5277. return 1;
  5278. }
  5279.  
  5280. stock IsVehicle(modelid)
  5281. {
  5282. if(modelid >= 400 && modelid <= 611) return true;
  5283. return false;
  5284. }
  5285.  
  5286.  
  5287. stock SaveProject()
  5288. {
  5289. if(!strlen(ProjectFile)) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Carregue o projeto primeiro.");
  5290.  
  5291. new filePath[128]; format(filePath, sizeof filePath, ""PROJECT_PATH"%s.tde", ProjectFile);
  5292. if(fexist(filePath)) fremove(filePath);
  5293. Handler = fopen(filePath, io_append);
  5294. if(!Handler) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Erro: Não foi possível salvar o projeto.");
  5295.  
  5296. new alignment, usebox, font, proportional;
  5297. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
  5298. {
  5299. if(ProjectTD[i][ItsFromTDE] == 1)
  5300. {
  5301.  
  5302. alignment = TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
  5303. usebox = TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]);
  5304. font = TDE_TextDrawGetFont(ProjectTD[i][ETextDrawID]);
  5305. proportional = TDE_TextDrawIsProportional(ProjectTD[i][ETextDrawID]);
  5306. format(Pro_Str, sizeof(Pro_Str),
  5307. "%f|%f|%f|%f|%f|%f|%i|%i|%i|%i|%i|%i|%i|%i|%i|%i|%i|%s|%d|%f|%f|%f|%f|%d|%d\r\n",
  5308. ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY],
  5309. ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY],
  5310. ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY],
  5311. alignment, ProjectTD[i][ETextDrawColor],
  5312. usebox, ProjectTD[i][ETextDrawBoxColor],
  5313. ProjectTD[i][ETextDrawShadow], ProjectTD[i][ETextDrawOutline],
  5314. ProjectTD[i][ETextDrawBGColor], font,
  5315. proportional, ProjectTD[i][ETextDrawSelectable],
  5316. ProjectTD[i][ETextDrawType], ProjectTD[i][ETextDrawText],
  5317. ProjectTD[i][ETextDrawModelid],
  5318. ProjectTD[i][ETextDrawRotX], ProjectTD[i][ETextDrawRotY], ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom],
  5319. ProjectTD[i][ETextDrawVehCol1], ProjectTD[i][ETextDrawVehCol2]);
  5320. fwrite(Handler, Pro_Str);
  5321. }
  5322. }
  5323. fclose(Handler);
  5324. return true;
  5325. }
  5326.  
  5327. stock LoadProject()
  5328. {
  5329. if(!strlen(ProjectFile)) return SendClientMessage(ProjectEditor, -1, "{e2b960}ETDEditor: {FFFFFF}Erro: não foi possível carregar o projeto.");
  5330.  
  5331. new filePath[128]; format(filePath, sizeof filePath, ""PROJECT_PATH"%s.tde", ProjectFile);
  5332. Handler = fopen(filePath, io_read);
  5333. if(!Handler) return false;
  5334. new i, alignment, usebox, font, proportional;
  5335. while(fread(Handler, Pro_Str))
  5336. {
  5337. StripNewLine(Pro_Str);
  5338. if(!sscanf(Pro_Str, "p<|>ffffffiiiiiiiiiiis[128]dffffdd",
  5339. ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY],
  5340. ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY],
  5341. ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY],
  5342. alignment, ProjectTD[i][ETextDrawColor],
  5343. usebox, ProjectTD[i][ETextDrawBoxColor],
  5344. ProjectTD[i][ETextDrawShadow], ProjectTD[i][ETextDrawOutline],
  5345. ProjectTD[i][ETextDrawBGColor], font,
  5346. proportional, ProjectTD[i][ETextDrawSelectable],
  5347. ProjectTD[i][ETextDrawType], ProjectTD[i][ETextDrawText],
  5348. ProjectTD[i][ETextDrawModelid],
  5349. ProjectTD[i][ETextDrawRotX], ProjectTD[i][ETextDrawRotY], ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom],
  5350. ProjectTD[i][ETextDrawVehCol1], ProjectTD[i][ETextDrawVehCol2]))
  5351. {
  5352. EditIndex = i;
  5353.  
  5354. TDE_TextDrawCreate(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY], ProjectTD[i][ETextDrawText]);
  5355. TDE_TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  5356. TDE_TextDrawAlignment(ProjectTD[i][ETextDrawID], alignment);
  5357. TDE_TextDrawColor(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawColor]);
  5358. TDE_TextDrawUseBox(ProjectTD[i][ETextDrawID], usebox);
  5359. TDE_TextDrawSetShadow(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawShadow]);
  5360. TDE_TextDrawSetOutline(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawOutline]);
  5361. TDE_TextDrawBackgroundColor(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawBGColor]);
  5362. TDE_TextDrawFont(ProjectTD[i][ETextDrawID], font);
  5363. TDE_TextDrawSetProportional(ProjectTD[i][ETextDrawID], proportional);
  5364. if(alignment == 2) TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
  5365. else TDE_TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  5366. TDE_TextDrawBoxColor(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawBoxColor]);
  5367. if(font == 5)
  5368. {
  5369. TDE_TextDrawSetPreviewModel(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawModelid]);
  5370. TDE_TextDrawSetPreviewRot(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawRotX], ProjectTD[i][ETextDrawRotY], ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom]);
  5371. if(IsVehicle(ProjectTD[i][ETextDrawModelid])) TDE_TextDrawSetPreviewVehCol(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawVehCol1], ProjectTD[i][ETextDrawVehCol2]);
  5372. }
  5373. ProjectTD[i][ItsFromTDE] = 1;
  5374. TDE_TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
  5375. i++;
  5376. }
  5377. }
  5378.  
  5379. fclose(Handler);
  5380. PageStart = 0;
  5381. // UpdateIcons(EditIndex);
  5382. return true;
  5383. }
  5384.  
  5385. stock StripNewLine(string[]) //DracoBlue (bugfix idea by Y_Less)
  5386. {
  5387. new len = strlen(string);
  5388. if (string[0]==0) return ;
  5389. if ((string[len - 1] == '\n') || (string[len - 1] == '\r')) {
  5390. string[len - 1] = 0;
  5391. if (string[0]==0) return ;
  5392. if ((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0;
  5393. }
  5394. }
  5395.  
  5396. stock CheckProject(name[])
  5397. {
  5398. if(!fexist(""PROJECT_PATH"tdelist.txt")) return false;
  5399.  
  5400. Handler = fopen(""PROJECT_PATH"tdelist.txt", io_read);
  5401. if(!Handler) return -1;
  5402.  
  5403. while(fread(Handler, Pro_Str))
  5404. {
  5405. if(!strcmp(Pro_Str, name, true, strlen(name)))
  5406. {
  5407. fclose(Handler);
  5408. return true;
  5409. }
  5410. }
  5411. fclose(Handler);
  5412. return false;
  5413. }
  5414.  
  5415. stock AddProject(name[])
  5416. {
  5417. Handler = fopen(""PROJECT_PATH"tdelist.txt", io_append);
  5418. if(!Handler) return false;
  5419.  
  5420. fwrite(Handler, name);
  5421. fwrite(Handler, "\r\n");
  5422. fclose(Handler);
  5423. return true;
  5424. }
  5425.  
  5426. stock CloseProject()
  5427. {
  5428. if(!strlen(ProjectFile)) return false;
  5429.  
  5430. SaveProject();
  5431. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) RemoveTextDrawTDEOnly(i);
  5432.  
  5433. EditIndex = INVALID_INDEX_ID;
  5434. TDE_TextDrawSetString(TD_Status, "EDITMODE_NONE");
  5435. EditMode = EDITMODE_NONE;
  5436. ColorMode = COLORMODE_NONE;
  5437. EmptyString(ProjectFile);
  5438. ShowEditorEx();
  5439. IsPSel = false;
  5440. KillTimer(EditorUpdateTimer);
  5441. EmptyString(ProjectFile);
  5442. return true;
  5443. }
  5444.  
  5445. stock IsValidProjectName(name[])
  5446. {
  5447. Loop(0, strlen(name))
  5448. {
  5449. switch(name[c])
  5450. {
  5451. case 'A' .. 'Z', 'a' .. 'z', '0' .. '9', '-', '_', '(', ')': continue;
  5452. default: return false;
  5453. }
  5454. }
  5455. return true;
  5456. }
  5457.  
  5458. new last_export;
  5459. stock ExportProject()
  5460. {
  5461. if(!strlen(ProjectFile)) return false;
  5462.  
  5463. if(gettime() - last_export < 2) return 1;
  5464. last_export = gettime();
  5465. new ExportFile[128];
  5466. format(ExportFile, sizeof(ExportFile), ""EXPORT_PATH"%s.txt", ProjectFile);
  5467. if(fexist(ExportFile)) fremove(ExportFile);
  5468.  
  5469. new File:ExportIO = fopen(ExportFile, io_append);
  5470. if(!ExportIO) return false;
  5471.  
  5472. new Index, global, player;
  5473. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
  5474. {
  5475. if(ProjectTD[i][ItsFromTDE] == 1)
  5476. {
  5477. if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
  5478. {
  5479. if(ProjectTD[i][ETextDrawType] == 0)
  5480. {
  5481. Index++;
  5482. global++;
  5483. }
  5484. }
  5485. }
  5486. }
  5487.  
  5488. if(Index != 0)
  5489. {
  5490. fwrite(ExportIO, "//Global TextDraws: \r\n\r\n\r\n");
  5491. format(line, sizeof(line), "new Text:TDEditor_PTD[%i];\r\n", Index); fwrite(ExportIO, line);
  5492.  
  5493. Index = 0;
  5494. new alignment, font, proportion;
  5495. fwrite(ExportIO, "\r\n");
  5496. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
  5497. {
  5498. if(ProjectTD[i][ItsFromTDE] == 1)
  5499. {
  5500. if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
  5501. {
  5502. if(ProjectTD[i][ETextDrawType] == 0)
  5503. {
  5504. alignment = TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
  5505. font = TDE_TextDrawGetFont(ProjectTD[i][ETextDrawID]);
  5506. proportion = TDE_TextDrawIsProportional(ProjectTD[i][ETextDrawID]);
  5507. format(line, sizeof(line), "TDEditor_TD[%i] = TextDrawCreate(%f, %f, \"%s\");\r\n", Index, ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY], ProjectTD[i][ETextDrawText]); fwrite(ExportIO, line);
  5508. if(ProjectTD[i][ETextDrawLetterX] != 0.0 || ProjectTD[i][ETextDrawLetterY] != 0.0)
  5509. {
  5510. format(line, sizeof(line), "TextDrawLetterSize(TDEditor_TD[%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  5511. fwrite(ExportIO, line);
  5512. }
  5513. if(ProjectTD[i][ETextDrawTextX] != 0.0 || ProjectTD[i][ETextDrawTextY] != 0.0)
  5514. {
  5515. if(alignment == 2)
  5516. {
  5517. format(line, sizeof(line), "TextDrawTextSize(TDEditor_TD[%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
  5518. fwrite(ExportIO, line);
  5519. }
  5520. else
  5521. {
  5522. format(line, sizeof(line), "TextDrawTextSize(TDEditor_TD[%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  5523. fwrite(ExportIO, line);
  5524. }
  5525. }
  5526. format(line, sizeof(line), "TextDrawAlignment(TDEditor_TD[%i], %d);\r\n", Index, alignment); fwrite(ExportIO, line);
  5527. if(ProjectTD[i][ETextDrawColor] != 0)
  5528. {
  5529. format(line, sizeof(line), "TextDrawColor(TDEditor_TD[%i], %i);\r\n", Index, ProjectTD[i][ETextDrawColor]);
  5530. fwrite(ExportIO, line);
  5531. }
  5532. if(TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]))
  5533. {
  5534. format(line, sizeof(line), "TextDrawUseBox(TDEditor_TD[%i], 1);\r\n", Index); fwrite(ExportIO, line);
  5535. format(line, sizeof(line), "TextDrawBoxColor(TDEditor_TD[%i], %i);\r\n", Index, ProjectTD[i][ETextDrawBoxColor]); fwrite(ExportIO, line);
  5536. }
  5537. format(line, sizeof(line), "TextDrawSetShadow(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawShadow]);
  5538. fwrite(ExportIO, line);
  5539. if(ProjectTD[i][ETextDrawOutline] != 0)
  5540. {
  5541. format(line, sizeof(line), "TextDrawSetOutline(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawOutline]);
  5542. fwrite(ExportIO, line);
  5543. }
  5544. if(ProjectTD[i][ETextDrawBGColor] != 0)
  5545. {
  5546. format(line, sizeof(line), "TextDrawBackgroundColor(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawBGColor]);
  5547. fwrite(ExportIO, line);
  5548. }
  5549. format(line, sizeof(line), "TextDrawFont(TDEditor_TD[%i], %d);\r\n", Index, font); fwrite(ExportIO, line);
  5550. format(line, sizeof(line), "TextDrawSetProportional(TDEditor_TD[%i], %d);\r\n", Index, proportion); fwrite(ExportIO, line);
  5551. if(ProjectTD[i][ETextDrawSelectable])
  5552. {
  5553. format(line, sizeof(line), "TextDrawSetSelectable(TDEditor_TD[%i], true);\r\n", Index);
  5554. fwrite(ExportIO, line);
  5555. }
  5556.  
  5557. if(font == 5)
  5558. {
  5559. format(line, sizeof(line), "TextDrawSetPreviewModel(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawModelid]); fwrite(ExportIO, line);
  5560. format(line, sizeof(line), "TextDrawSetPreviewRot(TDEditor_TD[%i], %f, %f, %f, %f);\r\n", Index, ProjectTD[i][ETextDrawRotX], ProjectTD[i][ETextDrawRotY], ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom]); fwrite(ExportIO, line);
  5561. if(IsVehicle(ProjectTD[i][ETextDrawModelid]))
  5562. {
  5563. format(line, sizeof(line), "TextDrawSetPreviewVehCol(TDEditor_TD[%i], %d, %d);\r\n", Index, ProjectTD[i][ETextDrawVehCol1], ProjectTD[i][ETextDrawVehCol2]); fwrite(ExportIO, line);
  5564. }
  5565. }
  5566. format(line, sizeof(line), "\r\n"); fwrite(ExportIO, line);
  5567. Index ++;
  5568. }
  5569. }
  5570. }
  5571. }
  5572. }
  5573.  
  5574. Index = 0;
  5575.  
  5576. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
  5577. {
  5578. if(ProjectTD[i][ItsFromTDE] == 1)
  5579. {
  5580. if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
  5581. {
  5582. if(ProjectTD[i][ETextDrawType] == 1)
  5583. {
  5584. Index++;
  5585. player++;
  5586. }
  5587. }
  5588. }
  5589. }
  5590.  
  5591. if(Index != 0)
  5592. {
  5593. if(global > 0) fwrite(ExportIO, "\r\n\r\n");
  5594. fwrite(ExportIO, "//Player TextDraws: \r\n\r\n\r\n");
  5595. format(line, sizeof(line), "new PlayerText:TDEditor_PTD[MAX_PLAYERS][%i];\r\n", Index); fwrite(ExportIO, line);
  5596. Index = 0;
  5597. new alignment, font, proportion;
  5598. fwrite(ExportIO, "\r\n");
  5599. for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
  5600. {
  5601. if(ProjectTD[i][ItsFromTDE] == 1)
  5602. {
  5603. if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
  5604. {
  5605. if(ProjectTD[i][ETextDrawType] == 1)
  5606. {
  5607. alignment = TDE_TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
  5608. font = TDE_TextDrawGetFont(ProjectTD[i][ETextDrawID]);
  5609. proportion = TDE_TextDrawIsProportional(ProjectTD[i][ETextDrawID]);
  5610. format(line, sizeof(line), "TDEditor_PTD[playerid][%i] = CreatePlayerTextDraw(playerid, %f, %f, \"%s\");\r\n", Index, ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY], ProjectTD[i][ETextDrawText]); fwrite(ExportIO, line);
  5611. if(ProjectTD[i][ETextDrawLetterX] != 0.0 || ProjectTD[i][ETextDrawLetterY] != 0.0)
  5612. {
  5613. format(line, sizeof(line), "PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
  5614. fwrite(ExportIO, line);
  5615. }
  5616. if(ProjectTD[i][ETextDrawTextX] != 0.0 || ProjectTD[i][ETextDrawTextY] != 0.0)
  5617. {
  5618. if(alignment == 2)
  5619. {
  5620. format(line, sizeof(line), "PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
  5621. fwrite(ExportIO, line);
  5622. }
  5623. else
  5624. {
  5625. format(line, sizeof(line), "PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
  5626. fwrite(ExportIO, line);
  5627. }
  5628. }
  5629. format(line, sizeof(line), "PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, alignment); fwrite(ExportIO, line);
  5630. if(ProjectTD[i][ETextDrawColor] != 0)
  5631. {
  5632. format(line, sizeof(line), "PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][%i], %i);\r\n", Index, ProjectTD[i][ETextDrawColor]);
  5633. fwrite(ExportIO, line);
  5634. }
  5635. if(TDE_TextDrawIsBox(ProjectTD[i][ETextDrawID]))
  5636. {
  5637. format(line, sizeof(line), "PlayerTextDrawUseBox(playerid, TDEditor_PTD[playerid][%i], 1);\r\n", Index); fwrite(ExportIO, line);
  5638. format(line, sizeof(line), "PlayerTextDrawBoxColor(playerid, TDEditor_PTD[playerid][%i], %i);\r\n", Index, ProjectTD[i][ETextDrawBoxColor]); fwrite(ExportIO, line);
  5639. }
  5640. format(line, sizeof(line), "PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawShadow]);
  5641. fwrite(ExportIO, line);
  5642. if(ProjectTD[i][ETextDrawOutline] != 0)
  5643. {
  5644. format(line, sizeof(line), "PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawOutline]);
  5645. fwrite(ExportIO, line);
  5646. }
  5647. if(ProjectTD[i][ETextDrawBGColor] != 0)
  5648. {
  5649. format(line, sizeof(line), "PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawBGColor]);
  5650. fwrite(ExportIO, line);
  5651. }
  5652. format(line, sizeof(line), "PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, font); fwrite(ExportIO, line);
  5653. format(line, sizeof(line), "PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, proportion); fwrite(ExportIO, line);
  5654. if(ProjectTD[i][ETextDrawSelectable])
  5655. {
  5656. format(line, sizeof(line), "PlayerTextDrawSetSelectable(playerid, TDEditor_PTD[playerid][%i], true);\r\n", Index);
  5657. fwrite(ExportIO, line);
  5658. }
  5659.  
  5660. if(font == 5)
  5661. {
  5662. format(line, sizeof(line), "PlayerTextDrawSetPreviewModel(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawModelid]); fwrite(ExportIO, line);
  5663. format(line, sizeof(line), "PlayerTextDrawSetPreviewRot(playerid, TDEditor_PTD[playerid][%i], %f, %f, %f, %f);\r\n", Index, ProjectTD[i][ETextDrawRotX], ProjectTD[i][ETextDrawRotY], ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom]); fwrite(ExportIO, line);
  5664. if(IsVehicle(ProjectTD[i][ETextDrawModelid]))
  5665. {
  5666. format(line, sizeof(line), "PlayerTextDrawSetPreviewVehCol(playerid, TDEditor_PTD[playerid][%i], %d, %d);\r\n", Index, ProjectTD[i][ETextDrawVehCol1], ProjectTD[i][ETextDrawVehCol2]); fwrite(ExportIO, line);
  5667. }
  5668. }
  5669. format(line, sizeof(line), "\r\n"); fwrite(ExportIO, line);
  5670. Index ++;
  5671. }
  5672. }
  5673. }
  5674. }
  5675. }
  5676.  
  5677. new Hour, Minute, Second;
  5678. gettime(Hour, Minute, Second);
  5679. new Year, Month, Day;
  5680. getdate(Year, Month, Day);
  5681.  
  5682. format(line, sizeof(line), "\r\n\r\n\r\n//Número de textdraws exportadas: %d (%d global textdraws / %d player textdraws) ~ %d/%d/%d ~ %d:%d:%d", (global+player), global, player, Day, Month, Year, Hour, Minute, Second); fwrite(ExportIO, line);
  5683. format(line, sizeof(line), "\r\nETDEditor V"ETDE_VERSION" por Desenvolvido por ADRI1 & Traduzido por Blue_White"); fwrite(ExportIO, line);
  5684. fclose(ExportIO);
  5685.  
  5686. new str[128];
  5687. format(str, 128, "{e2b960}ETDEditor: {FFFFFF}Projeto Exportado (%s, %d global textdraws, %d player textdraws).", ExportFile, global, player);
  5688. SendClientMessage(ProjectEditor, -1, str);
  5689. return 1;
  5690. }
  5691.  
  5692. static DelayShowInfoDrawTimer;
  5693. static PlayerText:InfoDraw = PlayerText:-1;
  5694.  
  5695.  
  5696. static CreateInfoDraws()
  5697. {
  5698. InfoDraw = CreatePlayerTextDraw(ProjectEditor, 320.000000, 217.000000, "320.000,_320.000~n~");
  5699. PlayerTextDrawLetterSize(ProjectEditor, InfoDraw, 0.659499, 2.686399);
  5700. PlayerTextDrawAlignment(ProjectEditor, InfoDraw, 2);
  5701. PlayerTextDrawColor(ProjectEditor, InfoDraw, -1);
  5702. PlayerTextDrawSetShadow(ProjectEditor, InfoDraw, 0);
  5703. PlayerTextDrawSetOutline(ProjectEditor, InfoDraw, 2);
  5704. PlayerTextDrawBackgroundColor(ProjectEditor, InfoDraw, 255);
  5705. PlayerTextDrawFont(ProjectEditor, InfoDraw, 2);
  5706. PlayerTextDrawSetProportional(ProjectEditor, InfoDraw, 1);
  5707. PlayerTextDrawSetShadow(ProjectEditor, InfoDraw, 0);
  5708. return 1;
  5709. }
  5710.  
  5711. static DestroyInfoDraws()
  5712. {
  5713. PlayerTextDrawDestroy(ProjectEditor, InfoDraw);
  5714. InfoDraw = PlayerText:-1;
  5715. return 1;
  5716. }
  5717.  
  5718. static ShowInfoDraw(text[], time)
  5719. {
  5720. if(_:InfoDraw == -1) CreateInfoDraws();
  5721. KillTimer(DelayShowInfoDrawTimer);
  5722. PlayerTextDrawDestroy(ProjectEditor, InfoDraw);
  5723. CreateInfoDraws();
  5724. PlayerTextDrawSetString(ProjectEditor, InfoDraw, text);
  5725. PlayerTextDrawShow(ProjectEditor, InfoDraw);
  5726. DelayShowInfoDrawTimer = SetTimer("HideInfoDraw", time, false);
  5727. return 1;
  5728. }
  5729.  
  5730. forward HideInfoDraw();
  5731. public HideInfoDraw()
  5732. {
  5733. DestroyInfoDraws();
  5734. return 1;
  5735. }
  5736.  
  5737. public OnPlayerUpdate(playerid)
  5738. {
  5739. if(ProjectEditor == playerid) opu_check_afk = GetTickCount();
  5740. return 1;
  5741. }
  5742.  
  5743. /*
  5744.  
  5745. ___ __ __
  5746. | | \|_ _|.|_ _ _
  5747. | |__/|__(_|||_(_)|
  5748.  
  5749. TDEditor 1.18 by adri1 & Traduzido por Blue_White
  5750.  
  5751. */
  5752.  
Add Comment
Please, Sign In to add comment