예제 #1
0
        public void bindui(Action <IUI, Variant> cb, Variant data)
        {
            if (m_bindFlag)
            {
                return;
            }

            if (g_mgr.showLoading(this))
            {
                onLoading();
            }

            BaseLGUI thisptr = this;

            m_bindFlag = true;
            g_mgr.getUI(
                this.uiName,
                (IUI u, Variant info) =>
            {
                onLoadingEnd();
                if (u == null)
                {
                    DebugTrace.add(Define.DebugTrace.DTT_ERR, " bindui [" + uiName + "] Err!  ");
                    return;
                }
                m_uiF = u;
                m_uiF.setCtrl(thisptr);
                init();
                cb(u, info);
            },
                data
                );
        }
예제 #2
0
        public void bindui(Action <IUI, Variant> cb, Variant data)
        {
            bool bindFlag = this.m_bindFlag;

            if (!bindFlag)
            {
                bool flag = this.g_mgr.showLoading(this);
                if (flag)
                {
                    this.onLoading();
                }
                BaseLGUI thisptr = this;
                this.m_bindFlag = true;
                this.g_mgr.getUI(this.uiName, delegate(IUI u, Variant info)
                {
                    this.onLoadingEnd();
                    bool flag2 = u == null;
                    if (flag2)
                    {
                        DebugTrace.add(Define.DebugTrace.DTT_ERR, " bindui [" + this.uiName + "] Err!  ");
                    }
                    else
                    {
                        this.m_uiF = u;
                        this.m_uiF.setCtrl(thisptr);
                        this.init();
                        cb(u, info);
                    }
                }, data);
            }
        }
예제 #3
0
        public void prepareMapConfig(uint mapID, Action onFin, Action <uint, int, int> onProg)
        {
            bool flag = this.mapConfig[mapID];

            if (flag)
            {
                onFin();
            }
            else
            {
                Variant val = string.Concat(new object[]
                {
                    this.m_conf["serverURL"],
                    "?sid=",
                    this.m_conf["serverID"],
                    "&get_smap&id=",
                    mapID,
                    "&ver=",
                    StringUtil.make_version(this.m_conf["configVers"]["mpver"])
                });
                IURLReq iURLReq = os.net.CreateURLReq(val);
                iURLReq.dataFormat = "binary";
                iURLReq.load(delegate(IURLReq r, object ret)
                {
                    byte[] d       = ret as byte[];
                    ByteArray data = new ByteArray(d);
                    bool flag2     = !this.on_map_data(data);
                    if (flag2)
                    {
                        DebugTrace.add(Define.DebugTrace.DTT_ERR, "parser map id[" + mapID + "] config error");
                    }
                    onFin();
                }, delegate(IURLReq r, float progress)
                {
                    onProg(mapID, (int)(progress * 100f), 100);
                }, delegate(IURLReq r, string msg)
                {
                    DebugTrace.add(Define.DebugTrace.DTT_ERR, string.Concat(new object[]
                    {
                        "load map id[",
                        mapID,
                        "] config error msg: ",
                        msg
                    }));
                    onFin();
                });
            }
        }
예제 #4
0
        public void AddAttAni(AttAni ani)
        {
            if (ani == null)
            {
                return;
            }

            if (_attAnis.IndexOf(ani) >= 0)
            {
                DebugTrace.add(Define.DebugTrace.DTT_ERR, "AddAttAni ani already exist!");
                return;
            }

            _attAnis.Add(ani);

            ani.Start(this.g_mgr.g_netM.CurServerTimeStampMS);
        }
예제 #5
0
        public void AddAttAni(AttAni ani)
        {
            bool flag = ani == null;

            if (!flag)
            {
                bool flag2 = this._attAnis.IndexOf(ani) >= 0;
                if (flag2)
                {
                    DebugTrace.add(Define.DebugTrace.DTT_ERR, "AddAttAni ani already exist!");
                }
                else
                {
                    this._attAnis.Add(ani);
                    ani.Start((float)this.g_mgr.g_netM.CurServerTimeStampMS);
                }
            }
        }
예제 #6
0
        //        public function SvrMapConfig(s:ServerGameConfig)
        //        {
        //            super(s);
        //            simpleMapConfig = new Dictionary();
        //            mapConfig = new Dictionary();
        //            _npc_in_map_id = new Dictionary();
        //        }
        //public function prepareMapConfig(mapID:uint, onFin:Function, onProg:Function):void
        public void prepareMapConfig(uint mapID, Action onFin, Action <uint, int, int> onProg)
        {
            //if(mapID in mapConfig)
            if (mapConfig[mapID])
            {
                onFin();
                return;
            }
            //var url:String = _sc.serverURL+"?sid="+_sc.serverID+"&get_smap&id=" + mapID +"&ver=" + StringUtil.make_version(_sc.configVers.mpver);
            Variant url = m_conf["serverURL"] + "?sid=" + m_conf["serverID"] + "&get_smap&id=" + mapID + "&ver=" + StringUtil.make_version(m_conf["configVers"]["mpver"]);
            //var urlReq:URLReq = os.net.createURLReq(url);
            IURLReq urlReq = os.net.CreateURLReq(url);

            urlReq.dataFormat = NetConst.URL_DATA_FORMAT_BINARY;
            //()=>{}
            urlReq.load(
                //function (r:URLReq, data:ByteArray):void
                (IURLReq r, object ret) =>
            {
                byte[] data = ret as byte[];
                //if(!on_map_data(data))
                ByteArray confbyte = new ByteArray(data);
                if (!on_map_data(confbyte))
                {
                    //DebugTrace.add(DebugTrace.DTT_ERR, "parser map id["+mapID+"] config error");
                    DebugTrace.add(Define.DebugTrace.DTT_ERR, "parser map id[" + mapID + "] config error");
                }
                onFin();
            },
                //function (r:URLReq, bytesLoaded:uint, bytesTotal:uint):void
                (IURLReq r, float progress) =>
            {
                onProg(mapID, (int)(progress * 100), 100);
            },
                (IURLReq r, String msg) =>
            {
                //DebugTrace.add(DebugTrace.DTT_ERR, "load map id["+mapID+"] config error msg: " + msg);
                DebugTrace.add(Define.DebugTrace.DTT_ERR, "load map id[" + mapID + "] config error msg: " + msg);
                onFin();
            }
                );
        }
예제 #7
0
        public bool on_map_data(ByteArray data)
        {
            data.uncompress();
            uint    num     = (uint)data.readUnsignedShort();
            Variant variant = new Variant();

            this.mapConfig[num]           = variant;
            variant["param"]              = new Variant();
            variant["param"]["id"]        = num;
            variant["param"]["tile_size"] = data.readUnsignedShort();
            variant["param"]["width"]     = data.readUnsignedShort();
            variant["param"]["height"]    = data.readUnsignedShort();
            variant["param"]["tile_set"]  = data.readUnsignedShort();
            variant["param"]["pk"]        = data.readUnsignedByte();
            variant["param"]["name"]      = StringUtil.read_NTSTR(data, "utf-8");
            uint num2 = (uint)data.readUnsignedShort();

            variant["param"]["links_count"] = num2;
            variant["Link"] = new Variant();
            uint num3;

            for (num3 = 0u; num3 < num2; num3 += 1u)
            {
                Variant variant2 = new Variant();
                variant2["goto"] = data.readUnsignedShort();
                variant2["x"]    = data.readUnsignedShort();
                variant2["y"]    = data.readUnsignedShort();
                variant2["to_x"] = data.readUnsignedShort();
                variant2["to_y"] = data.readUnsignedShort();
                variant["Link"]._arr.Add(variant2);
            }
            uint num4 = (uint)data.readUnsignedShort();

            variant["Npc"] = new Variant();
            for (num3 = 0u; num3 < num4; num3 += 1u)
            {
                Variant variant3 = new Variant();
                variant3["nid"] = data.readUnsignedShort();
                variant3["x"]   = data.readShort();
                variant3["y"]   = data.readShort();
                variant3["nr"]  = data.readUnsignedShort();
                variant["Npc"]._arr.Add(variant3);
            }
            uint num5 = (uint)data.readUnsignedShort();

            variant["MapItems"] = new Variant();
            for (num3 = 0u; num3 < num5; num3 += 1u)
            {
                Variant variant4 = new Variant();
                variant4["iid"]       = data.readUnsignedShort();
                variant4["x"]         = data.readShort();
                variant4["y"]         = data.readShort();
                variant4["r"]         = data.readUnsignedByte();
                variant4["order"]     = data.readUnsignedByte();
                variant4["zorder"]    = data.readShort();
                variant4["blendMode"] = data.readUnsignedByte();
                variant["MapItems"]._arr.Add(variant4);
            }
            uint num6 = (uint)data.readUnsignedShort();

            variant["MapEffects"] = new Variant();
            for (num3 = 0u; num3 < num6; num3 += 1u)
            {
                Variant variant5 = new Variant();
                variant5["x"]         = data.readShort();
                variant5["y"]         = data.readShort();
                variant5["r"]         = data.readUnsignedByte();
                variant5["order"]     = data.readUnsignedByte();
                variant5["zorder"]    = data.readShort();
                variant5["blendMode"] = data.readUnsignedByte();
                variant5["obj"]       = StringUtil.read_NTSTR(data, "utf-8");
                variant["MapEffects"]._arr.Add(variant5);
            }
            uint num7 = (uint)data.readUnsignedShort();

            variant["MapMons"] = new Variant();
            for (num3 = 0u; num3 < num7; num3 += 1u)
            {
                Variant variant6 = new Variant();
                variant6["mid"] = data.readUnsignedShort();
                variant6["x"]   = data.readShort();
                variant6["y"]   = data.readShort();
                variant["MapMons"]._arr.Add(variant6);
            }
            ByteArray byteArray = new ByteArray();

            data.readBytes(byteArray, 0, data.length);
            variant["gridData"] = new Variant();
            num3 = 0u;
            while ((ulong)num3 < (ulong)((long)byteArray.length))
            {
                variant["gridData"]._arr.Add(byteArray.readUnsignedShort());
                num3 += 2u;
            }
            bool flag = variant["gridData"]["length"] < variant["param"]["width"] * variant["param"]["height"];

            if (flag)
            {
                DebugTrace.add(Define.DebugTrace.DTT_ERR, string.Concat(new object[]
                {
                    "map id[",
                    num,
                    "] width[",
                    variant["param"]["width"],
                    "] height[",
                    variant["param"]["height"],
                    "] grid data length[",
                    variant["gridData"]["length"],
                    "] err"
                }));
            }
            return(true);
        }
예제 #8
0
 static public void PrintProfile(string msg)
 {
     DebugTrace.add(Define.DebugTrace.DTT_SYS, " < =========================== Profile  =========================== > \n" + msg);
 }
예제 #9
0
 static public void PrintNotice(string msg)
 {
     DebugTrace.add(Define.DebugTrace.DTT_SYS, " < =========================== Notice  =========================== > \n" + msg);
 }
예제 #10
0
 static public void PrintSystem(string msg)
 {
     DebugTrace.add(Define.DebugTrace.DTT_SYS, " < =========================== SYSTEM  =========================== > \n" + msg);
 }
예제 #11
0
 static public void PrintDetial(string msg)
 {
     DebugTrace.add(Define.DebugTrace.DTT_DTL, msg);
 }
예제 #12
0
 static public void PrintError(string msg)
 {
     DebugTrace.add(Define.DebugTrace.DTT_ERR, " < =========================== ERROR  =========================== > \n" + msg);
 }
예제 #13
0
 static public void PrintCrash(string msg)
 {
     DebugTrace.add(Define.DebugTrace.DTT_ERR, " < =========================== Crash  =========================== > \n" + msg);
 }
예제 #14
0
        /**
         * 成功获取指定版本的单个地图信息
         */
        //public function on_map_data(data:ByteArray):Boolean
        public Boolean on_map_data(ByteArray data)
        {
            data.uncompress();

            //var map_id:uint = data.readUnsignedShort();
            uint map_id = data.readUnsignedShort();

            //var mapInfo:Object = new Object();
            Variant mapInfo = new Variant();

            mapConfig[map_id] = mapInfo;


            //mapInfo.param = new Object();
            //mapInfo.param.id = map_id;
            mapInfo["param"]       = new Variant();
            mapInfo["param"]["id"] = map_id;

            //mapInfo.param.tile_size = data.readUnsignedShort();
            mapInfo["param"]["tile_size"] = data.readUnsignedShort();
            //mapInfo.param.width = data.readUnsignedShort();
            mapInfo["param"]["width"] = data.readUnsignedShort();
            //mapInfo.param.height = data.readUnsignedShort();
            mapInfo["param"]["height"] = data.readUnsignedShort();
            //mapInfo.param.tile_set = data.readUnsignedShort();
            mapInfo["param"]["tile_set"] = data.readUnsignedShort();
            //mapInfo.param.pk = data.readUnsignedByte();
            mapInfo["param"]["pk"] = data.readUnsignedByte();
            //mapInfo.param.name = StringUtil.read_NTSTR(data);
            //map["name"] = StringUtil.read_NTSTR(data,"");或
            mapInfo["param"]["name"] = StringUtil.read_NTSTR(data, "utf-8");

            //var links_count:uint = data.readUnsignedShort();
            uint links_count = data.readUnsignedShort();

            //mapInfo.param.links_count = links_count;
            mapInfo["param"]["links_count"] = links_count;
            //mapInfo.Link = new Array();
            mapInfo["Link"] = new Variant();

            //var i:uint = 0;
            uint i = 0;

            for (; i < links_count; ++i)
            {
                //var link_t:Object = new Object();
                Variant link_t = new Variant();

                //link_t.goto = data.readUnsignedShort();
                link_t["goto"] = data.readUnsignedShort();
                //link_t.x = data.readUnsignedShort();
                link_t["x"] = data.readUnsignedShort();
                //link_t.y = data.readUnsignedShort();
                link_t["y"] = data.readUnsignedShort();
                //link_t.to_x = data.readUnsignedShort();
                link_t["to_x"] = data.readUnsignedShort();
                //link_t.to_y = data.readUnsignedShort();
                link_t["to_y"] = data.readUnsignedShort();
                //mapInfo.Link.push(link_t);
                mapInfo["Link"]._arr.Add(link_t);
                //mapInfo ._arr .Add (link_t);
            }

            //var npcs_count:uint = data.readUnsignedShort();
            uint npcs_count = data.readUnsignedShort();

            //mapInfo.Npc = new Array();
            mapInfo["Npc"] = new Variant();

            for (i = 0; i < npcs_count; ++i)
            {
                //var npc_t:Object = new Object();
                Variant npc_t = new Variant();

                //npc_t.nid = data.readUnsignedShort();
                //npc_t.x = data.readShort();
                //npc_t.y = data.readShort();
                //npc_t.nr = data.readUnsignedShort();
                npc_t["nid"] = data.readUnsignedShort();
                npc_t["x"]   = data.readShort();
                npc_t["y"]   = data.readShort();
                npc_t["nr"]  = data.readUnsignedShort();

                //mapInfo.Npc.push(npc_t);
                mapInfo["Npc"]._arr.Add(npc_t);
            }

            //var map_item_count:uint = data.readUnsignedShort();
            uint map_item_count = data.readUnsignedShort();

            //mapInfo.MapItems = new Array();
            mapInfo["MapItems"] = new Variant();

            for (i = 0; i < map_item_count; ++i)
            {
                //var map_item_t:Object = new Object();
                Variant map_item_t = new Variant();

                //map_item_t.iid = data.readUnsignedShort();
                //map_item_t.x = data.readShort();
                //map_item_t.y = data.readShort();
                //map_item_t.r = data.readUnsignedByte();
                //map_item_t.order = data.readUnsignedByte();
                //map_item_t.zorder = data.readShort();
                //map_item_t.blendMode = data.readUnsignedByte();
                map_item_t["iid"]       = data.readUnsignedShort();
                map_item_t["x"]         = data.readShort();
                map_item_t["y"]         = data.readShort();
                map_item_t["r"]         = data.readUnsignedByte();
                map_item_t["order"]     = data.readUnsignedByte();
                map_item_t["zorder"]    = data.readShort();
                map_item_t["blendMode"] = data.readUnsignedByte();

                //mapInfo.MapItems.push(map_item_t);
                mapInfo["MapItems"]._arr.Add(map_item_t);
            }

            //var map_effect_count:uint = data.readUnsignedShort();
            uint map_effect_count = data.readUnsignedShort();

            //mapInfo.MapEffects = new Array();
            mapInfo["MapEffects"] = new Variant();

            for (i = 0; i < map_effect_count; ++i)
            {
                //var map_effect_t:Object = new Object();
                Variant map_effect_t = new Variant();

                //map_effect_t.x = data.readShort();
                //map_effect_t.y = data.readShort();
                //map_effect_t.r = data.readUnsignedByte();
                //map_effect_t.order = data.readUnsignedByte();
                //map_effect_t.zorder = data.readShort();
                //map_effect_t.blendMode = data.readUnsignedByte();
                //map_effect_t.obj = StringUtil.read_NTSTR(data);
                map_effect_t["x"]         = data.readShort();
                map_effect_t["y"]         = data.readShort();
                map_effect_t["r"]         = data.readUnsignedByte();
                map_effect_t["order"]     = data.readUnsignedByte();
                map_effect_t["zorder"]    = data.readShort();
                map_effect_t["blendMode"] = data.readUnsignedByte();
                //map["name"] = StringUtil.read_NTSTR(data,"");或
                map_effect_t["obj"] = StringUtil.read_NTSTR(data, "utf-8");

                //mapInfo.MapEffects.push(map_effect_t);
                mapInfo["MapEffects"]._arr.Add(map_effect_t);
            }

            //var monster_count:uint = data.readUnsignedShort();
            uint monster_count = data.readUnsignedShort();

            //mapInfo.MapMons = new Array();
            mapInfo["MapMons"] = new Variant();

            for (i = 0; i < monster_count; ++i)
            {
                //var monster_t:Object = new Object();
                Variant monster_t = new Variant();

                //monster_t.mid = data.readUnsignedShort();
                //monster_t.x = data.readShort();
                //monster_t.y = data.readShort();
                monster_t["mid"] = data.readUnsignedShort();
                monster_t["x"]   = data.readShort();
                monster_t["y"]   = data.readShort();

                //mapInfo.MapMons.push(monster_t);
                mapInfo["MapMons"]._arr.Add(monster_t);
            }

            //var grid_data:ByteArray = new ByteArray();
            ByteArray grid_data = new ByteArray();

            //grid_data.endian= Endian.LITTLE_ENDIAN;
            //grid_data.m_endian =Define.Endian.LITTLE_ENDIAN;//!!!!!!

            //data.readBytes(grid_data);
            data.readBytes(grid_data, 0, data.length);


            //mapInfo.gridData = new Array();
            mapInfo["gridData"] = new Variant();
            for (i = 0; i < grid_data.length; i += 2)
            {
                //mapInfo.gridData.push(grid_data.readUnsignedShort());
                mapInfo["gridData"]._arr.Add(grid_data.readUnsignedShort());
            }

            //if(mapInfo.gridData.length < mapInfo.param.width*mapInfo.param.height)
            if (mapInfo["gridData"]["length"] < mapInfo["param"]["width"] * mapInfo["param"]["height"])
            {
                // err : grid data length not match
                //DebugTrace.add(DebugTrace.DTT_ERR, "map id["+map_id+"] width["+mapInfo.param.width+"] height["+mapInfo.param.height+"] grid data length["+mapInfo.gridData.length+"] err");
                DebugTrace.add(Define.DebugTrace.DTT_ERR, "map id[" + map_id + "] width[" + mapInfo["param"]["width"] + "] height[" + mapInfo["param"]["height"] + "] grid data length[" + mapInfo["gridData"]["length"] + "] err");
            }

            return(true);
        }