It'd really be a lot better if I don't need to repost on revisions.. can you put a lil mod to allow forever-edit or something.
New Update: V 1.1
PHP Code:
// NPC Made by KuJi - V1.1 //#CLIENTSIDE function onCreated() { requesttext("clientrc", 1); new GuiMLTextEditProfile(TextEditorProfile) { fontType = "Courier"; fontSize = 10; cursorColor = "0 0 0"; fillColorHL = "255 255 0"; fontColor = "0 0 0"; fontColorHL = "192 0 0"; // control words like if, else etc. fontColorSEL = "0 96 0"; // identifiers fontColorLink = "0 0 192"; // strings fontColorLinkHL = "0 0 255"; // numbers } onShowGUI(); }
function onShowGUI() { if (NC_Window != NULL) { NC_Window.destroy(); } new GuiWindowCtrl(NC_Window) { height = 460; profile = GuiBlueWindowProfile; text = "NC Control (V1.0 by KuJi) "; width = 577; x = 150; y = 150; visible = false; new GuiTabCtrl(NC_Tab) { profile = "GuiBlueTabProfile"; extent = {380, 25}; position = {183, 35}; horizSizing = "width"; clearrows(); } new GuiScrollCtrl(NC_Frame1) { profile = GuiBlueScrollProfile; extent = {175, 431}; position = {6, 23}; hScrollBar = "dynamic"; vScrollBar = "dynamic"; vertSizing = "height"; useownprofile = true; profile.opaque = false; new GuiTreeViewCtrl(NC_Tree) { profile = GuiBlueTreeViewProfile; x = y = 0; fitparentwidth = true; clearnodes(); addnodebypath("Classes", "/"); addnodebypath("NPCS", "/"); addnodebypath("Weapons", "/"); } } new GuiScrollCtrl(NC_Frame2) { profile = GuiBlueScrollProfile; extent = {388, 355}; position = {182, 60}; hScrollBar = "dynamic"; vScrollBar = "dynamic"; horizSizing = "width"; vertSizing = "height"; useownprofile = true; profile.opaque = false; } new GuiButtonCtrl(NC_Close) { profile = GuiBlueButtonProfile; extent = {65, 25}; position = {360, 423}; horizSizing = "left"; vertSizing = "top"; text = "Close"; thiso.catchevent(this.name, "onAction", "onActionButton"); } new GuiButtonCtrl(NC_Reload) { profile = GuiBlueButtonProfile; extent = {65, 25}; position = {430, 423}; horizSizing = "left"; vertSizing = "top"; text = "Reload"; thiso.catchevent(this.name, "onAction", "onActionButton"); } new GuiButtonCtrl(NC_Save) { profile = GuiBlueButtonProfile; extent = {65, 25}; position = {500, 423}; horizSizing = "left"; vertSizing = "top"; text = "Save"; thiso.catchevent(this.name, "onAction", "onActionButton"); } } }
function NC_Tab.onSelect(tabid, tabtext, tabindex) { for (temp.var: NC_Tab.rows) { if (temp.var.text == tabtext) { temp.var.scriptedit.visible = true; } } }
function NC_Tab.onDeselect(tabid, tabtext, tabindex) { for (temp.var: NC_Tab.rows) { if (temp.var.text == tabtext) { temp.var.scriptedit.visible = false; } } }
function NC_Tree.onDblClick(node, nodeslashpath, nodedotpath) { if (nodeslashpath.starts("Classes/")) { requesttext("class", nodeslashpath.substring(8)); } elseif (nodeslashpath.starts("Weapons/")) { requesttext("weapon", nodeslashpath.substring(8)); } elseif (nodeslashpath.starts("NPCS/")) { requesttext("npc", nodeslashpath.substring(5)); } }
function onReceiveText(texttype, textoption, textlines) { if (texttype in {"classlist", "npclist", "weaponlist"}) { onAddScripts(textoption, textlines); } elseif (texttype in {"class", "npc", "weapon"}) { onViewScript(texttype, textoption, textlines); } }
function onAddScripts(temp.prefix, temp.textlines) { if (temp.prefix != NULL) { for (temp.var: temp.textlines) { if (temp.var != NULL) { with (NC_Tree.addnodebypath(temp.prefix @ temp.var, "/")) { image = selectedimage = 2; } } } } }
function onViewScript(temp.texttype, temp.textoption, temp.textlines) { temp.found = NC_Tab.findtextid(temp.textoption); if (temp.found >= 0) { NC_Tab.setselectedbyid(temp.found); for (temp.var: NC_Tab.rows) { if (temp.var.id == temp.found) { temp.var.scriptedit.setlines(temp.textlines); } } return true; } else { with (NC_Frame2) { new GuiMLTextEditCtrl("NC_Edit_" @ temp.texttype @ "_" @ temp.textoption) { profile = "TextEditorProfile"; extent = {365, 225}; position = {6, 6}; horizSizing = "width"; vertSizing = "height"; syntaxHighlighting = true; wordwrap = false; this.edittype = temp.texttype; this.editoption = temp.textoption;
setlines(temp.textlines); } } with (NC_Tab.addrow(this.tabid++, temp.textoption)) { this.scriptedit = makevar("NC_Edit_" @ temp.texttype @ "_" @ temp.textoption); NC_Tab.setselectedbyid(this.id); } } }
function onActionButton(obj) { temp.ncid = NC_Tab.getselectedid(); if (temp.ncid <= -1) { return false; } switch (obj.substring(3)) { case "Close": { for (temp.var: NC_Tab.rows) { if (temp.var.id == temp.ncid) { temp.var.scriptedit.destroy(); NC_Tab.removerowbyid(temp.ncid); NC_Frame2.extent = {388, 355}; break; } } break; } case "Reload": { for (temp.var: NC_Tab.rows) { if (temp.var.id == temp.ncid) { requesttext(temp.var.scriptedit.edittype, temp.var.scriptedit.editoption); break; } } break; } case "Save": { for (temp.var: NC_Tab.rows) { if (temp.var.id == temp.ncid) { sendtext(temp.var.scriptedit.edittype, temp.var.scriptedit.editoption, temp.var.scriptedit.getLines());
break; } } } } }
function onKeyPressed(keycode, keychar) { if (keychar == '`') { NC_Tree.clearnodes(); requesttext("classlist", "Classes/"); requesttext("npclist", "NPCS/"); requesttext("weaponlist", "Weapons/"); NC_Window.visible = !NC_Window.visible; } }
This fixes the colors for people who haven't used the texteditor yet.. it'll make them the colors I had in the pic. Sorry about that =o.
P.S. I did take those right out of texteditor =o
|