Hallo Scripter,
ich habe gestern gesehen das rocky ein "SetObjectMaterialText Tutorial (Oder Showroom gmemacht hat)" und meine frage ist ob das alles unter
OnDialogResponse muss :
92.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
93.
{
94.
if(dialogid == MainDialog){
95.
if(response){
96.
switch(listitem) {
97.
case 0:{
98.
new string[128], type[30];
99.
if(ObjectType[playerid] == false) type = "Normal Object";
100.
else if(ObjectType[playerid] == true) type = "Player Object";
101.
format(string, sizeof(string),""B"Curret Object Type: "Y"%s\
102.
\n"G"Please, select your Object Type below:",type);
103.
ShowPlayerDialog(playerid,OTypeDialog,DIALOG_STYLE_MSGBOX," "R"Object Type",string,"Normal O.","Player O.");
104.
}
105.
case 1:{
106.
new string[128];
107.
format(string, sizeof(string), ""B"Current Object Model ID: "Y"%d\
108.
\n"G"Please, type below a Model ID for the object (example = 19353):",ObjectID[playerid]);
109.
ShowPlayerDialog(playerid,OModelDialog,DIALOG_STYLE_INPUT," "R"Object Model ID",string,"Change","Back");
110.
}
111.
case 2:{
112.
new string[300];
113.
format(string, sizeof(string),""B"Current Object Text: "Y"%s\
114.
\n"G"Please, type below your text for the object:",Text[playerid]);
115.
ShowPlayerDialog(playerid,TextDialog,DIALOG_STYLE_INPUT," "R"Object Text",string,"Change","Back");
116.
}
117.
case 3: {
118.
new string[128];
119.
format(string, sizeof(string),""B"Current Material Index: "Y"%d\
120.
\n"G"Please, type below the Material Index which you want use (default = 0):",Index[playerid]);
121.
ShowPlayerDialog(playerid,IndexDialog,DIALOG_STYLE_INPUT," "R"Material Index",string,"Change","Back");
122.
}
123.
case 4: {
124.
new sizes[600];
125.
strcat(sizes,""Y"1. "B"32x32 "G"(10)\
126.
\n"Y"2. "B"64x32 "G"(20)\
127.
\n"Y"3. "B"64x64 "G"(30)\
128.
\n"Y"4. "B"128x32 "G"(40)\
129.
\n"Y"5. "B"128x64 "G"(50)\
130.
\n"Y"6. "B"128x128 "G"(60)\
131.
\n"Y"7. "B"256x32 "G"(70)");
132.
strcat(sizes,"\n"Y"8. "B"256x64 "G"(80)\
133.
\n"Y"9. "B"256x128 "G"(90)\
134.
\n"Y"10. "B"256x256 "G"(100)\
135.
\n"Y"11. "B"512x64 "G"(110)\
136.
\n"Y"12. "B"512x128 "G"(120)\
137.
\n"Y"13. "B"512x256 "G"(130)\
138.
\n"Y"14. "B"512x512 "G"(140)");
139.
new current[128];
140.
format(current, sizeof(current),""R"Material Size "G"| "B"Current size: "Y"%d",Size[playerid]);
141.
ShowPlayerDialog(playerid,SizesDialog,DIALOG_STYLE_LIST,current,sizes,"Change","Back");
142.
}
143.
case 5: {
144.
new string[128];
145.
format(string, sizeof(string), ""B"Current Text Font: "Y"%s\
146.
\n"G"Please, type below the Text Font name which you want use:",FontName[playerid]);
147.
ShowPlayerDialog(playerid,FontNDialog,DIALOG_STYLE_INPUT," "R"Text Font",string,"Change","Back");
148.
}
149.
case 6: {
150.
new string[128];
151.
format(string, sizeof(string), ""B"Current Text Size: "Y"%d\
152.
\n"G"Please, type below the Text Size which you want use:",FontSize[playerid]);
153.
ShowPlayerDialog(playerid,FontSDialog,DIALOG_STYLE_INPUT," "R"Text Size",string,"Change","Back");
154.
}
155.
case 7: {
156.
new title[100]; new yesorno[10];
157.
if(UseBold[playerid] == 0) yesorno = "No";
158.
else if(UseBold[playerid] == 1) yesorno = "Yes";
159.
format(title, sizeof(title), ""R"Bold Text "G"| "B"Using Bold Text: "Y"%s",yesorno);
160.
ShowPlayerDialog(playerid,BoldDialog,DIALOG_STYLE_LIST,title,""Y"1. "B"No\n"Y"2. "B"Yes","Change","Back");
161.
}
162.
case 8: {
163.
new titulo[100];
164.
format(titulo, sizeof(titulo),""R"Text Color "G"| "B"Current Text Color: "Y"%i",TextColor[playerid]);
165.
ShowPlayerDialog(playerid,ColorDialog,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Type a ARGB color code\
166.
\n"Y"2. "B"Select a predefinded color","Next","Back");
167.
}
168.
case 9: {
169.
new titulo[100];
170.
format(titulo, sizeof(titulo),""R"Object Background "G"| "B"Current Text Color: "Y"%i",BackgColor[playerid]);
171.
ShowPlayerDialog(playerid,BackgColorD,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Disable Background\n"Y"2. "B"Type a ARGB color code\
172.
\n"Y"3. "B"Select a predefinded color","Next","Back");
173.
}
174.
case 10: {
175.
new title[100]; new position[30];
176.
if(TextAlign[playerid] == 0) position = "Left";
177.
else if(TextAlign[playerid] == 1) position = "Center";
178.
else if(TextAlign[playerid] == 2) position = "Right";
179.
format(title, sizeof(title), ""R"Text Alignment "G"| "B"Current Alignment: "Y"%s",position);
180.
ShowPlayerDialog(playerid,AlignDialog,DIALOG_STYLE_LIST,title,""Y"1. "B"Left\n"Y"2. "B"Center\n"Y"3. "B"Right","Change","Back");
181.
}
182.
case 11: {
183.
EditPlayerObject(playerid, Object[playerid]);
184.
SendClientMessage(playerid,-1,""R"* "B"INFO: "Y"Use "G"ESC "Y"to cancel the object edition.");
185.
}
186.
case 12: {
187.
ShowPlayerDialog(playerid,SaveDialog,DIALOG_STYLE_INPUT," "R"Exporting Lines",
188.
"Please, type a name for the object below (example = MyObject):","Export","Back");
189.
}
190.
case 13: {
191.
CreatingTextO[playerid] = false, DestroyPlayerObject(playerid, Object[playerid]);
192.
TextAlign[playerid] = 1, Text[playerid] = "Example", FontName[playerid] = "Arial",
193.
TextColor[playerid] = HexToInt("0xFFFF8200"), BackgColor[playerid] = HexToInt("0xFF000000"),
194.
Size[playerid] = 50, Index[playerid] = 0, UseBold[playerid] = 0,
195.
FontSize[playerid] = 24, OName[playerid] = "0", ObjectID[playerid] = 19353;
196.
SendClientMessage(playerid,-1,""R"* "B"INFO: "Y"All settings have been reseted.");
197.
}
198.
}
199.
}
200.
return 1;
201.
}
202.
if(dialogid == OTypeDialog)
203.
{
204.
if(response)
205.
{
206.
ObjectType[playerid] = false;
207.
SendClientMessage(playerid,-1,""R"* "B"Object Type: "Y"Normal Object"); ShowMainMenu(playerid);
208.
} else {
209.
ObjectType[playerid] = true;
210.
SendClientMessage(playerid,-1,""R"* "B"Object Type: "Y"Player Object"); ShowMainMenu(playerid);
211.
}
212.
return 1;
213.
}
214.
if(dialogid == OModelDialog)
215.
{
216.
if(response)
217.
{
218.
if(!isNumeric(inputtext)) return SendClientMessage(playerid,-1,""Y"* "R"ERROR: "G"Please, use a numeric value"R"!"), ShowMainMenu(playerid);
219.
new string[128];
220.
ObjectID[playerid] = strval(inputtext);
221.
format(string, sizeof(string), ""R"* "B"Object Model ID: "Y"%d",ObjectID[playerid]);
222.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
223.
} else { ShowMainMenu(playerid); }
224.
return 1;
225.
}
226.
if(dialogid == TextDialog){
227.
if(response){
228.
new string[128];
229.
format(string, sizeof(string),"%s",inputtext);
230.
Text[playerid] = string; format(string, sizeof(string), ""R"* "B"Object Text: "Y"%s",Text[playerid]);
231.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
232.
} else { ShowMainMenu(playerid); }
233.
return 1;
234.
}
235.
if(dialogid == IndexDialog){
236.
if(response){
237.
if(!isNumeric(inputtext)) return SendClientMessage(playerid,-1,""Y"* "R"ERROR: "G"Please, use a numeric value"R"!"), ShowMainMenu(playerid);
238.
new string[100];
239.
Index[playerid] = strval(inputtext);
240.
format(string, sizeof(string),""R"* "B"Object Material Index: "Y"%d",Index[playerid]);
241.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
242.
} else { ShowMainMenu(playerid); }
243.
return 1;
244.
}
245.
if(dialogid == SizesDialog){
246.
if(response)
247.
{
248.
switch(listitem) {
249.
case 0: Size[playerid] = 10;
250.
case 1: Size[playerid] = 20;
251.
case 2: Size[playerid] = 30;
252.
case 3: Size[playerid] = 40;
253.
case 4: Size[playerid] = 50;
254.
case 5: Size[playerid] = 60;
255.
case 6: Size[playerid] = 70;
256.
case 7: Size[playerid] = 80;
257.
case 8: Size[playerid] = 90;
258.
case 9: Size[playerid] = 100;
259.
case 10: Size[playerid] = 110;
260.
case 11: Size[playerid] = 120;
261.
case 12: Size[playerid] = 130;
262.
case 13: Size[playerid] = 140;
263.
default: Size[playerid] = 70;
264.
}
265.
new string[128];
266.
format(string, sizeof(string), ""R"* "B"Object Material Size: "Y"%d",Size[playerid]);
267.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
268.
} else { ShowMainMenu(playerid); }
269.
return 1;
270.
}
271.
if(dialogid == FontNDialog)
272.
{
273.
if(response) {
274.
new string[128]; format(string, sizeof(string),"%s",inputtext); FontName[playerid] = string;
275.
format(string, sizeof(string), ""R"* "B"Text Font: "Y"%s",FontName[playerid]); SendClientMessage(playerid,-1,string);
276.
UpdateObject(playerid), ShowMainMenu(playerid);
277.
} else { ShowMainMenu(playerid); }
278.
return 1;
279.
}
280.
if(dialogid == FontSDialog)
281.
{
282.
if(response) {
283.
if(!isNumeric(inputtext)) return SendClientMessage(playerid,-1,""Y"* "R"ERROR: "G"Please, use a numeric value"R"!"), ShowMainMenu(playerid);
284.
new string[128]; FontSize[playerid] = strval(inputtext);
285.
format(string, sizeof(string), ""R"* "B"Text Size: "Y"%d",FontSize[playerid]); SendClientMessage(playerid,-1,string);
286.
UpdateObject(playerid), ShowMainMenu(playerid);
287.
} else { ShowMainMenu(playerid); }
288.
return 1;
289.
}
290.
if(dialogid == BoldDialog)
291.
{
292.
if(response)
293.
{
294.
switch(listitem)
295.
{
296.
case 0: {
297.
UseBold[playerid] = 0;
298.
SendClientMessage(playerid,-1,""R"* "B"Bold Text: "Y"No");
299.
UpdateObject(playerid), ShowMainMenu(playerid);
300.
}
301.
case 1: {
302.
UseBold[playerid] = 1;
303.
SendClientMessage(playerid,-1,""R"* "B"Bold Text: "Y"Yes");
304.
UpdateObject(playerid), ShowMainMenu(playerid);
305.
}
306.
}
307.
} else { ShowMainMenu(playerid); }
308.
return 1;
309.
}
310.
if(dialogid == ColorDialog)
311.
{
312.
if(response)
313.
{
314.
switch(listitem)
315.
{
316.
case 0: {
317.
ShowPlayerDialog(playerid,ColorDialog2,DIALOG_STYLE_INPUT," "R"Text Color",
318.
""G"Please, type a ARGB color code below (example = 0xFFFF0000):","Change","Back");
319.
}
320.
case 1: {
321.
ShowPlayerDialog(playerid,ColorDialog3,DIALOG_STYLE_LIST,""R"Color List",
322.
"{FF0000}Red\n{04B404}Green\n{00B5CD}Sky-Blue\n{FFFF00}Yellow\
323.
\n{0000FF}Blue\n{848484}Grey\n{FF00FF}Pink\n{FFFFFF}White","Change","Back");
324.
}
325.
}
326.
} else { ShowMainMenu(playerid); }
327.
return 1;
328.
}
329.
if(dialogid == ColorDialog2)
330.
{
331.
if(response) {
332.
new string[80]; TextColor[playerid] = HexToInt(inputtext);
333.
format(string, sizeof(string),""R"* "B"Text Color: "Y"%i", TextColor[playerid]);
334.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
335.
} else {
336.
new titulo[100];
337.
format(titulo, sizeof(titulo),""R"Text Color "G"| "B"Current Text Color: "Y"%i",TextColor[playerid]);
338.
ShowPlayerDialog(playerid,ColorDialog,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Type a ARGB color code\
339.
\n"Y"2. "B"Select a predefinded color","Next","Back");
340.
}
341.
return 1;
342.
}
343.
if(dialogid == ColorDialog3)
344.
{
345.
if(response) {
346.
switch(listitem)
347.
{
348.
case 0: { TextColor[playerid] = HexToInt("0xFFFF0000"); } //Red
349.
case 1: { TextColor[playerid] = HexToInt("0xFF04B404"); }
350.
case 2: { TextColor[playerid] = HexToInt("0xFF00B5CD"); }
351.
case 3: { TextColor[playerid] = HexToInt("0xFFFFFF00"); } //Yellow
352.
case 4: { TextColor[playerid] = HexToInt("0xFF0000FF"); }
353.
case 5: { TextColor[playerid] = HexToInt("0xFF848484"); }
354.
case 6: { TextColor[playerid] = HexToInt("0xFFFF00FF"); }
355.
case 7: { TextColor[playerid] = HexToInt("0xFFFFFFFF"); } //White
356.
}
357.
new string[80]; UpdateObject(playerid);
358.
format(string, sizeof(string),""R"* "B"Text Color: "Y"%i", TextColor[playerid]);
359.
SendClientMessage(playerid,-1,string); ShowMainMenu(playerid);
360.
} else {
361.
new titulo[100];
362.
format(titulo, sizeof(titulo),""R"Text Color "G"| "B"Current Text Color: "Y"%i",TextColor[playerid]);
363.
ShowPlayerDialog(playerid,ColorDialog,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Type a ARGB color code\
364.
\n"Y"2. "B"Select a predefinded color","Next","Back");
365.
}
366.
return 1;
367.
}
368.
if(dialogid == BackgColorD)
369.
{
370.
if(response)
371.
{
372.
switch(listitem)
373.
{
374.
case 0: { BackgColor[playerid] = 0; UpdateObject(playerid); ShowMainMenu(playerid); SendClientMessage(playerid,-1,""R"* "B"Background Color: "Y"Disabled"); }
375.
case 1: {
376.
ShowPlayerDialog(playerid,ColorDialog4,DIALOG_STYLE_INPUT," "R"Background Color",
377.
""G"Please, type a ARGB color code below (example = 0xFFFF0000):","Change","Back");
378.
}
379.
case 2: {
380.
ShowPlayerDialog(playerid,ColorDialog5,DIALOG_STYLE_LIST,""R"Color List",
381.
"{FF0000}Red\n{04B404}Green\n{00B5CD}Sky-Blue\n{FFFF00}Yellow\
382.
\n{0000FF}Blue\n{848484}Grey\n{FF00FF}Pink\n{FFFFFF}White","Change","Back");
383.
}
384.
}
385.
} else { ShowMainMenu(playerid); }
386.
return 1;
387.
}
388.
if(dialogid == ColorDialog4)
389.
{
390.
if(response) {
391.
new string[80]; BackgColor[playerid] = HexToInt(inputtext);
392.
format(string, sizeof(string),""R"* "B"Background Color: "Y"%i", BackgColor[playerid]);
393.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
394.
} else {
395.
new titulo[100];
396.
format(titulo, sizeof(titulo),""R"Object Background "G"| "B"Current Text Color: "Y"%i",BackgColor[playerid]);
397.
ShowPlayerDialog(playerid,BackgColorD,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Disable Background\n"Y"2. "B"Type a ARGB color code\
398.
\n"Y"3. "B"Select a predefinded color","Next","Back");
399.
}
400.
return 1;
401.
}
402.
if(dialogid == ColorDialog5)
403.
{
404.
if(response) {
405.
switch(listitem)
406.
{
407.
case 0: { BackgColor[playerid] = HexToInt("0xFFFF0000"); } //Red
408.
case 1: { BackgColor[playerid] = HexToInt("0xFF04B404"); }
409.
case 2: { BackgColor[playerid] = HexToInt("0xFF00B5CD"); }
410.
case 3: { BackgColor[playerid] = HexToInt("0xFFFFFF00"); } //Yellow
411.
case 4: { BackgColor[playerid] = HexToInt("0xFF0000FF"); }
412.
case 5: { BackgColor[playerid] = HexToInt("0xFF848484"); }
413.
case 6: { BackgColor[playerid] = HexToInt("0xFFFF00FF"); }
414.
case 7: { BackgColor[playerid] = HexToInt("0xFFFFFFFF"); } //White
415.
}
416.
new string[80]; UpdateObject(playerid); ShowMainMenu(playerid);
417.
format(string, sizeof(string),""R"* "B"Background Color: "Y"%i", BackgColor[playerid]);
418.
SendClientMessage(playerid,-1,string);
419.
} else {
420.
new titulo[100];
421.
format(titulo, sizeof(titulo),""R"Object Background "G"| "B"Current Text Color: "Y"%i",BackgColor[playerid]);
422.
ShowPlayerDialog(playerid,BackgColorD,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Disable Background\n"Y"2. "B"Type a ARGB color code\
423.
\n"Y"3. "B"Select a predefinded color","Next","Back");
424.
}
425.
return 1;
426.
}
427.
if(dialogid == AlignDialog)
428.
{
429.
if(response) {
430.
switch(listitem)
431.
{
432.
case 0: {
433.
TextAlign[playerid] = 0; UpdateObject(playerid);
434.
SendClientMessage(playerid,-1,""R"* "B"Text Alignment: "Y"Left"), ShowMainMenu(playerid);
435.
}
436.
case 1: {
437.
TextAlign[playerid] = 1; UpdateObject(playerid);
438.
SendClientMessage(playerid,-1,""R"* "B"Text Alignment: "Y"Center"), ShowMainMenu(playerid);
439.
}
440.
case 2: {
441.
TextAlign[playerid] = 2; UpdateObject(playerid);
442.
SendClientMessage(playerid,-1,""R"* "B"Text Alignment: "Y"Right"), ShowMainMenu(playerid);
443.
}
444.
}
445.
} else { ShowMainMenu(playerid); }
446.
}
447.
if(dialogid == SaveDialog)
448.
{
449.
if(response)
450.
{
451.
if(strlen(inputtext) <= 0) return SendClientMessage(playerid,-1,""Y"* "R"ERROR: "G"Please, type something for the object name"R"!"), ShowMainMenu(playerid);
452.
new string[600], soname[30];
453.
format(soname, sizeof(soname),"%s",inputtext); OName[playerid] = soname;
454.
new Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ;
455.
GetPlayerObjectPos(playerid, Object[playerid], fX, fY, fZ),
456.
GetPlayerObjectRot(playerid, Object[playerid], fRotX, fRotY, fRotZ);
457.
if(!fexist("textobjects.txt"))
458.
{
459.
new File:archivo = fopen("textobjects.txt", io_write);
460.
if(ObjectType[playerid] == false) {
461.
format(string, sizeof(string),"new %s = CreateObject(%d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\
462.
\r\nSetObjectMaterialText(%s, "%s", %d, %d, "%s", %d, %d, %i, %i, %d);",OName[playerid],ObjectID[playerid],
463.
fX, fY, fZ, fRotX, fRotY, fRotZ, OName[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
464.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
465.
fwrite(archivo,string);
466.
fclose(archivo);
467.
} else {
468.
format(string, sizeof(string),"new %s = CreatePlayerObject(playerid, %d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\
469.
\r\nSetPlayerObjectMaterialText(playerid, %s, "%s", %d, %d, "%s", %d, %d, %i, %i, %d);",OName[playerid],ObjectID[playerid],
470.
fX, fY, fZ, fRotX, fRotY, fRotZ, OName[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
471.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
472.
fwrite(archivo,string); fclose(archivo);
473.
}
474.
} else {
475.
new File:archivo = fopen("textobjects.txt", io_append);
476.
if(ObjectType[playerid] == false) {
477.
format(string, sizeof(string),"\r\n\r\nnew %s = CreateObject(%d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\
478.
\r\nSetObjectMaterialText(%s, "%s", %d, %d, "%s", %d, %d, %i, %i, %d);",OName[playerid],ObjectID[playerid],
479.
fX, fY, fZ, fRotX, fRotY, fRotZ, OName[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
480.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
481.
fwrite(archivo,string); fclose(archivo);
482.
} else {
483.
format(string, sizeof(string),"\r\n\r\nnew %s = CreatePlayerObject(playerid, %d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\
484.
\r\nSetPlayerObjectMaterialText(playerid, %s, "%s", %d, %d, "%s", %d, %d, %i, %i, %d);",OName[playerid],ObjectID[playerid],
485.
fX, fY, fZ, fRotX, fRotY, fRotZ, OName[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
486.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
487.
fwrite(archivo,string); fclose(archivo);
488.
}
489.
}
490.
//---
491.
CreatingTextO[playerid] = false, DestroyPlayerObject(playerid, Object[playerid]);
492.
TextAlign[playerid] = 1, Text[playerid] = "Example", FontName[playerid] = "Arial",
493.
TextColor[playerid] = HexToInt("0xFFFF8200"), BackgColor[playerid] = HexToInt("0xFF000000"),
494.
Size[playerid] = 50, Index[playerid] = 0, UseBold[playerid] = 0,
495.
FontSize[playerid] = 24, OName[playerid] = "0", ObjectID[playerid] = 19353;
496.
//---
497.
SendClientMessage(playerid,-1,""R"* "B"INFO: "Y"Script saved, check your "G"textobjects.txt "Y"in "G"scriptfiles"Y".");
498.
SendClientMessage(playerid,-1,""R"* "B"INFO: "Y"All settings have been reseted.");
499.
} else { ShowMainMenu(playerid); }
500.
return 1;
501.
}
502.
return 0;
503.
}
504.
505.
ShowMainMenu(playerid)
506.
{
507.
new string[600];
508.
strcat(string,""Y"1. "B"Set Object Type\n"Y"2. "B"Set Object Model ID\n"Y"3. "B"Set Object Text\
509.
\n"Y"4. "B"Set Material Index\n"Y"5. "B"Set Material Size\n");
510.
strcat(string, ""Y"6. "B"Set Text Font\n"Y"7. "B"Set Text Size\n"Y"8. "B"Set Bold Text\
511.
\n"Y"9. "B"Set Text Color\n"Y"10. "B"Set Background Color\n"Y"11. "B"Set Text Alignment\n"Y"12. "G"Edit Object\
512.
\n"Y"13. "G"Export Lines\n"Y"14. "G"Reset Object");
513.
ShowPlayerDialog(playerid,MainDialog,DIALOG_STYLE_LIST,""R"Text Object | Main Menu",string,"Continue","Exit");
514.
return 1;
515.
}
516.
517.
UpdateObject(playerid)
518.
{
519.
GetPlayerObjectPos(playerid, Object[playerid], Pos[0], Pos[1], Pos[2]);
520.
GetPlayerObjectRot(playerid, Object[playerid], Rot[0], Rot[1], Rot[2]); DestroyPlayerObject(playerid, Object[playerid]);
521.
Object[playerid] = CreatePlayerObject(playerid, ObjectID[playerid], Pos[0], Pos[1], Pos[2], Rot[0], Rot[1], Rot[2]);
522.
523.
SetPlayerObjectMaterialText(playerid, Object[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
524.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
525.
}
526.
527.
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
528.
{
529.
if(objectid == Object[playerid]) {
530.
if(response == EDIT_RESPONSE_FINAL)
531.
{
532.
SendClientMessage(playerid,-1,""R"* "B"Object Edition: "Y"Updated");
533.
DestroyPlayerObject(playerid, Object[playerid]);
534.
Object[playerid] = CreatePlayerObject(playerid, ObjectID[playerid], fX, fY, fZ, fRotX, fRotY, fRotZ);
535.
SetPlayerObjectMaterialText(playerid, Object[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
536.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
537.
ShowMainMenu(playerid);
538.
} else if(response == EDIT_RESPONSE_CANCEL) {
539.
SendClientMessage(playerid,-1,""R"* "B"Object Edition: "Y"No updated"); UpdateObject(playerid), ShowMainMenu(playerid);
540.
}
541.
}
542.
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
93.
{
94.
if(dialogid == MainDialog){
95.
if(response){
96.
switch(listitem) {
97.
case 0:{
98.
new string[128], type[30];
99.
if(ObjectType[playerid] == false) type = "Normal Object";
100.
else if(ObjectType[playerid] == true) type = "Player Object";
101.
format(string, sizeof(string),""B"Curret Object Type: "Y"%s\
102.
\n"G"Please, select your Object Type below:",type);
103.
ShowPlayerDialog(playerid,OTypeDialog,DIALOG_STYLE_MSGBOX," "R"Object Type",string,"Normal O.","Player O.");
104.
}
105.
case 1:{
106.
new string[128];
107.
format(string, sizeof(string), ""B"Current Object Model ID: "Y"%d\
108.
\n"G"Please, type below a Model ID for the object (example = 19353):",ObjectID[playerid]);
109.
ShowPlayerDialog(playerid,OModelDialog,DIALOG_STYLE_INPUT," "R"Object Model ID",string,"Change","Back");
110.
}
111.
case 2:{
112.
new string[300];
113.
format(string, sizeof(string),""B"Current Object Text: "Y"%s\
114.
\n"G"Please, type below your text for the object:",Text[playerid]);
115.
ShowPlayerDialog(playerid,TextDialog,DIALOG_STYLE_INPUT," "R"Object Text",string,"Change","Back");
116.
}
117.
case 3: {
118.
new string[128];
119.
format(string, sizeof(string),""B"Current Material Index: "Y"%d\
120.
\n"G"Please, type below the Material Index which you want use (default = 0):",Index[playerid]);
121.
ShowPlayerDialog(playerid,IndexDialog,DIALOG_STYLE_INPUT," "R"Material Index",string,"Change","Back");
122.
}
123.
case 4: {
124.
new sizes[600];
125.
strcat(sizes,""Y"1. "B"32x32 "G"(10)\
126.
\n"Y"2. "B"64x32 "G"(20)\
127.
\n"Y"3. "B"64x64 "G"(30)\
128.
\n"Y"4. "B"128x32 "G"(40)\
129.
\n"Y"5. "B"128x64 "G"(50)\
130.
\n"Y"6. "B"128x128 "G"(60)\
131.
\n"Y"7. "B"256x32 "G"(70)");
132.
strcat(sizes,"\n"Y"8. "B"256x64 "G"(80)\
133.
\n"Y"9. "B"256x128 "G"(90)\
134.
\n"Y"10. "B"256x256 "G"(100)\
135.
\n"Y"11. "B"512x64 "G"(110)\
136.
\n"Y"12. "B"512x128 "G"(120)\
137.
\n"Y"13. "B"512x256 "G"(130)\
138.
\n"Y"14. "B"512x512 "G"(140)");
139.
new current[128];
140.
format(current, sizeof(current),""R"Material Size "G"| "B"Current size: "Y"%d",Size[playerid]);
141.
ShowPlayerDialog(playerid,SizesDialog,DIALOG_STYLE_LIST,current,sizes,"Change","Back");
142.
}
143.
case 5: {
144.
new string[128];
145.
format(string, sizeof(string), ""B"Current Text Font: "Y"%s\
146.
\n"G"Please, type below the Text Font name which you want use:",FontName[playerid]);
147.
ShowPlayerDialog(playerid,FontNDialog,DIALOG_STYLE_INPUT," "R"Text Font",string,"Change","Back");
148.
}
149.
case 6: {
150.
new string[128];
151.
format(string, sizeof(string), ""B"Current Text Size: "Y"%d\
152.
\n"G"Please, type below the Text Size which you want use:",FontSize[playerid]);
153.
ShowPlayerDialog(playerid,FontSDialog,DIALOG_STYLE_INPUT," "R"Text Size",string,"Change","Back");
154.
}
155.
case 7: {
156.
new title[100]; new yesorno[10];
157.
if(UseBold[playerid] == 0) yesorno = "No";
158.
else if(UseBold[playerid] == 1) yesorno = "Yes";
159.
format(title, sizeof(title), ""R"Bold Text "G"| "B"Using Bold Text: "Y"%s",yesorno);
160.
ShowPlayerDialog(playerid,BoldDialog,DIALOG_STYLE_LIST,title,""Y"1. "B"No\n"Y"2. "B"Yes","Change","Back");
161.
}
162.
case 8: {
163.
new titulo[100];
164.
format(titulo, sizeof(titulo),""R"Text Color "G"| "B"Current Text Color: "Y"%i",TextColor[playerid]);
165.
ShowPlayerDialog(playerid,ColorDialog,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Type a ARGB color code\
166.
\n"Y"2. "B"Select a predefinded color","Next","Back");
167.
}
168.
case 9: {
169.
new titulo[100];
170.
format(titulo, sizeof(titulo),""R"Object Background "G"| "B"Current Text Color: "Y"%i",BackgColor[playerid]);
171.
ShowPlayerDialog(playerid,BackgColorD,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Disable Background\n"Y"2. "B"Type a ARGB color code\
172.
\n"Y"3. "B"Select a predefinded color","Next","Back");
173.
}
174.
case 10: {
175.
new title[100]; new position[30];
176.
if(TextAlign[playerid] == 0) position = "Left";
177.
else if(TextAlign[playerid] == 1) position = "Center";
178.
else if(TextAlign[playerid] == 2) position = "Right";
179.
format(title, sizeof(title), ""R"Text Alignment "G"| "B"Current Alignment: "Y"%s",position);
180.
ShowPlayerDialog(playerid,AlignDialog,DIALOG_STYLE_LIST,title,""Y"1. "B"Left\n"Y"2. "B"Center\n"Y"3. "B"Right","Change","Back");
181.
}
182.
case 11: {
183.
EditPlayerObject(playerid, Object[playerid]);
184.
SendClientMessage(playerid,-1,""R"* "B"INFO: "Y"Use "G"ESC "Y"to cancel the object edition.");
185.
}
186.
case 12: {
187.
ShowPlayerDialog(playerid,SaveDialog,DIALOG_STYLE_INPUT," "R"Exporting Lines",
188.
"Please, type a name for the object below (example = MyObject):","Export","Back");
189.
}
190.
case 13: {
191.
CreatingTextO[playerid] = false, DestroyPlayerObject(playerid, Object[playerid]);
192.
TextAlign[playerid] = 1, Text[playerid] = "Example", FontName[playerid] = "Arial",
193.
TextColor[playerid] = HexToInt("0xFFFF8200"), BackgColor[playerid] = HexToInt("0xFF000000"),
194.
Size[playerid] = 50, Index[playerid] = 0, UseBold[playerid] = 0,
195.
FontSize[playerid] = 24, OName[playerid] = "0", ObjectID[playerid] = 19353;
196.
SendClientMessage(playerid,-1,""R"* "B"INFO: "Y"All settings have been reseted.");
197.
}
198.
}
199.
}
200.
return 1;
201.
}
202.
if(dialogid == OTypeDialog)
203.
{
204.
if(response)
205.
{
206.
ObjectType[playerid] = false;
207.
SendClientMessage(playerid,-1,""R"* "B"Object Type: "Y"Normal Object"); ShowMainMenu(playerid);
208.
} else {
209.
ObjectType[playerid] = true;
210.
SendClientMessage(playerid,-1,""R"* "B"Object Type: "Y"Player Object"); ShowMainMenu(playerid);
211.
}
212.
return 1;
213.
}
214.
if(dialogid == OModelDialog)
215.
{
216.
if(response)
217.
{
218.
if(!isNumeric(inputtext)) return SendClientMessage(playerid,-1,""Y"* "R"ERROR: "G"Please, use a numeric value"R"!"), ShowMainMenu(playerid);
219.
new string[128];
220.
ObjectID[playerid] = strval(inputtext);
221.
format(string, sizeof(string), ""R"* "B"Object Model ID: "Y"%d",ObjectID[playerid]);
222.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
223.
} else { ShowMainMenu(playerid); }
224.
return 1;
225.
}
226.
if(dialogid == TextDialog){
227.
if(response){
228.
new string[128];
229.
format(string, sizeof(string),"%s",inputtext);
230.
Text[playerid] = string; format(string, sizeof(string), ""R"* "B"Object Text: "Y"%s",Text[playerid]);
231.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
232.
} else { ShowMainMenu(playerid); }
233.
return 1;
234.
}
235.
if(dialogid == IndexDialog){
236.
if(response){
237.
if(!isNumeric(inputtext)) return SendClientMessage(playerid,-1,""Y"* "R"ERROR: "G"Please, use a numeric value"R"!"), ShowMainMenu(playerid);
238.
new string[100];
239.
Index[playerid] = strval(inputtext);
240.
format(string, sizeof(string),""R"* "B"Object Material Index: "Y"%d",Index[playerid]);
241.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
242.
} else { ShowMainMenu(playerid); }
243.
return 1;
244.
}
245.
if(dialogid == SizesDialog){
246.
if(response)
247.
{
248.
switch(listitem) {
249.
case 0: Size[playerid] = 10;
250.
case 1: Size[playerid] = 20;
251.
case 2: Size[playerid] = 30;
252.
case 3: Size[playerid] = 40;
253.
case 4: Size[playerid] = 50;
254.
case 5: Size[playerid] = 60;
255.
case 6: Size[playerid] = 70;
256.
case 7: Size[playerid] = 80;
257.
case 8: Size[playerid] = 90;
258.
case 9: Size[playerid] = 100;
259.
case 10: Size[playerid] = 110;
260.
case 11: Size[playerid] = 120;
261.
case 12: Size[playerid] = 130;
262.
case 13: Size[playerid] = 140;
263.
default: Size[playerid] = 70;
264.
}
265.
new string[128];
266.
format(string, sizeof(string), ""R"* "B"Object Material Size: "Y"%d",Size[playerid]);
267.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
268.
} else { ShowMainMenu(playerid); }
269.
return 1;
270.
}
271.
if(dialogid == FontNDialog)
272.
{
273.
if(response) {
274.
new string[128]; format(string, sizeof(string),"%s",inputtext); FontName[playerid] = string;
275.
format(string, sizeof(string), ""R"* "B"Text Font: "Y"%s",FontName[playerid]); SendClientMessage(playerid,-1,string);
276.
UpdateObject(playerid), ShowMainMenu(playerid);
277.
} else { ShowMainMenu(playerid); }
278.
return 1;
279.
}
280.
if(dialogid == FontSDialog)
281.
{
282.
if(response) {
283.
if(!isNumeric(inputtext)) return SendClientMessage(playerid,-1,""Y"* "R"ERROR: "G"Please, use a numeric value"R"!"), ShowMainMenu(playerid);
284.
new string[128]; FontSize[playerid] = strval(inputtext);
285.
format(string, sizeof(string), ""R"* "B"Text Size: "Y"%d",FontSize[playerid]); SendClientMessage(playerid,-1,string);
286.
UpdateObject(playerid), ShowMainMenu(playerid);
287.
} else { ShowMainMenu(playerid); }
288.
return 1;
289.
}
290.
if(dialogid == BoldDialog)
291.
{
292.
if(response)
293.
{
294.
switch(listitem)
295.
{
296.
case 0: {
297.
UseBold[playerid] = 0;
298.
SendClientMessage(playerid,-1,""R"* "B"Bold Text: "Y"No");
299.
UpdateObject(playerid), ShowMainMenu(playerid);
300.
}
301.
case 1: {
302.
UseBold[playerid] = 1;
303.
SendClientMessage(playerid,-1,""R"* "B"Bold Text: "Y"Yes");
304.
UpdateObject(playerid), ShowMainMenu(playerid);
305.
}
306.
}
307.
} else { ShowMainMenu(playerid); }
308.
return 1;
309.
}
310.
if(dialogid == ColorDialog)
311.
{
312.
if(response)
313.
{
314.
switch(listitem)
315.
{
316.
case 0: {
317.
ShowPlayerDialog(playerid,ColorDialog2,DIALOG_STYLE_INPUT," "R"Text Color",
318.
""G"Please, type a ARGB color code below (example = 0xFFFF0000):","Change","Back");
319.
}
320.
case 1: {
321.
ShowPlayerDialog(playerid,ColorDialog3,DIALOG_STYLE_LIST,""R"Color List",
322.
"{FF0000}Red\n{04B404}Green\n{00B5CD}Sky-Blue\n{FFFF00}Yellow\
323.
\n{0000FF}Blue\n{848484}Grey\n{FF00FF}Pink\n{FFFFFF}White","Change","Back");
324.
}
325.
}
326.
} else { ShowMainMenu(playerid); }
327.
return 1;
328.
}
329.
if(dialogid == ColorDialog2)
330.
{
331.
if(response) {
332.
new string[80]; TextColor[playerid] = HexToInt(inputtext);
333.
format(string, sizeof(string),""R"* "B"Text Color: "Y"%i", TextColor[playerid]);
334.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
335.
} else {
336.
new titulo[100];
337.
format(titulo, sizeof(titulo),""R"Text Color "G"| "B"Current Text Color: "Y"%i",TextColor[playerid]);
338.
ShowPlayerDialog(playerid,ColorDialog,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Type a ARGB color code\
339.
\n"Y"2. "B"Select a predefinded color","Next","Back");
340.
}
341.
return 1;
342.
}
343.
if(dialogid == ColorDialog3)
344.
{
345.
if(response) {
346.
switch(listitem)
347.
{
348.
case 0: { TextColor[playerid] = HexToInt("0xFFFF0000"); } //Red
349.
case 1: { TextColor[playerid] = HexToInt("0xFF04B404"); }
350.
case 2: { TextColor[playerid] = HexToInt("0xFF00B5CD"); }
351.
case 3: { TextColor[playerid] = HexToInt("0xFFFFFF00"); } //Yellow
352.
case 4: { TextColor[playerid] = HexToInt("0xFF0000FF"); }
353.
case 5: { TextColor[playerid] = HexToInt("0xFF848484"); }
354.
case 6: { TextColor[playerid] = HexToInt("0xFFFF00FF"); }
355.
case 7: { TextColor[playerid] = HexToInt("0xFFFFFFFF"); } //White
356.
}
357.
new string[80]; UpdateObject(playerid);
358.
format(string, sizeof(string),""R"* "B"Text Color: "Y"%i", TextColor[playerid]);
359.
SendClientMessage(playerid,-1,string); ShowMainMenu(playerid);
360.
} else {
361.
new titulo[100];
362.
format(titulo, sizeof(titulo),""R"Text Color "G"| "B"Current Text Color: "Y"%i",TextColor[playerid]);
363.
ShowPlayerDialog(playerid,ColorDialog,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Type a ARGB color code\
364.
\n"Y"2. "B"Select a predefinded color","Next","Back");
365.
}
366.
return 1;
367.
}
368.
if(dialogid == BackgColorD)
369.
{
370.
if(response)
371.
{
372.
switch(listitem)
373.
{
374.
case 0: { BackgColor[playerid] = 0; UpdateObject(playerid); ShowMainMenu(playerid); SendClientMessage(playerid,-1,""R"* "B"Background Color: "Y"Disabled"); }
375.
case 1: {
376.
ShowPlayerDialog(playerid,ColorDialog4,DIALOG_STYLE_INPUT," "R"Background Color",
377.
""G"Please, type a ARGB color code below (example = 0xFFFF0000):","Change","Back");
378.
}
379.
case 2: {
380.
ShowPlayerDialog(playerid,ColorDialog5,DIALOG_STYLE_LIST,""R"Color List",
381.
"{FF0000}Red\n{04B404}Green\n{00B5CD}Sky-Blue\n{FFFF00}Yellow\
382.
\n{0000FF}Blue\n{848484}Grey\n{FF00FF}Pink\n{FFFFFF}White","Change","Back");
383.
}
384.
}
385.
} else { ShowMainMenu(playerid); }
386.
return 1;
387.
}
388.
if(dialogid == ColorDialog4)
389.
{
390.
if(response) {
391.
new string[80]; BackgColor[playerid] = HexToInt(inputtext);
392.
format(string, sizeof(string),""R"* "B"Background Color: "Y"%i", BackgColor[playerid]);
393.
SendClientMessage(playerid,-1,string); UpdateObject(playerid), ShowMainMenu(playerid);
394.
} else {
395.
new titulo[100];
396.
format(titulo, sizeof(titulo),""R"Object Background "G"| "B"Current Text Color: "Y"%i",BackgColor[playerid]);
397.
ShowPlayerDialog(playerid,BackgColorD,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Disable Background\n"Y"2. "B"Type a ARGB color code\
398.
\n"Y"3. "B"Select a predefinded color","Next","Back");
399.
}
400.
return 1;
401.
}
402.
if(dialogid == ColorDialog5)
403.
{
404.
if(response) {
405.
switch(listitem)
406.
{
407.
case 0: { BackgColor[playerid] = HexToInt("0xFFFF0000"); } //Red
408.
case 1: { BackgColor[playerid] = HexToInt("0xFF04B404"); }
409.
case 2: { BackgColor[playerid] = HexToInt("0xFF00B5CD"); }
410.
case 3: { BackgColor[playerid] = HexToInt("0xFFFFFF00"); } //Yellow
411.
case 4: { BackgColor[playerid] = HexToInt("0xFF0000FF"); }
412.
case 5: { BackgColor[playerid] = HexToInt("0xFF848484"); }
413.
case 6: { BackgColor[playerid] = HexToInt("0xFFFF00FF"); }
414.
case 7: { BackgColor[playerid] = HexToInt("0xFFFFFFFF"); } //White
415.
}
416.
new string[80]; UpdateObject(playerid); ShowMainMenu(playerid);
417.
format(string, sizeof(string),""R"* "B"Background Color: "Y"%i", BackgColor[playerid]);
418.
SendClientMessage(playerid,-1,string);
419.
} else {
420.
new titulo[100];
421.
format(titulo, sizeof(titulo),""R"Object Background "G"| "B"Current Text Color: "Y"%i",BackgColor[playerid]);
422.
ShowPlayerDialog(playerid,BackgColorD,DIALOG_STYLE_LIST,titulo,""Y"1. "B"Disable Background\n"Y"2. "B"Type a ARGB color code\
423.
\n"Y"3. "B"Select a predefinded color","Next","Back");
424.
}
425.
return 1;
426.
}
427.
if(dialogid == AlignDialog)
428.
{
429.
if(response) {
430.
switch(listitem)
431.
{
432.
case 0: {
433.
TextAlign[playerid] = 0; UpdateObject(playerid);
434.
SendClientMessage(playerid,-1,""R"* "B"Text Alignment: "Y"Left"), ShowMainMenu(playerid);
435.
}
436.
case 1: {
437.
TextAlign[playerid] = 1; UpdateObject(playerid);
438.
SendClientMessage(playerid,-1,""R"* "B"Text Alignment: "Y"Center"), ShowMainMenu(playerid);
439.
}
440.
case 2: {
441.
TextAlign[playerid] = 2; UpdateObject(playerid);
442.
SendClientMessage(playerid,-1,""R"* "B"Text Alignment: "Y"Right"), ShowMainMenu(playerid);
443.
}
444.
}
445.
} else { ShowMainMenu(playerid); }
446.
}
447.
if(dialogid == SaveDialog)
448.
{
449.
if(response)
450.
{
451.
if(strlen(inputtext) <= 0) return SendClientMessage(playerid,-1,""Y"* "R"ERROR: "G"Please, type something for the object name"R"!"), ShowMainMenu(playerid);
452.
new string[600], soname[30];
453.
format(soname, sizeof(soname),"%s",inputtext); OName[playerid] = soname;
454.
new Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ;
455.
GetPlayerObjectPos(playerid, Object[playerid], fX, fY, fZ),
456.
GetPlayerObjectRot(playerid, Object[playerid], fRotX, fRotY, fRotZ);
457.
if(!fexist("textobjects.txt"))
458.
{
459.
new File:archivo = fopen("textobjects.txt", io_write);
460.
if(ObjectType[playerid] == false) {
461.
format(string, sizeof(string),"new %s = CreateObject(%d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\
462.
\r\nSetObjectMaterialText(%s, "%s", %d, %d, "%s", %d, %d, %i, %i, %d);",OName[playerid],ObjectID[playerid],
463.
fX, fY, fZ, fRotX, fRotY, fRotZ, OName[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
464.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
465.
fwrite(archivo,string);
466.
fclose(archivo);
467.
} else {
468.
format(string, sizeof(string),"new %s = CreatePlayerObject(playerid, %d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\
469.
\r\nSetPlayerObjectMaterialText(playerid, %s, "%s", %d, %d, "%s", %d, %d, %i, %i, %d);",OName[playerid],ObjectID[playerid],
470.
fX, fY, fZ, fRotX, fRotY, fRotZ, OName[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
471.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
472.
fwrite(archivo,string); fclose(archivo);
473.
}
474.
} else {
475.
new File:archivo = fopen("textobjects.txt", io_append);
476.
if(ObjectType[playerid] == false) {
477.
format(string, sizeof(string),"\r\n\r\nnew %s = CreateObject(%d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\
478.
\r\nSetObjectMaterialText(%s, "%s", %d, %d, "%s", %d, %d, %i, %i, %d);",OName[playerid],ObjectID[playerid],
479.
fX, fY, fZ, fRotX, fRotY, fRotZ, OName[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
480.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
481.
fwrite(archivo,string); fclose(archivo);
482.
} else {
483.
format(string, sizeof(string),"\r\n\r\nnew %s = CreatePlayerObject(playerid, %d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\
484.
\r\nSetPlayerObjectMaterialText(playerid, %s, "%s", %d, %d, "%s", %d, %d, %i, %i, %d);",OName[playerid],ObjectID[playerid],
485.
fX, fY, fZ, fRotX, fRotY, fRotZ, OName[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
486.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
487.
fwrite(archivo,string); fclose(archivo);
488.
}
489.
}
490.
//---
491.
CreatingTextO[playerid] = false, DestroyPlayerObject(playerid, Object[playerid]);
492.
TextAlign[playerid] = 1, Text[playerid] = "Example", FontName[playerid] = "Arial",
493.
TextColor[playerid] = HexToInt("0xFFFF8200"), BackgColor[playerid] = HexToInt("0xFF000000"),
494.
Size[playerid] = 50, Index[playerid] = 0, UseBold[playerid] = 0,
495.
FontSize[playerid] = 24, OName[playerid] = "0", ObjectID[playerid] = 19353;
496.
//---
497.
SendClientMessage(playerid,-1,""R"* "B"INFO: "Y"Script saved, check your "G"textobjects.txt "Y"in "G"scriptfiles"Y".");
498.
SendClientMessage(playerid,-1,""R"* "B"INFO: "Y"All settings have been reseted.");
499.
} else { ShowMainMenu(playerid); }
500.
return 1;
501.
}
502.
return 0;
503.
}
504.
505.
ShowMainMenu(playerid)
506.
{
507.
new string[600];
508.
strcat(string,""Y"1. "B"Set Object Type\n"Y"2. "B"Set Object Model ID\n"Y"3. "B"Set Object Text\
509.
\n"Y"4. "B"Set Material Index\n"Y"5. "B"Set Material Size\n");
510.
strcat(string, ""Y"6. "B"Set Text Font\n"Y"7. "B"Set Text Size\n"Y"8. "B"Set Bold Text\
511.
\n"Y"9. "B"Set Text Color\n"Y"10. "B"Set Background Color\n"Y"11. "B"Set Text Alignment\n"Y"12. "G"Edit Object\
512.
\n"Y"13. "G"Export Lines\n"Y"14. "G"Reset Object");
513.
ShowPlayerDialog(playerid,MainDialog,DIALOG_STYLE_LIST,""R"Text Object | Main Menu",string,"Continue","Exit");
514.
return 1;
515.
}
516.
517.
UpdateObject(playerid)
518.
{
519.
GetPlayerObjectPos(playerid, Object[playerid], Pos[0], Pos[1], Pos[2]);
520.
GetPlayerObjectRot(playerid, Object[playerid], Rot[0], Rot[1], Rot[2]); DestroyPlayerObject(playerid, Object[playerid]);
521.
Object[playerid] = CreatePlayerObject(playerid, ObjectID[playerid], Pos[0], Pos[1], Pos[2], Rot[0], Rot[1], Rot[2]);
522.
523.
SetPlayerObjectMaterialText(playerid, Object[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
524.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
525.
}
526.
527.
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
528.
{
529.
if(objectid == Object[playerid]) {
530.
if(response == EDIT_RESPONSE_FINAL)
531.
{
532.
SendClientMessage(playerid,-1,""R"* "B"Object Edition: "Y"Updated");
533.
DestroyPlayerObject(playerid, Object[playerid]);
534.
Object[playerid] = CreatePlayerObject(playerid, ObjectID[playerid], fX, fY, fZ, fRotX, fRotY, fRotZ);
535.
SetPlayerObjectMaterialText(playerid, Object[playerid], Text[playerid], Index[playerid], Size[playerid], FontName[playerid],
536.
FontSize[playerid], UseBold[playerid], TextColor[playerid], BackgColor[playerid], TextAlign[playerid]);
537.
ShowMainMenu(playerid);
538.
} else if(response == EDIT_RESPONSE_CANCEL) {
539.
SendClientMessage(playerid,-1,""R"* "B"Object Edition: "Y"No updated"); UpdateObject(playerid), ShowMainMenu(playerid);
540.
}
541.
}
542.
}
PS: Wäre nett wenn was wo anders hingehört das dann so postet Danke ist ein bissl viel aber bitte um hilfe