View Single Post
  #1  
Old 08-26-2011, 04:33 PM
Emera Emera is offline
Delterian Hybrid
Emera's Avatar
Join Date: Mar 2011
Location: Newcastle Upon-Tyne
Posts: 1,704
Emera is a jewel in the roughEmera is a jewel in the rough
Server Flag Adder

I have finally completed my code! Thank you to everybody who contributed towards the completion of the code by helping me out on various threads I have created about the development of this tool.

The Tool
The Server Flag Adder is a tool for displaying all of the current server flags in a nice GUI menu. Within the menu, you have the option to add flags to the server without creating them through a script. It displays the flags you already have present on your server with a Text List control in a nice little interface. I myself like to use GUI's as much as I can as it makes whatever you are developing nice and tidy (if you design the GUI properly!)

To open the GUI, all the player has to do is chat "/flagadder". Obviously, you can change that command to whatever you prefer or even allow it to open after a certain key has been pressed.

CODE
PHP Code:
function onCreated() {
  
this.allowed = {
    
"McChucken""Other community name"
  
};
}
function 
onActionServerside() {
  if (
params[0] == "addflags")  { 
    if (
player.communityname in this.allowed) {
      
serverr.(@params[1]) = params[2];
    }  
  }
}

//#CLIENTSIDE
function addrowsys_Button1.onAction() {
  new 
GuiWindowCtrl("Extent_Window1") {
    
profile GuiBlueWindowProfile;
    
clientrelative true;
    
style $pref::Video::defaultguistyle;
    
clientextent "176,118";
    
canmaximize false;
    
canminimize false;
    
canmove true;
    
canresize true;
    
closequery false;
    
destroyonhide true;
    
text "Add a flag";
    
517;
    
209;
    new 
GuiTextEditCtrl("Extent_TextEdit1") {
      
profile GuiBlueTextEditProfile;
      
height 20;
      
width 80;
      
7;
      
19;
    }
    new 
GuiTextEditCtrl("Extent_TextEdit2") {
      
profile GuiBlueTextEditProfile;
      
height 20;
      
width 80;
      
7;
      
59;
    }
    new 
GuiTextCtrl("Extent_Text1") {
      
profile GuiBlueTextProfile;
      
height 20;
      
text "Flag Content";
      
width 73;
      
92;
      
58;
    }
    new 
GuiTextCtrl("Extent_Text2") {
      
profile GuiBlueTextProfile;
      
height 20;
      
text "Title / Name";
      
width 69;
      
93;
      
18;
    }
    new 
GuiButtonCtrl("Extent_Button1") {
      
profile GuiBlueButtonProfile;
      
height 22;
      
text "Add Flag";
      
width 164;
      
6;
      
90;
    }
  }
}

function 
CreateGui() {
  new 
GuiWindowCtrl("addrowsys_Window1") {
    
profile GuiBlueWindowProfile;
    
clientrelative true;
    
clientextent "367,238";
    
isexternal false;
    
style $pref::Video::defaultguistyle;
    
canmaximize false;
    
canminimize false;
    
canmove true;
    
canresize false;
    
closequery false;
    
destroyonhide true;
    
text "Server Flag Editor";
    
480;
    
84;
    new 
GuiControl("Border1") {
      
useownprofile true;
      
profile.border 0;
      
profile.opaque true;
      
profile.fillColor = {
        
163194212120
      
};
      
width 367;
      
height 238;
      
0;
      
0;
    }
    new 
GuiButtonCtrl("addrowsys_Button1") {
      
profile GuiBlueButtonProfile;
      
height 24;
      
text "+";
      
width 24;
      
335;
      
3;
      
hint "Add flag";
    }
    new 
GuiButtonCtrl("addrowsys_Button3") {
      
profile GuiBlueButtonProfile;
      
height 24;
      
text "?";
      
width 24;
      
285;
      
3;
      
hint "help";
    }
    new 
GuiButtonCtrl("addrowsys_Button4") {
      
profile GuiBlueButtonProfile;
      
height 24;
      
text "^";
      
width 24;
      
310;
      
3;
      
hint "Update";
    }
    new 
GuiScrollCtrl("addrowsys_TextList1_Scroll") {
      
profile GuiBlueScrollProfile;
      
hscrollbar "alwaysOff";
      
vscrollbar "dynamic";
      
width 354;
      
6;
      
32;
      new 
GuiTextListCtrl("addrowsys_TextList1") {
        
profile GuiBlueTextListProfile;
        
height 34;
        
horizsizing "width";
        
sortcolumn 167550464;
        
width 350;
      }
    }
    new 
GuiTextCtrl("addrowsys_Text1") {
      
profile GuiBlueTextProfile;
      
height 20;
      
text "Server Flag Adder.";
      
width 305;
      
9;
      
6;
    }
  }
}

function 
addrowsys_Button4.onAction() {
  
getflags();
}

function 
Extent_Button1.onAction() {
  
addflags();
}

function 
addrowsys_Button3.onAction() {
  
say2("You can add rows#bto the GUI by pressing#bthe + button.#bYou can update the flag#bscreen by pressing the ^ button.");
}

function 
GetFlags() {
  
addrowsys_TextList1.clearrows();
  for (
temp.flagserverr.getdynamicvarnames()) {
    
addrowsys_TextList1.addrow(temp.counttemp.flagtemp.value serverr.(@temp.flag));
    
temp.count++;
  }
}

function 
AddFlags() {
  
triggerserver("gui"this.name"addflags"Extent_TextEdit1.textExtent_TextEdit2.text);
  
getflags();
}

function 
OpenGui() {
  
creategui();
  
addflags();
}

function 
ChatBar.onAction() {   
  if (
ChatBar.text.trim() == "/flagadder") {   
    
OpenGui(); //Opens the GUI. 
    
ChatBar.text ""// Clear the chatbar so /flagadder isn't chatted out loud. 
  
}   

The Graal Pastebin file can be found here.
Have fun!
Attached Thumbnails
Click image for larger version

Name:	emeraserverflagadder.PNG
Views:	306
Size:	17.3 KB
ID:	53560   Click image for larger version

Name:	serverflagadder.PNG
Views:	313
Size:	42.0 KB
ID:	53563  
__________________

Last edited by Emera; 08-27-2011 at 01:31 AM..
Reply With Quote