Game Client modified by Ender

Forum for alternative clients, mods & discussions on the same.

Moderator: Phades

Re: Game Client modified by Ender

Postby Xcom » Wed Jun 26, 2013 10:33 am

Alot of the edits was made in ToolbarWnd.java. All "// new" are the edited code

lines:
137 - 143
199
547
613

Code: Select all
package haven;

import haven.Resource.Image;

import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.font.TextAttribute;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;


public class ToolbarWnd extends Window implements DTarget, DropTarget {
    private static final Color pressedColor = new Color(196, 196, 196, 196);
    public final static Tex bg = Resource.loadtex("gfx/hud/invsq");
    private static final int BELTS_NUM = 15;
    private static final BufferedImage ilockc = Resource.loadimg("gfx/hud/lockc");
    private static final BufferedImage ilockch = Resource.loadimg("gfx/hud/lockch");
    private static final BufferedImage ilocko = Resource.loadimg("gfx/hud/locko");
    private static final BufferedImage ilockoh = Resource.loadimg("gfx/hud/lockoh");
    @SuppressWarnings("unchecked")
    private static final Indir<Resource>[] defbelt = new Indir[10];
    public final static Coord bgsz = bg.sz().add(-1, -1);
    private static final Properties beltsConfig = new Properties();
    private Coord gsz, off, beltNumC;
    Slot pressed, dragging, layout[];
    private IButton lockbtn, flipbtn, minus, plus;
    public boolean flipped = false, locked = false;
    public int belt, key;
    private Tex[] nums;
    private static Tex[] beltNums;
    public String name;
   
    public final static RichText.Foundry ttfnd = new RichText.Foundry(TextAttribute.FAMILY, "SansSerif", TextAttribute.SIZE, 10);
   
    static {
   /* Text rendering is slow, so pre-cache the belt numbers. */
   beltNums = new Tex[BELTS_NUM];
   for(int i = 0; i < BELTS_NUM; i++) {
       beltNums[i] = new TexI(Utils.outline2(Text.render(Integer.toString(i)).img, Color.BLACK, true));
   }
    }
   
    public ToolbarWnd(Coord c, Widget parent, String name) {
   super( c, Coord.z,  parent, null);
   this.name = name;
   init(1, 10, new Coord(5, 10), KeyEvent.VK_0);
    }
   
    public ToolbarWnd(Coord c, Widget parent, String name, int belt, int key, int sz, Coord off) {
   super( c, Coord.z,  parent, null);
   this.name = name;
   init(belt, sz, off, key);
    }
   
    public ToolbarWnd(Coord c, Widget parent, String name, int belt, int key) {
   super( c, Coord.z,  parent, null);
   this.name = name;
   init(belt, 10, new Coord(5, 10), key);
    }

    private void loadOpts() {
   synchronized (Config.window_props) {
       if(Config.window_props.getProperty(name+"_locked", "false").equals("true")) {
      locked = true;
       }
       if(Config.window_props.getProperty(name+"_flipped", "false").equals("true")) {
      flip();
       }
       if(Config.window_props.getProperty(name+"_folded", "false").equals("true")) {
      folded = true;
      checkfold();
       }
       visible = Config.window_props.getProperty(name, "true").equals("true");
       c = new Coord(Config.window_props.getProperty(name+"_pos", c.toString()));
   }
    }
   
    private void init(int belt, int sz, Coord off, int key) {
   gsz = new Coord(1, sz);
   this.off = off;
   fbtn.show();
   mrgn = new Coord(2,18);
   layout = new Slot[sz];
   loadOpts();
   cbtn.visible = false;
   lockbtn = new IButton(Coord.z, this, locked?ilockc:ilocko, locked?ilocko:ilockc, locked?ilockch:ilockoh) {
      
      public void click() {
          locked = !locked;
          if(locked) {
         up = ilockc;
         down = ilocko;
         hover = ilockch;
          } else {
         up = ilocko;
         down = ilockc;
         hover = ilockoh;
          }
          Config.setWindowOpt(name+"_locked", locked);
      }
   };
   lockbtn.recthit = true;
   flipbtn = new IButton(Coord.z, this, Resource.loadimg("gfx/hud/flip"), Resource.loadimg("gfx/hud/flip"), Resource.loadimg("gfx/hud/flipo")) {
      public void click() {
          flip();
      }
   };
   minus = new IButton(Coord.z, this, Resource.loadimg("gfx/hud/charsh/minusup"), Resource.loadimg("gfx/hud/charsh/minusdown")) {
       public void click() {
          prevBelt();
      }
   };
   plus = new IButton(Coord.z, this, Resource.loadimg("gfx/hud/charsh/plusup"), Resource.loadimg("gfx/hud/charsh/plusdown")) {
       public void click() {
          nextBelt();
      }
   };
   flipbtn.recthit = true;
   loadBelt(belt);
   this.key = key;
   pack();
   /* Text rendering is slow, so pre-cache the hotbar numbers. */
   nums = new Tex[sz];
   for(int i = 0; i < sz; i++) {
       String slot;
       if(key == KeyEvent.VK_0){
      slot = Integer.toString(i);
       } else if(key == KeyEvent.VK_F1){
      slot = "F"+Integer.toString(i+1);
       } else if(key == KeyEvent.VK_NUMPAD0){
      slot = "N"+Integer.toString(i);
       } else {
      slot = keypadString(i); // new
       }
       nums[i] = new TexI(Utils.outline2(Text.render(slot).img, Color.BLACK, true));
   }
    }
   
   ////////// new
   
   String keypadString(int i){
      switch(i){
         case 0:
           return "Q";
         case 1:
           return "W";
         case 2:
           return "E";
         case 3:
           return "R";
         case 4:
           return "T";
         case 5:
           return "Y";
         case 6:
           return "U";
         case 7:
           return "I";
         case 8:
           return "O";
         case 9:
           return "P";
      }
      
      return "";
   }
   
   int keypadNum(int i){
      switch(i){
         case 81:
           return 0;
         case 87:
           return 1;
         case 69:
           return 2;
         case 82:
           return 3;
         case 84:
           return 4;
         case 89:
           return 5;
         case 85:
           return 6;
         case 73:
           return 7;
         case 79:
           return 8;
         case 80:
           return 9;
      }
      
      return -1;
   }
   
   ////////// new
   
    protected void nextBelt() {
   loadBelt(belt + 2);
    }
   
    protected void prevBelt() {
   loadBelt(belt - 2);
    }
   
    public static void loadBelts() {
   
   String configFileName = "belts_" + Config.currentCharName.replaceAll("[^a-zA-Z()]", "_") + ".conf";
   try {
       synchronized (beltsConfig) {
      beltsConfig.load(new FileInputStream(configFileName));
       }
   } catch (FileNotFoundException e) {
   } catch (IOException e) {
   }
    }
   
    protected void loadBelt(int beltNr) {
   belt = beltNr % BELTS_NUM;
   if(belt < 0)
       belt += BELTS_NUM;
   synchronized (beltsConfig) {
       for (int slot = 0; slot < layout.length; slot++) {
      String icon = beltsConfig.getProperty("belt_" + belt + "_" + slot, "");
      if (icon.length() > 0) {
          layout[slot] = new Slot(icon, belt, slot);
      } else {
          layout[slot] = null;
      }
       }
   }
    }
   
    public static void saveBelts() {
   synchronized (beltsConfig) {
       String configFileName = "belts_" + Config.currentCharName.replaceAll("[^a-zA-Z()]", "_") + ".conf";
       try {
      beltsConfig.store(new FileOutputStream(configFileName), "Belts actions for " + Config.currentCharName);
       } catch (FileNotFoundException e) {
       } catch (IOException e) {
       }
   }
    }
   
    public void wdgmsg(Widget sender, String msg, Object... args) {
   if(sender == cbtn)
       ui.destroy(this);
   Boolean _folded = folded;
   if(sender == fbtn)
       super.wdgmsg(sender, msg, args);
   if(_folded != folded) {
       Config.setWindowOpt(name+"_folded", folded);
   }
    }
   
    public void draw(GOut g) {
   super.draw(g);
   if(folded)
       return;
   for(int y = 0; y < gsz.y; y++) {
       for(int x = 0; x < gsz.x; x++) {
      Coord p = getcoord(x, y);
      g.image(bg, p);
      int slot = x+y;
      if(key == KeyEvent.VK_0)
          slot = (slot + 1) % 10;
      Slot s = layout[x+y];
      Resource btn = (s==null)?null:s.getres();
      if(btn != null) {
          Image img = btn.layer(Resource.imgc);
          if(img != null){
         Tex btex = img.tex();
         if(s == pressed) {
             g.chcolor(pressedColor);
         }
         if(Config.highlightSkills)
             g.chcolor(btn.getStateColor());
         g.image(btex, p.add(1, 1));
          } else {
         System.out.println(btn.name);
          }
      }
      g.aimage(nums[slot], p.add(bg.sz()), 1, 1);
      g.chcolor();
       }
   }
   g.chcolor();
   Resource res;
   if((dragging != null)&&((res = dragging.getres()) != null)) {
       final Tex dt = res.layer(Resource.imgc).tex();
       ui.drawafter(new UI.AfterDraw() {
          public void draw(GOut g) {
         g.image(dt, ui.mc.add(dt.sz().div(2).inv()));
          }
      });
   }
   g.aimage(beltNums[belt], beltNumC, 1, 1);
    }
   
    private Coord getcoord(int x, int y) {
   Coord p = xlate(bgsz.mul(new Coord(x, y)),true);
   if (off.x > 0)
       if (flipped) {
      p.x += off.y*(x/off.x);
       } else {
      p.y += off.y*(y/off.x);
       }
   return p;
    }
   
    public void checkfold() {
   super.checkfold();
   Coord max = new Coord(ssz);
   if((folded)&&(flipped)) {
       max.x = 0;
       recalcsz(max);
   }
   placecbtn();
    }
   
    protected void recalcsz(Coord max)
    {
   sz = max.add(wbox.bsz().add(mrgn.mul(2)).add(tlo).add(rbo)).add(-1, -1);
   wsz = sz.sub(tlo).sub(rbo);
   if(folded)
       if (flipped)
      wsz.x = wsz.x/2;
       else
      wsz.y = wsz.y/2;
   asz = wsz.sub(wbox.bl.sz()).sub(wbox.br.sz()).sub(mrgn.mul(2));
    }
   
    public void flip() {
   flipped = !flipped;
   gsz = new Coord(gsz.y, gsz.x);
   mrgn = new Coord(mrgn.y, mrgn.x);
   pack();
   Config.setWindowOpt(name+"_flipped", flipped);
    }
   
    protected void placecbtn() {
   cbtn.c = new Coord(wsz.x - 3 - Utils.imgsz(cbtni[0]).x, 3).sub(mrgn).sub(wbox.tloff());
   if(flipped) {
       fbtn.c = new Coord(cbtn.c.x, wsz.y - 3 - Utils.imgsz(fbtni[0]).y - mrgn.y - wbox.tloff().y);
       if(lockbtn != null)
      lockbtn.c = new Coord(3 - wbox.tloff().x - mrgn.x, cbtn.c.y );
       if(flipbtn != null)
      flipbtn.c = new Coord(5 - wbox.tloff().x - mrgn.x, fbtn.c.y);
       if(plus != null)
      plus.c = cbtn.c.sub(16,0);
       if(minus != null) {
      minus.c = fbtn.c.sub(16,0);
          beltNumC = minus.c.add(plus.c).div(2).add(36, 22);
       }
   } else {
       fbtn.c = new Coord(3 - wbox.tloff().x, cbtn.c.y);
       if(lockbtn != null)
      lockbtn.c = new Coord(fbtn.c.x, wsz.y - 21 - mrgn.y - wbox.tloff().y );
       if(flipbtn != null)
      flipbtn.c = new Coord(cbtn.c.x - 2, wsz.y - 21 - mrgn.y - wbox.tloff().y);
       if(plus != null)
      plus.c = flipbtn.c.sub(0, 16);
       if(minus != null) {
      minus.c = lockbtn.c.sub(0, 16);
          beltNumC = minus.c.add(plus.c).div(2).add(20, 38);
       }
   }
    }
   
    public void pack() {
   ssz = bgsz.mul(gsz);
   if (off.x > 0)
       if (flipped) {
      ssz.x += off.y*((gsz.x/off.x) - ((gsz.x%off.x == 0)?1:0)) + 16;
       } else {
      ssz.y += off.y*((gsz.y/off.x) - ((gsz.y%off.x == 0)?1:0)) + 16;
       }
   checkfold();
   placecbtn();
    }
   
    private Slot bhit(Coord c) {
   int i = index(c);
   if (i >= 0)
       return (layout[i]);
   else
       return (null);
    }

    private int index(Coord c) {
   for(int y = 0; y < gsz.y; y++) {
       for(int x = 0; x < gsz.x; x++) {
      if (c.isect(getcoord(x, y), bgsz))
          return x+y;
       }
   }
   return -1;
    }
   
    public boolean mousedown(Coord c, int button) {
   Slot h = bhit(c);
   if (button == 1) {
       if (h != null) {
      pressed = h;
      ui.grabmouse(this);
       } else {
      super.mousedown(c, button);
       }
   } else if((button == 3)&&(!locked)){
       clearslot(index(c));
   }
   return (true);
    }

    public boolean mouseup(Coord c, int button) {
   Slot h = bhit(c);
   if (button == 1) {
       if(dragging != null) {
      ui.dropthing(ui.root, ui.mc, dragging.getres());
      dragging = pressed = null;
       } else if (pressed != null) {
      if (pressed == h)
          h.use();
      pressed = null;
       }
       ui.grabmouse(null);
   }
   if(dm) {
       Config.setWindowOpt(name+"_pos", this.c.toString());
   }
   super.mouseup(c, button);
   
   return (true);
    }
   
    public void clearslot(int slot){
   if((slot<0)||(slot>=layout.length)){return;}
   Slot s = layout[slot];
   layout[slot] = null;
   setBeltSlot(slot, "");
   if((s != null) && (s.isitem)){
       ui.slen.wdgmsg("belt", s.slot, 3, ui.modflags());
   }
    }
   
    public void mousemove(Coord c) {
   if ((!locked)&&(dragging == null) && (pressed != null)) {
       dragging = pressed;
       int slot = index(c);
       if(slot >= 0){
      clearslot(slot);
       }
       pressed = null;
   } else {
       super.mousemove(c);
   }
      
    }
   
    public boolean drop(Coord cc, Coord ul) {
   if(!locked){
       int s = getbeltslot();
       if(s<0){
      String msg = "No empty item slots!";
      ui.cons.out.println(msg);
      ui.slen.error(msg);
       } else {
      int slot = index(cc);
      if(slot >= 0){
          String val = "@"+s;
          layout[slot] = new Slot(val, belt, slot);
          ui.slen.wdgmsg("setbelt", s, 0);
          setbeltslot(belt, slot, val);
      }
       }
   }
   return(true);
    }
   
    public boolean iteminteract(Coord cc, Coord ul) {
   return(false);
    }
   
    public boolean dropthing(Coord c, Object thing) {
   if ((!locked)&&(thing instanceof Resource)) {
       int slot = index(c);
       if(slot < 0){return false;}
       Resource res = (Resource)thing;
       setBeltSlot(slot, res.name);
       layout[slot] = new Slot(res.name, belt, slot );
       return true;
   }
   return false;
    }
   
    private void setBeltSlot(int slot, String icon) {
   setbeltslot(belt, slot, icon);
    }
   
    private Resource curttr = null;
    private boolean curttl = false;
    private Text curtt = null;
    private long hoverstart;
    public Object tooltip(Coord c, boolean again) {
   Slot slot = bhit(c);
   Resource res = (slot==null)?null:slot.getres();
   long now = System.currentTimeMillis();
   if((res != null) && ((res.layer(Resource.action) != null)||(res.layer(Resource.tooltip) != null))) {
       if(!again)
      hoverstart = now;
       boolean ttl = (now - hoverstart) > 500;
       if((res != curttr) || (ttl != curttl)) {
      curtt = rendertt(res, ttl);
      curttr = res;
      curttl = ttl;
       }
       return(curtt);
   } else {
       hoverstart = now;
       return("");
   }
    }
   
    private static Text rendertt(Resource res, boolean withpg) {
   Resource.AButton ad = res.layer(Resource.action);
   Resource.Pagina pg = res.layer(Resource.pagina);
   String tt;
   if(ad != null){
       tt = ad.name;
   } else {
       tt = res.layer(Resource.tooltip).t;
   }
   if(withpg && (pg != null)) {
       tt += "\n\n" + pg.text;
   }
   return(ttfnd.render(tt, 0));
    }
   
    private boolean checkKey(char ch, KeyEvent ev) {
   if(!visible){return false;}
   int code = ev.getKeyCode();
   int slot = code - key;
   
   if(key == KeyEvent.VK_Q){ // new
      slot = keypadNum(code);
   }
   
   boolean alt = ev.isAltDown();
   boolean ctrl = ev.isControlDown();
   if(alt && key == KeyEvent.VK_F1){
       slot = code - KeyEvent.VK_0;
       if((slot>0)&&(slot<=5)){
      loadBelt(slot*2);
      return true;
       }
   } else if (ctrl && key == KeyEvent.VK_0) {
       slot = code - KeyEvent.VK_0;
       if((slot>0)&&(slot<=5)){
      slot = ((slot-1)<<1) + 1;
      loadBelt(slot);
      return true;
       }
   } else   if(!alt && !ctrl && (slot >= 0)&&(slot < gsz.x*gsz.y)) {
       if(key == KeyEvent.VK_0)
          slot = (slot == 0)?9:slot-1;
       Slot h = layout[slot];
       if(h!=null)
      h.use();
       return true;
   }
   return false;
    }
   
    public boolean globtype(char ch, KeyEvent ev) {
   if(!checkKey(ch, ev))
       return(super.globtype(ch, ev));
   else
       return true;
    }
   
    public boolean type(char key, KeyEvent ev) {
   if(key == 27) {
       wdgmsg(fbtn, "click");
       return(true);
   }
   if(!checkKey(key, ev))
       return(super.type(key, ev));
   else
       return true;
    }
   
    public void removedef(int slot){
   for(int i=0; i<layout.length; i++){
       Slot s = layout[i];
       if((s != null) && s.isitem && (s.slot == slot)){
      clearslot(i);
       }
   }
    }
   
    public static void setbelt(int slot, Indir<Resource> res){
   synchronized (defbelt) {
       defbelt[slot] = res;
   }
   if(res == null){
       MenuGrid mnu = UI.instance.mnu;
       mnu.digitbar.removedef(slot);
       mnu.functionbar.removedef(slot);
       mnu.numpadbar.removedef(slot);
      mnu.keypadbar.removedef(slot); // new
   }
    }
   
    public static Indir<Resource>getbelt(int slot){
   Indir<Resource> res;
   synchronized (defbelt) {
       res = defbelt[slot];
   }
   return res;
    }
   
    public static int getbeltslot(){
   synchronized (defbelt) {
       for(int i = 0; i<defbelt.length; i++){
      if(defbelt[i] == null){
          return i;
      }
       }
   }
   return -1;
    }
   
    private static void setbeltslot(int belt, int slot, String value){
   synchronized (beltsConfig) {
       beltsConfig.setProperty("belt_"+belt+"_"+slot, value);
   }
   saveBelts();
    }
   
    private static class Slot {
   public boolean isitem;
   public String action;
   public int slot;
   private Resource res;
   private int belt, ind;
   
   public Slot(String str, int belt, int ind){
       this.ind = ind;
       this.belt = belt;
       if(str.charAt(0) == '@'){
      isitem = true;
      slot = Integer.decode(str.substring(1));
       } else {
      isitem = false;
      action = str;
      res = Resource.load(action);
       }
   }
   
   public Resource getres(){
       if((res == null) && (isitem))
       {
      Indir<Resource> indir = getbelt(slot);
      if(indir == null){
          res = null;
      } else {
          res = indir.get();
      }
       }
       return res;
   }
   
   public void use(){
       UI ui = UI.instance;
       if(isitem){
      if(slot>=0){
          ui.slen.wdgmsg("belt", slot, 1, ui.modflags());
      }
       } else if(ui.mnu != null){
      ui.mnu.use(res);
       }
   }
    }
}



The other place I edited was in MenuGrid.java

line 55:
Code: Select all
public ToolbarWnd keypadbar;


and line 121:
Code: Select all
    public MenuGrid(Coord c, Widget parent) {
   super(c, bgsz.mul(gsz).add(1, 1), parent);
   cons(null);
   ui.mnu = this;
   ToolbarWnd.loadBelts();
   digitbar = new ToolbarWnd(new Coord(0,300), ui.root, "toolbar1");
   functionbar = new ToolbarWnd(new Coord(50,300), ui.root, "toolbar2", 2, KeyEvent.VK_F1, 12, new Coord(4, 10));
   numpadbar = new ToolbarWnd(new Coord(100,300), ui.root, "toolbar3", 10, KeyEvent.VK_NUMPAD0){
       protected void nextBelt(){
      loadBelt((belt+1)%5+10);
       }
       protected void prevBelt(){
      loadBelt((belt-1)%5+10);
       }
   };
   keypadbar = new ToolbarWnd(new Coord(150,300), ui.root, "toolbar4", 14, KeyEvent.VK_Q); // new
    }


that should give you this:

http://i.imgur.com/FoeU0rJ.png

I personally hate it and it also messes up with other hotkey commands. If you for example type in A then R it activates both the R button hotkey for criminal acts and whatever you have placed in that hotbar.
User avatar
Xcom
 
Posts: 1105
Joined: Wed Dec 14, 2011 1:43 pm

Re: Game Client modified by Ender

Postby borka » Wed Jun 26, 2013 11:25 am

@Pocoyo

you need to download the update.zip for Ender too and unpack into Ender folder

Please post your run.bat and give Informations:
What OS - what Bit version
What Java - what Bit version
Path where your Java is installed
Which Ender Bit version
User avatar
borka
 
Posts: 9965
Joined: Thu Feb 03, 2011 7:47 pm
Location: World of Sprucecap

Re: Game Client modified by Ender

Postby Pocoyo » Wed Jun 26, 2013 11:31 am

@borka

hi bro. somehow it works now. i have no idea why :|
but the screen resolution is still too small to play. the window can be expand, but the resolution stays the same.
i tried to zoom in but the graphic can blurish and shaky. Any idea?
Pocoyo
 
Posts: 2
Joined: Tue Jun 25, 2013 9:54 am

Re: Game Client modified by Ender

Postby borka » Wed Jun 26, 2013 12:18 pm

Check at Graphics Control Panel - as i don't know what graphic card and display etc. you're using i can't give more hints...
Avatar by SacreDoom
Java 8 - manually downloads - good to check for actual versions url here:
viewtopic.php?f=42&t=40331
Remember what the dormouse said: Feed your head Feed your head
User avatar
borka
 
Posts: 9965
Joined: Thu Feb 03, 2011 7:47 pm
Location: World of Sprucecap

Re: Game Client modified by Ender

Postby MrGemini » Thu Jun 27, 2013 1:40 pm

Greetings H&H,

I have a problem running Enders client on one of mine computers.

I have a NVidia GeForce GT 430, Windows 7 Professional 32-bit, 3gb RAM
When i use run.bat to start the client, im in main menu of H&H to login. After login, when normally the character selection screen should be there, the window is black, no h&h sound, but the h&h cursor which is still moveable. When i press the X from the Window, it doesnt close. Need to close the client manually with the Windows Task Manager.
No error message, no message in command prompt when adding "Pause" to the bat.

Grapic card driver up to date, java up to date, tried turning off firewall & antivirus, reinstall, clearing java cache, doesnt all help. Tried older Drivers too. Same with all other Custom Clients. The normal Client is working.
My run.bat:

start javaw -Xms256m -Xmx512m -jar haven.jar moltke.seatribe.se -r ./res

This one doesnt help too: viewtopic.php?f=4&t=14749


Could anyone help me with that problem? Thanks in advance,
Greetings, Gemini & Tinkababe


jorb wrote:Given your obvious merits I'm not convinced that that's a loss, but... you would be more helpful if you stated what it is you dislike about this, and why. I can't do much with "QQstopkillinggaembye".
User avatar
MrGemini
 
Posts: 426
Joined: Thu Mar 21, 2013 10:10 am

Re: Game Client modified by Ender

Postby borka » Thu Jun 27, 2013 6:12 pm

have you tried a clean fresh Ender with unpacked update.zip?
If you have a fresh one, grab mvguliks haven-res.jar
viewtopic.php?f=27&t=30126#p388194
- rename Ender haven-res.jar to haven-res.jarold, drop mvgulik one in and try again
Report back please
User avatar
borka
 
Posts: 9965
Joined: Thu Feb 03, 2011 7:47 pm
Location: World of Sprucecap

Re: Game Client modified by Ender

Postby Lupich » Fri Jun 28, 2013 3:22 pm

Would anyone know why I can't see the plot/land claim menu in Enders?
I'm unable to expand my claim or add kin to it.
User avatar
Lupich
 
Posts: 188
Joined: Thu Mar 03, 2011 8:41 pm

Re: Game Client modified by Ender

Postby borka » Fri Jun 28, 2013 3:27 pm

right click stake to get the menu - if it doesn't work grab the update (06.04.12) for Ender and unpack into Ender folder
User avatar
borka
 
Posts: 9965
Joined: Thu Feb 03, 2011 7:47 pm
Location: World of Sprucecap

Re: Game Client modified by Ender

Postby MrGemini » Fri Jun 28, 2013 3:36 pm

this worked, thank you very much ;) :mrgreen:
Greetings, Gemini & Tinkababe


jorb wrote:Given your obvious merits I'm not convinced that that's a loss, but... you would be more helpful if you stated what it is you dislike about this, and why. I can't do much with "QQstopkillinggaembye".
User avatar
MrGemini
 
Posts: 426
Joined: Thu Mar 21, 2013 10:10 am

Re: Game Client modified by Ender

Postby Aperson » Mon Jul 01, 2013 12:38 am

Enders was fine up until today where now it is not only very slow but when I log in I see my character where I logged out (in a house) but the floor won't load and the "Start playing from:" menu won't go away, and the screen is frozen. I reinstalled and it still happens.
It is nice to rest your weary bones from time to time. It is nice to lay down your burdens. It is nice to have a seat.
User avatar
Aperson
 
Posts: 159
Joined: Sun Jun 03, 2012 5:51 pm
Location: These flowers are lovely.

PreviousNext

Return to The Wizards' Tower

Who is online

Users browsing this forum: Claude [Bot] and 2 guests