Beispiel #1
0
        private void buttonRedo_Click(object sender, EventArgs e)
        {
            //vérifier si on est bien sur un IUseCommand (par exemple DDSContainer n'en est pas un)
            IUseCommand selectedDockContainer = (IUseCommand)MainBar.Items[MainBar.SelectedDockTab];

            selectedDockContainer.getManager().recoCommand();
        }
Beispiel #2
0
        public sbyte Use(int count, PlayerInstance player)
        {
            sbyte result      = (sbyte)CSCommon.eRet_UseItem.Succeed;
            var   useTemplate = CSTable.StaticDataManager.ItemUse[ItemData.Template.ItemUseId];

            if (useTemplate == null)
            {
                result = (sbyte)CSCommon.eRet_UseItem.TplNull;
                Log.Log.Item.Print("useTemplate == null id={0}", ItemData.Template.ItemUseId);
                return(result);
            }
            if (Script == null)
            {
                Script = System.Activator.CreateInstance(Type.GetType(string.Format("ServerCommon.Planes.{0}", useTemplate.ItemUseMethod)), null) as IUseCommand;
                if (Script == null)
                {
                    result = (sbyte)CSCommon.eRet_UseItem.MethodNull;
                    Log.Log.Item.Print("ERROR:item Use,CreateInstance={0}", useTemplate.ItemUseMethod);
                    return(result);
                }
            }
            int useResult = Script.Execute(player, count, useTemplate.Arg1, useTemplate.Arg2, useTemplate.Arg3);

            if (useResult < 0)
            {
                result = (sbyte)useResult;
            }
            else
            {
                if (useResult > 0)
                {
                    mItemData.StackNum -= useResult;
                    if (mItemData.StackNum > 0)
                    {
                        RPC.PackageWriter pkg = new RPC.PackageWriter();
                        Wuxia.H_RpcRoot.smInstance.RPC_ItemStackNumChanged(pkg, mItemData.ItemId, (byte)mItemData.Inventory, mItemData.StackNum);
                        pkg.DoCommandPlanes2Client(player.Planes2GateConnect, player.ClientLinkId);
                    }
                    else
                    {
                        Inventory.DeleteItem(mItemData.ItemId);
                    }
                }
            }
            return(result);
        }