Page 1 of 1

/draw commands eg hsphere, sphere , cone , hcone

PostPosted: 11 Jun 2013, 00:40
by Leeizazombie
I know that draw has pillars and cones but i wanted to make a home menu with being inside a sphere (hsphere meaning hollow sphere) those commands are in mcforge, and it be very great if this server can get them.

Re: /draw commands eg hsphere, sphere , cone , hcone

PostPosted: 11 Jun 2013, 00:49
by HETAL
did you try /spheroid and /draw cone is already hollow?

Re: /draw commands eg hsphere, sphere , cone , hcone

PostPosted: 11 Jun 2013, 02:01
by Leeizazombie
the thing about /draw hsphere is that you only place one block and its the middle

Re: /draw commands eg hsphere, sphere , cone , hcone

PostPosted: 11 Jun 2013, 03:19
by ismellike
This is a nice suggestion, I can probably make this with ease using /ellipsoid and /spheroid.

I have /instabuild at the top of my schedule though, but I might change my mind since it could be easy. (I could be wrong though)

Re: /draw commands eg hsphere, sphere , cone , hcone

PostPosted: 11 Jun 2013, 03:25
by Leeizazombie
Lol dud i'm full of suggestions, like can you change the repeat from /m to /, instead of saying that there is no command entered, it should use repeat, and this is on some servers... but instabuild first xD lol please.

Re: /draw commands eg hsphere, sphere , cone , hcone

PostPosted: 11 Jun 2013, 04:14
by ismellike
Ok the instabuild is up on the forums, will get started on this suggestion :), should be up soon also.

Edit, here is /sphere :) enjoy.


Code: Select all
using System;

namespace MCDzienny
{
    public class CmdSphere : Command
    {
        public override string name { get { return "sphere"; } }
        public override string shortcut { get { return ""; } }
        public override string type { get { return "build"; } }
        public override bool museumUsable { get { return false; } }
        public override LevelPermission defaultRank { get { return LevelPermission.AdvBuilder; } }
        public override void Use(Player p, string message)
        {
            string radius = "";
            string block = "";
            if (message == "") { Help(p); return; }
            else if (message.Split(' ')[0] == "h")
            {
                try
                {
                    radius = message.Split(' ')[1];
                    Convert.ToUInt16(radius);
                }
                catch
                {
                    Player.SendMessage(p, "Please specify the radius of your sphere.");
                    return;
                }
                try
                {
                    block = message.Split(' ')[2];
                }
                catch
                {
                    Player.SendMessage(p, "Please specify the block.");
                    return;
                }
                Command.all.Find("ellipsoid").Use(p, block);
                int x = (ushort)(p.pos[0] / 32 + Convert.ToUInt16(radius)), y = (ushort)(p.pos[1] / 32 + Convert.ToUInt16(radius)), z = (ushort)(p.pos[2] / 32 + Convert.ToUInt16(radius));
                Command.all.Find("click").Use(p, String.Format(x + " " + y + " " + z));
                x = (ushort)(p.pos[0] / 32 - Convert.ToUInt16(radius)); y = (ushort)(p.pos[1] / 32 - Convert.ToUInt16(radius)); z = (ushort)(p.pos[2] / 32 - Convert.ToUInt16(radius));
                Command.all.Find("click").Use(p, String.Format(x + " " + y + " " + z));
            }
            else
            {
                try
                {
                    radius = message.Split(' ')[0];
                    Convert.ToUInt16(radius);
                }
                catch
                {
                    Player.SendMessage(p, "Please specify the radius of your sphere.");
                    return;
                }
                try
                {
                    block = message.Split(' ')[1];
                }
                catch
                {
                    Player.SendMessage(p, "Please specify the block.");
                    return;
                }
                Command.all.Find("spheroid").Use(p, block);
                int x = (ushort)(p.pos[0] / 32 + Convert.ToUInt16(radius)), y = (ushort)(p.pos[1] / 32 + Convert.ToUInt16(radius)), z = (ushort)(p.pos[2] / 32 + Convert.ToUInt16(radius));
                Player.SendMessage(p, String.Format(x + " " + y + " " + z));
                Command.all.Find("click").Use(p, String.Format(x + " " + y + " " + z));
                x = (ushort)(p.pos[0] / 32 - Convert.ToUInt16(radius)); y = (ushort)(p.pos[1] / 32 - Convert.ToUInt16(radius)); z = (ushort)(p.pos[2] / 32 - Convert.ToUInt16(radius));
                Command.all.Find("click").Use(p, String.Format(x + " " + y + " " + z));
            }
        }
        public override void Help(Player p)
        {
            Player.SendMessage(p, "/sphere <h> [radius] [block] -- creates a <hollow> sphere with your position as the center");
        }
    }
}