ProToTN

ScriptEditor_Client

Jun 21st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.35 KB | None | 0 0
  1. rootElement = getRootElement()
  2. client = getLocalPlayer()
  3.  
  4. editor_main = guiCreateWindow(0.2295,0.1263,0.5967,0.5781,"In-game script editor author: Castillo",true)
  5. guiWindowSetSizable(editor_main,false)
  6. guiSetProperty(editor_main,"CaptionColour","FFFF0000")
  7. guiSetVisible(editor_main,false)
  8. guiCreateLabel(0.0229,0.0608,0.4501,0.0811,"Script Path:",true,editor_main)
  9. script_path_edit = guiCreateEdit(0.0196,0.1104,0.5712,0.0631,"",true,editor_main)
  10. script_memo = guiCreateMemo(0.0164,0.2658,0.964,0.536,"",true,editor_main)
  11. guiSetProperty(script_memo,"ActiveSelectionColour","FFFF0000")
  12. guiCreateStaticImage(0.0164,0.8243,0.9689,0.0405,"images/red_dot.png",true,editor_main)
  13. load_script_button = guiCreateButton(0.6105,0.1171,0.1849,0.0541,"Load Script",true,editor_main)
  14. save_script_button = guiCreateButton(0.0147,0.8964,0.2782,0.0766,"Save Script",true,editor_main)
  15. browse_script_button = guiCreateButton(0.8052,0.1149,0.1588,0.0586,"Browse",true,editor_main)
  16. reload_script_button = guiCreateButton(0.3077,0.8964,0.2782,0.0766,"Reload Script",true,editor_main)
  17. goto_line_button = guiCreateButton(0.6007,0.8964,0.2782,0.0766,"Goto line",true,editor_main)
  18. create_resource_button = guiCreateButton(0.7807,0.1937,0.1849,0.0541,"Create resource",true,editor_main)
  19. close_editor_button = guiCreateButton(0.946,0.045,0.0393,0.0473,"X",true,editor_main)
  20. script_editor_info_label = guiCreateLabel(0.0262,0.1937,0.5663,0.0631,"",true,editor_main)
  21.  
  22. goto_line_window = guiCreateWindow(0.415,0.276,0.1582,0.1706,"Goto line",true)
  23. guiSetProperty(goto_line_window,"CaptionColour","FFFF0000")
  24. guiWindowSetSizable(goto_line_window,false)
  25. guiSetVisible(goto_line_window,false)
  26. goto_line_edit = guiCreateEdit(0.1049,0.3588,0.7901,0.2137,"",true,goto_line_window)
  27. guiLabelSetColor(guiCreateLabel(20,23,232,27,"Insert line number",false,goto_line_window),0,255,0)
  28. go_line_button = guiCreateButton(0.0617,0.6565,0.2346,0.2443,"Go",true,goto_line_window)
  29. cancel_line_button = guiCreateButton(0.3272,0.6565,0.6049,0.2443,"Cancel",true,goto_line_window)
  30.  
  31. script_browser_window = guiCreateWindow(0.2666,0.1693,0.5195,0.4609,"Script browser",true)
  32. guiSetProperty(script_browser_window,"CaptionColour","FFFF0000")
  33. guiSetAlpha(script_browser_window,0.8)
  34. guiSetVisible(script_browser_window,false)
  35. guiWindowSetSizable(script_browser_window,false)
  36. script_browser_grid_resources = guiCreateGridList(0.0244,0.161,0.3083,0.8107,true,script_browser_window)
  37. guiGridListAddColumn(script_browser_grid_resources,"Resources",0.8)
  38. guiCreateLabel(0.0508,0.0876,0.2575,0.065,"Resources",true,script_browser_window)
  39. script_browser_grid_content = guiCreateGridList(0.3872,0.1638,0.3083,0.8079,true,script_browser_window)
  40. guiGridListAddColumn(script_browser_grid_content,"Scripts",0.8)
  41. guiCreateLabel(0.4154,0.0904,0.2726,0.0593,"Content",true,script_browser_window)
  42. script_browser_load_script = guiCreateButton(0.7218,0.1695,0.25,0.0734,"Load Script",true,script_browser_window)
  43. script_browser_close = guiCreateButton(0.7237,0.274,0.25,0.0734,"Close",true,script_browser_window)
  44.  
  45. resource_creator_window = guiCreateWindow(0.2353,0.129,0.5918,0.5104,"Resource creator",true)
  46. guiSetProperty(resource_creator_window,"CaptionColour","FFFF0000")
  47. guiWindowSetSizable(resource_creator_window,false)
  48. guiSetVisible(resource_creator_window,false)
  49. guiLabelSetColor(guiCreateLabel(0.0293,0.0663,0.447,0.074,"Resource name:",true,resource_creator_window),255,0,0)
  50. resource_name_edit = guiCreateEdit(0.1733,0.0587,0.5363,0.0689,"MyResource",true,resource_creator_window)
  51. guiLabelSetColor(guiCreateLabel(0.0293,0.2602,0.4898,0.0714,"meta.xml:",true,resource_creator_window),0,255,0)
  52. guiCreateLabel(0.0271,0.3393,0.2889,0.0612,"Name:",true,resource_creator_window)
  53. meta_name_edit = guiCreateEdit(0.0974,0.3291,0.467,0.0714,"None",true,resource_creator_window)
  54. guiCreateLabel(0.0226,0.4464,0.3499,0.0663,"Author:",true,resource_creator_window)
  55. meta_author_edit = guiCreateEdit(0.099,0.4388,0.467,0.0714,tostring(getPlayerName(client)),true,resource_creator_window)
  56. guiCreateLabel(0.0226,0.5663,0.2754,0.0561,"Description:",true,resource_creator_window)
  57. meta_description_edit = guiCreateEdit(0.132,0.5536,0.4323,0.0714,"None",true,resource_creator_window)
  58. guiCreateLabel(0.0181,0.6735,0.395,0.0587,"Version:",true,resource_creator_window)
  59. meta_version_edit = guiCreateEdit(0.0974,0.6633,0.467,0.0714,"1.0",true,resource_creator_window)
  60. guiCreateLabel(0.0226,0.7755,0.3679,0.0638,"Type:",true,resource_creator_window)
  61. meta_type_edit = guiCreateEdit(0.0792,0.7653,0.4884,0.0714,"script",true,resource_creator_window)
  62. guiLabelSetColor(guiCreateLabel(0.6403,0.2653,0.302,0.074,"Create client & server scripts",true,resource_creator_window),255,255,0)
  63. guiCreateLabel(0.5842,0.4388,0.368,0.0714,"Client script name:",true,resource_creator_window)
  64. meta_client_edit = guiCreateEdit(0.5858,0.523,0.3828,0.0842,"",true,resource_creator_window)
  65. guiCreateLabel(0.5858,0.648,0.368,0.0714,"Server script name:",true,resource_creator_window)
  66. meta_server_edit = guiCreateEdit(0.5891,0.727,0.3828,0.0842,"",true,resource_creator_window)
  67. create_resource = guiCreateButton(0.0347,0.8903,0.1865,0.074,"Create",true,resource_creator_window)
  68. cancel_create_resource = guiCreateButton(0.2525,0.8903,0.1865,0.074,"Cancel",true,resource_creator_window)
  69.  
  70. function visible_editor()
  71. if guiGetVisible(editor_main) == true then
  72. guiSetVisible(editor_main,false)
  73. showCursor(false)
  74. guiSetInputEnabled(false)
  75. else
  76. guiSetVisible(editor_main,true)
  77. showCursor(true)
  78. guiSetInputEnabled(true)
  79.   end
  80. end
  81. addEvent("show_editor",true)
  82. addEventHandler("show_editor",rootElement,visible_editor)
  83.  
  84. function explode(div,str)
  85.   if (div=='') then return false end
  86.   local pos,arr = 0,{}
  87.   for st,sp in function() return string.find(str,div,pos,true) end do
  88.     table.insert(arr,string.sub(str,pos,st-1))
  89.     pos = sp + 1
  90.   end
  91.   table.insert(arr,string.sub(str,pos))
  92.   return arr
  93. end
  94.  
  95. function getLineIndex(mystring, targetLine)
  96.   local exp = explode("\n", mystring)
  97.   local index=0
  98.   for i=1, targetLine-1 do
  99.     index = index + exp[i]:len()
  100.   end
  101.   return index
  102. end
  103.  
  104. function onGUIClick()
  105. if (source == close_editor_button) then
  106. guiSetVisible(editor_main,false)
  107. showCursor(false)
  108. guiSetInputEnabled(false)
  109. elseif (source == load_script_button) then
  110. triggerServerEvent("open_script",client,client,guiGetText(script_path_edit))
  111. elseif (source == save_script_button) then
  112. triggerServerEvent("save_script",client,client,guiGetText(script_path_edit),guiGetText(script_memo))
  113. elseif (source == reload_script_button) then
  114. triggerServerEvent("reload_script",client,client,guiGetText(script_path_edit))
  115. elseif (source == goto_line_button) then
  116. guiSetVisible(goto_line_window,true)
  117. guiBringToFront(goto_line_window,true)
  118. elseif (source == go_line_button) then
  119. guiMemoSetCaretIndex(script_memo, getLineIndex(guiGetText(script_memo), guiGetText(goto_line_edit)))
  120. guiSetVisible(goto_line_window,false)
  121. elseif (source == cancel_line_button) then
  122. guiSetVisible(goto_line_window,false)
  123. guiBringToFront(editor_main,true)
  124. elseif (source == browse_script_button) then
  125. guiSetVisible(script_browser_window,true)
  126. guiBringToFront(script_browser_window,true)
  127. triggerServerEvent("get_resources",client,client)
  128. elseif (source == script_browser_grid_resources) then
  129. selected = guiGridListGetSelectedItem ( script_browser_grid_resources )
  130. if ( selected ) then
  131. guiGridListClear(script_browser_grid_content)
  132. end
  133. resName = guiGridListGetItemText ( script_browser_grid_resources, guiGridListGetSelectedItem ( script_browser_grid_resources ), 1 )
  134. triggerServerEvent("get_content",client,client,resName)
  135. elseif (source == script_browser_close) then
  136. guiSetVisible(script_browser_window,false)
  137. guiBringToFront(editor_main,true)
  138. guiGridListClear(script_browser_grid_resources)
  139. guiGridListClear(script_browser_grid_content)
  140. elseif (source == script_browser_load_script) then
  141. selected = guiGridListGetSelectedItem ( script_browser_grid_content )
  142. if ( selected ) then
  143. scriptName_1 = guiGridListGetItemText ( script_browser_grid_content, guiGridListGetSelectedItem ( script_browser_grid_content ), 1 )
  144. resName_1 = guiGridListGetItemText ( script_browser_grid_resources, guiGridListGetSelectedItem ( script_browser_grid_resources ), 1 )
  145. scriptName_2 = tostring(scriptName_1)
  146. resName_2 = tostring(resName_1)
  147. if #scriptName_2 >= 1 and #resName_2 >= 1 then
  148. triggerServerEvent("open_script_browser",client,client,resName_2,scriptName_2)
  149. guiGridListClear(script_browser_grid_resources)
  150. guiGridListClear(script_browser_grid_content)
  151. guiSetVisible(script_browser_window,false)
  152. guiSetText(script_path_edit,resName_2.."/"..scriptName_2)
  153. else outputChatBox("Something got wrong, select a resource and a script to load!",255,0,0)
  154. end
  155. end
  156. elseif (source == create_resource_button) then
  157. guiSetVisible(resource_creator_window,true)
  158. guiBringToFront(resource_creator_window,true)
  159. elseif (source == cancel_create_resource) then
  160. guiSetVisible(resource_creator_window,false)
  161. elseif (source == create_resource) then
  162. resourceName = guiGetText(resource_name_edit)
  163. name = guiGetText(meta_name_edit)
  164. author = guiGetText(meta_author_edit)
  165. description = guiGetText(meta_description_edit)
  166. version = guiGetText(meta_version_edit)
  167. type = guiGetText(meta_type_edit)
  168. clientSide = guiGetText(meta_client_edit)
  169. serverSide = guiGetText(meta_server_edit)
  170. triggerServerEvent("create_resource",client,client,resourceName,name,author,description,version,type,clientSide,serverSide)
  171. guiSetVisible(resource_creator_window,false)
  172.  end
  173. end
  174. addEventHandler("onClientGUIClick",rootElement,onGUIClick)
  175.  
  176. function return_msg(text,r,g,b)
  177. guiSetText(script_editor_info_label,text)
  178. guiLabelSetColor(script_editor_info_label,r,g,b)
  179. end
  180. addEvent("return_message",true)
  181. addEventHandler("return_message",rootElement,return_msg)
  182.  
  183. function return_open_script(text)
  184. guiSetText(script_memo,text)
  185. end
  186. addEvent("return_script_open",true)
  187. addEventHandler("return_script_open",rootElement,return_open_script)
  188.  
  189. addEvent("return_resources",true)
  190. addEventHandler("return_resources",rootElement,
  191. function (name)
  192. row = guiGridListAddRow(script_browser_grid_resources)
  193. guiGridListSetItemText (script_browser_grid_resources, row, 1, name, false, false )
  194. end)
  195.  
  196. addEvent("return_content",true)
  197. addEventHandler("return_content",rootElement,
  198. function (src)
  199. if src then
  200. row = guiGridListAddRow(script_browser_grid_content)
  201. guiGridListSetItemText (script_browser_grid_content, row, 1, src, false, false )
  202.   end
  203. end)
Add Comment
Please, Sign In to add comment