├── LICENSE
├── NFComm
├── NFActor
│ ├── NFActor.csproj
│ ├── NFCActor.cs
│ ├── NFCActorMng.cs
│ ├── NFCScheduler.cs
│ ├── NFIActor.cs
│ ├── NFIActorMessage.cs
│ ├── NFIActorMng.cs
│ ├── NFIScheduler.cs
│ ├── NFTest.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── NFKernelPlugin
│ ├── Interface
│ │ ├── NFBehaviour.cs
│ │ ├── NFGUID.cs
│ │ ├── NFIDataList.cs
│ │ ├── NFIElement.cs
│ │ ├── NFIElementModule.cs
│ │ ├── NFIEvent.cs
│ │ ├── NFIEventManager.cs
│ │ ├── NFIHeartBeat.cs
│ │ ├── NFIHeartBeatManager.cs
│ │ ├── NFIKernelModule.cs
│ │ ├── NFILogicClass.cs
│ │ ├── NFILogicClassModule.cs
│ │ ├── NFILogicModule.cs
│ │ ├── NFIObject.cs
│ │ ├── NFIProperty.cs
│ │ ├── NFIPropertyManager.cs
│ │ ├── NFIRecord.cs
│ │ └── NFIRecordManager.cs
│ ├── NFCDataList.cs
│ ├── NFCElement.cs
│ ├── NFCElementModule.cs
│ ├── NFCEvent.cs
│ ├── NFCEventModule.cs
│ ├── NFCKernelModule.cs
│ ├── NFCLogicClass.cs
│ ├── NFCLogicClassModule.cs
│ ├── NFKernelPlugin.cs
│ ├── NFKernelPlugin.csproj
│ ├── Object
│ │ ├── NFCHeartBeat.cs
│ │ ├── NFCHeartBeatManager.cs
│ │ ├── NFCObject.cs
│ │ ├── NFCProperty.cs
│ │ ├── NFCPropertyManager.cs
│ │ ├── NFCRecord.cs
│ │ └── NFCRecordManager.cs
│ └── app.config
├── NFMessageDefine
│ ├── Licence.txt
│ ├── NFDefine.cs
│ ├── NFDefine.proto
│ ├── NFFleetingDefine.cs
│ ├── NFFleetingDefine.proto
│ ├── NFMessageDefine.csproj
│ ├── NFMsgBase.cs
│ ├── NFMsgBase.proto
│ ├── NFMsgBaseEx.cs
│ ├── NFMsgBaseEx.proto
│ ├── NFMsgPreGame.cs
│ ├── NFMsgPreGame.proto
│ ├── NFMsgShare.cs
│ ├── NFMsgShare.proto
│ ├── NFRecordDefine.cs
│ ├── NFRecordDefine.proto
│ ├── NFSLGDefine.cs
│ ├── NFSLGDefine.proto
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── common.xslt
│ ├── cpp.bat
│ ├── cs.bat
│ ├── csharp.xslt
│ ├── makefile
│ ├── protobuf-net.dll
│ ├── protobuf-net.xml
│ ├── protoc-license.txt
│ ├── protoc.exe
│ ├── protogen.exe
│ ├── protogen.exe.config
│ ├── vb.xslt
│ └── xml.xslt
├── NFNetPlugin
│ ├── NFCConsistentHash.cs
│ ├── NFCNet.cs
│ ├── NFClusterClientModule.cs
│ ├── NFIClusterClientModule.cs
│ ├── NFIConsistentHash.cs
│ ├── NFINet.cs
│ ├── NFNetHandler.cs
│ ├── NFNetModule.cs
│ ├── NFNetPlugin.cs
│ ├── NFNetPlugin.csproj
│ └── Properties
│ │ └── AssemblyInfo.cs
├── NFPluginLoader
│ ├── App.config
│ ├── App.cs
│ ├── NFCDynLib.cs
│ ├── NFCPluginManager.cs
│ ├── NFPluginLoader.csproj
│ └── Properties
│ │ └── AssemblyInfo.cs
└── NFPluginModule
│ ├── NFBehaviour.cs
│ ├── NFComm.csproj
│ ├── NFGUID.cs
│ ├── NFIClusterClientModule.cs
│ ├── NFIComponent.cs
│ ├── NFILogicModule.cs
│ ├── NFIPlugin.cs
│ ├── NFIPluginManager.cs
│ ├── NFServer_def.cs
│ └── Properties
│ └── AssemblyInfo.cs
├── NFDep
├── NFNet
│ ├── .travis.yml
│ ├── ExportNet.h
│ ├── NFCNet.cpp
│ ├── NFCNet.h
│ ├── NFClient.cbp
│ ├── NFINet.h
│ ├── NFNet.cbp
│ ├── NFNet.vcxproj
│ ├── NFNetTestClient.vcxproj
│ ├── NFNetTestServer.vcxproj
│ ├── NFServer.cbp
│ ├── TestClient.cpp
│ ├── TestServer.cpp
│ └── makefile
└── protobuf-net
│ ├── BclHelpers.cs
│ ├── BufferExtension.cs
│ ├── BufferPool.cs
│ ├── CallbackAttributes.cs
│ ├── Compiler
│ ├── CompilerContext.cs
│ ├── CompilerDelegates.cs
│ └── Local.cs
│ ├── DataFormat.cs
│ ├── Extensible.cs
│ ├── ExtensibleUtil.cs
│ ├── GlobalSuppressions.cs
│ ├── Helpers.cs
│ ├── IExtensible.cs
│ ├── IExtension.cs
│ ├── ImplicitFields.cs
│ ├── KeyValuePairProxy.cs
│ ├── Meta
│ ├── AttributeMap.cs
│ ├── BasicList.cs
│ ├── CallbackSet.cs
│ ├── MetaType.cs
│ ├── RuntimeTypeModel.cs
│ ├── SubType.cs
│ ├── TypeFormatEventArgs.cs
│ ├── TypeModel.cs
│ └── ValueMember.cs
│ ├── NetObjectCache.cs
│ ├── PrefixStyle.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── ProtoContractAttribute.cs
│ ├── ProtoConverterAttribute.cs
│ ├── ProtoEnumAttribute.cs
│ ├── ProtoException.cs
│ ├── ProtoIgnoreAttribute.cs
│ ├── ProtoIncludeAttribute.cs
│ ├── ProtoMemberAttribute.cs
│ ├── ProtoReader.cs
│ ├── ProtoWriter.cs
│ ├── SerializationContext.cs
│ ├── Serializer.cs
│ ├── Serializers
│ ├── ArrayDecorator.cs
│ ├── BlobSerializer.cs
│ ├── BooleanSerializer.cs
│ ├── ByteSerializer.cs
│ ├── CharSerializer.cs
│ ├── CompiledSerializer.cs
│ ├── DateTimeSerializer.cs
│ ├── DecimalSerializer.cs
│ ├── DefaultValueDecorator.cs
│ ├── DoubleSerializer.cs
│ ├── EnumSerializer.cs
│ ├── FieldDecorator.cs
│ ├── GuidSerializer.cs
│ ├── IProtoSerializer.cs
│ ├── IProtoTypeSerializer.cs
│ ├── ISerializerProxy.cs
│ ├── ImmutableCollectionDecorator.cs
│ ├── Int16Serializer.cs
│ ├── Int32Serializer.cs
│ ├── Int64Serializer.cs
│ ├── KeyValuePairDecorator.cs
│ ├── ListDecorator.cs
│ ├── MemberSpecifiedDecorator.cs
│ ├── NetObjectSerializer.cs
│ ├── NullDecorator.cs
│ ├── ParseableSerializer.cs
│ ├── PropertyDecorator.cs
│ ├── ProtoDecoratorBase.cs
│ ├── SByteSerializer.cs
│ ├── SingleSerializer.cs
│ ├── StringSerializer.cs
│ ├── SubItemSerializer.cs
│ ├── SurrogateSerializer.cs
│ ├── SystemTypeSerializer.cs
│ ├── TagDecorator.cs
│ ├── TimeSpanSerializer.cs
│ ├── TupleSerializer.cs
│ ├── TypeSerializer.cs
│ ├── UInt16Serializer.cs
│ ├── UInt32Serializer.cs
│ ├── UInt64Serializer.cs
│ └── UriDecorator.cs
│ ├── ServiceModel
│ ├── ProtoBehaviorAttribute.cs
│ ├── ProtoBehaviorExtensionElement.cs
│ ├── ProtoEndpointBehavior.cs
│ ├── ProtoOperationBehavior.cs
│ └── XmlProtoSerializer.cs
│ ├── SubItemToken.cs
│ ├── Web
│ └── TODO.txt
│ ├── WireType.cs
│ └── protobuf-net.csproj
├── NFServer
├── NFGameServerPlugin
│ ├── NFCGameServerNetModule.cs
│ ├── NFCGameToWorldModule.cs
│ ├── NFGameServerPlugin.cs
│ ├── NFGameServerPlugin.csproj
│ ├── NFIGameServerNetModule.cs
│ ├── NFIGameToWorldModule.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── NFLoginServerPlugin
│ ├── NFCLoginServerNetModule.cs
│ ├── NFILoginServerNetModule.cs
│ ├── NFLoginServerPlugin.cs
│ ├── NFLoginServerPlugin.csproj
│ └── Properties
│ │ └── AssemblyInfo.cs
├── NFMasterServerPlugin
│ ├── NFCMasterServerNetModule.cs
│ ├── NFIMasterServerNetModule.cs
│ ├── NFMasterServerPlugin.cs
│ ├── NFMasterServerPlugin.csproj
│ └── Properties
│ │ └── AssemblyInfo.cs
├── NFProxyServerPlugin
│ ├── NFCProxyServerNet_ServerModule.cs
│ ├── NFCProxyToGameModule.cs
│ ├── NFCProxyToWorldModule.cs
│ ├── NFIProxyServerNet_ServerModule.cs
│ ├── NFIProxyToGameModule.cs
│ ├── NFIProxyToWorldModule.cs
│ ├── NFProxyServerPlugin.cs
│ ├── NFProxyServerPlugin.csproj
│ └── Properties
│ │ └── AssemblyInfo.cs
└── NFWorldServerPlugin
│ ├── NFCWorldServerNetModule.cs
│ ├── NFCWorldToMasterModule.cs
│ ├── NFIWorldServerNetModule.cs
│ ├── NFIWorldToMasterModule.cs
│ ├── NFWorldServerPlugin.cs
│ ├── NFWorldServerPlugin.csproj
│ └── Properties
│ └── AssemblyInfo.cs
├── NFrame.sln
├── README.md
└── _Out
├── Debug
├── NFGameServer
│ └── Plugin.xml
├── NFLoginServer
│ └── Plugin.xml
├── NFMasterServer
│ └── Plugin.xml
├── NFProxyServer
│ └── Plugin.xml
└── NFWorldServer
│ └── Plugin.xml
├── Lib
└── Plugin.xml
├── NFDatacfg
├── Excel_Ini
│ ├── BB_Build.xlsx
│ ├── BB_Player.xlsx
│ ├── Buff.xlsx
│ ├── ChatGroup.xlsx
│ ├── Cost.xlsx
│ ├── EffectData.xlsx
│ ├── Equip.xlsx
│ ├── Guild.xlsx
│ ├── GuildName.xlsx
│ ├── Hero.xlsx
│ ├── IObject.xlsx
│ ├── InitProperty.xlsx
│ ├── Item.xlsx
│ ├── Language.xlsx
│ ├── NPC.xlsx
│ ├── Player.xlsx
│ ├── Scene.xlsx
│ ├── Server.xlsx
│ ├── Shop.xlsx
│ ├── Skill.xlsx
│ ├── SkillRef.xlsx
│ ├── SqlServer.xlsx
│ ├── StateFuncResources.xlsx
│ ├── StateFunction.xlsx
│ └── Task.xlsx
├── Excel_Struct
│ ├── BB_Build.xlsx
│ ├── BB_Player.xlsx
│ ├── Buff.xlsx
│ ├── ChatGroup.xlsx
│ ├── Cost.xlsx
│ ├── EffectData.xlsx
│ ├── Equip.xlsx
│ ├── Guild.xlsx
│ ├── GuildName.xlsx
│ ├── IObject.xlsx
│ ├── InitProperty.xlsx
│ ├── Item.xlsx
│ ├── Language.xlsx
│ ├── NPC.xlsx
│ ├── Player.xlsx
│ ├── Scene.xlsx
│ ├── Server.xlsx
│ ├── Shop.xlsx
│ ├── Skill.xlsx
│ ├── SkillRef.xlsx
│ ├── SqlServer.xlsx
│ ├── StateFuncResources.xlsx
│ ├── StateFunction.xlsx
│ └── Task.xlsx
├── Ini
│ ├── Components
│ │ └── Test.lua
│ ├── FleetingSystem
│ │ ├── ActionHero.xml
│ │ ├── Alch_plate.xml
│ │ ├── Demo.xml
│ │ ├── Elves.xml
│ │ └── test.xml
│ ├── NFZoneServer
│ │ └── Scene
│ │ │ ├── CloneScene
│ │ │ ├── File.xml
│ │ │ └── Npc.xml
│ │ │ ├── PioneerNoob
│ │ │ ├── File.xml
│ │ │ └── NPC.xml
│ │ │ └── RebellerNoob
│ │ │ ├── File.xml
│ │ │ └── Npc.xml
│ └── NPC
│ │ ├── BB_Build.NF
│ │ ├── BB_Player.NF
│ │ ├── Buff.NF
│ │ ├── ChatGroup.NF
│ │ ├── Cost.NF
│ │ ├── EffectData.NF
│ │ ├── Equip.NF
│ │ ├── Guild.NF
│ │ ├── GuildName.NF
│ │ ├── Hero.NF
│ │ ├── IObject.NF
│ │ ├── InitProperty.NF
│ │ ├── Item.NF
│ │ ├── Language.NF
│ │ ├── NPC.NF
│ │ ├── Player.NF
│ │ ├── Scene.NF
│ │ ├── Server.NF
│ │ ├── Shop.NF
│ │ ├── Skill.NF
│ │ ├── SkillRef.NF
│ │ ├── SqlServer.NF
│ │ ├── StateFuncResources.NF
│ │ ├── StateFunction.NF
│ │ └── Task.NF
├── Struct
│ ├── Class
│ │ ├── BB_Build.NF
│ │ ├── BB_Player.NF
│ │ ├── Buff.NF
│ │ ├── ChatGroup.NF
│ │ ├── Cost.NF
│ │ ├── EffectData.NF
│ │ ├── Equip.NF
│ │ ├── Guild.NF
│ │ ├── GuildName.NF
│ │ ├── IObject.NF
│ │ ├── InitProperty.NF
│ │ ├── Item.NF
│ │ ├── Language.NF
│ │ ├── NPC.NF
│ │ ├── Player.NF
│ │ ├── Scene.NF
│ │ ├── Server.NF
│ │ ├── Shop.NF
│ │ ├── Skill.NF
│ │ ├── SkillRef.NF
│ │ ├── SqlServer.NF
│ │ ├── StateFuncResources.NF
│ │ ├── StateFunction.NF
│ │ └── Task.NF
│ └── LogicClass.NF
├── Tool
│ ├── Aspose.Cells.dll
│ ├── CSkin.dll
│ ├── FileProcess.exe
│ ├── Tool_snap.png
│ └── conf
├── mysql
│ ├── NFrame.sql
│ └── app_test.sql
└── proto
│ └── NFRecordDefine.proto
└── Release
├── NFGameServer
└── Plugin.xml
├── NFLoginServer
└── Plugin.xml
├── NFMasterServer
└── Plugin.xml
├── NFProxyServer
└── Plugin.xml
└── NFWorldServer
└── Plugin.xml
/NFComm/NFActor/NFCScheduler.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Concurrent;
8 | using System.Collections.Generic;
9 | using System.Linq;
10 | using System.Text;
11 | using System.Threading.Tasks;
12 | using System.Threading;
13 |
14 | namespace NFrame
15 | {
16 | public class NFCScheduler : NFIScheduler
17 | {
18 | public NFCScheduler(NFIActorMng xMng)
19 | {
20 | ThreadPool.SetMaxThreads(1024, 1024);
21 | ThreadPool.SetMinThreads(16, 16);
22 |
23 | mxActorMng = xMng;
24 | mxTask = Task.Factory.StartNew(ExecuteScheduler, this);
25 | }
26 |
27 | private static void ExecuteScheduler(object x)
28 | {
29 | NFIScheduler xScheduler = (NFIScheduler)x;
30 | while (true && null != xScheduler)
31 | {
32 | //Thread.Sleep(5);
33 |
34 | xScheduler.Execute();
35 | }
36 | }
37 | /////////////////////////////////////////////////////////////
38 | public override void AddToScheduler(NFGUID xID)
39 | {
40 | mxWaitScheduler.Enqueue(xID);
41 | }
42 |
43 | public override void Execute()
44 | {
45 | NFGUID xID = null;
46 | while (mxWaitScheduler.TryDequeue(out xID))
47 | {
48 | NFIActor xActor = mxActorMng.GetActor(xID);
49 | if (null != xActor && xActor.GetNumQueuedMessages() > 0)
50 | {
51 | //分配一个空闲的thread去隔天actor执行任务
52 | Task.Factory.StartNew(NFCActor.ExecuteAsync, xActor);
53 | }
54 | }
55 | }
56 |
57 | /////////////////////////////////////////////////////////////
58 |
59 | private readonly NFIActorMng mxActorMng;
60 | private readonly Task mxTask;
61 | private readonly ConcurrentQueue mxWaitScheduler = new ConcurrentQueue();
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/NFComm/NFActor/NFIActor.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Concurrent;
8 | using System.Collections.Generic;
9 | using System.Linq;
10 | using System.Text;
11 | using System.Threading;
12 | using System.Threading.Tasks;
13 |
14 | namespace NFrame
15 | {
16 | public abstract class NFIActor : NFBehaviour
17 | {
18 | public delegate void Handler(NFIActorMessage xMessage);
19 |
20 | public abstract bool RegisterHandler(Handler handler);
21 |
22 | public abstract NFGUID GetAddress();
23 | public abstract int GetNumQueuedMessages();
24 | public abstract bool PushMessages(NFGUID from, NFIActorMessage xMessage);
25 |
26 | public abstract bool AddComponent(Type xType);
27 | public abstract NFBehaviour GetComponent(Type xType);
28 |
29 | public T GetComponent()
30 | {
31 | Type xType = typeof(T);
32 | object xBehaviour = GetComponent(xType);
33 | if (null != xBehaviour)
34 | {
35 | return (T)xBehaviour;
36 | }
37 |
38 | return default(T);
39 | }
40 |
41 | public bool AddComponent()
42 | {
43 | Type xType = typeof(T);
44 | if (xType.IsSubclassOf(typeof(NFIComponent)))
45 | {
46 | return AddComponent(xType);
47 | }
48 |
49 | return false;
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/NFComm/NFActor/NFIActorMessage.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Concurrent;
8 | using System.Collections.Generic;
9 | using System.Linq;
10 | using System.Text;
11 | using System.Threading;
12 | using System.Threading.Tasks;
13 |
14 | namespace NFrame
15 | {
16 | public class NFIActorMessage
17 | {
18 | public NFIActorMessage()
19 | {
20 | eType = EACTOR_MESSAGE_ID.EACTOR_UNKNOW;
21 | bAsync = true;
22 | bReturn = true;
23 | nSubMsgID = 0;
24 |
25 | t = new System.DateTime();
26 | t = System.DateTime.Now;
27 | }
28 |
29 | public NFIActorMessage(NFIActorMessage x)
30 | {
31 | eType = x.eType;
32 | bAsync = x.bAsync;
33 | bReturn = x.bReturn;
34 | nSubMsgID = x.nSubMsgID;
35 | nFromActor = x.nFromActor;
36 | nMasterActor = x.nMasterActor;
37 | if (null != x.xMasterHandler)
38 | {
39 | xMasterHandler = new ConcurrentQueue(x.xMasterHandler);
40 | }
41 |
42 | if (null != x.data)
43 | {
44 | data = (string)x.data.Clone();
45 | }
46 | }
47 |
48 | public enum EACTOR_MESSAGE_ID
49 | {
50 | EACTOR_UNKNOW,
51 |
52 | EACTOR_INIT,
53 | EACTOR_AFTER_INIT,
54 | EACTOR_EXCUTE,
55 | EACTOR_BEFORE_SHUT,
56 | EACTOR_SHUT,
57 |
58 | EACTOR_NET_MSG,
59 | EACTOR_TRANS_MSG,
60 | EACTOR_LOG_MSG,
61 | EACTOR_EVENT_MSG,
62 | EACTOR_DATA_MSG,
63 |
64 | EACTOR_TEST_MSG,
65 | }
66 |
67 | public EACTOR_MESSAGE_ID eType;
68 | public bool bAsync;//true=异步,false=同步,默认异步
69 | public bool bReturn;
70 | public int nSubMsgID;
71 | public NFGUID nFromActor;
72 | public NFGUID nMasterActor;
73 | public ConcurrentQueue xMasterHandler;
74 | public string data;
75 | public DateTime t;
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/NFComm/NFActor/NFIActorMng.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public abstract class NFIActorMng : NFBehaviour
15 | {
16 | public abstract NFGUID CreateActor();
17 | public abstract NFGUID CreateActor(NFIActor.Handler handler);
18 |
19 | public abstract NFIScheduler GetScheduler();
20 |
21 | public abstract NFIActor GetActor(NFGUID xID);
22 | public abstract bool ReleaseActor(NFGUID xID);
23 |
24 | public abstract void ReleaseAllActor();
25 |
26 | public abstract bool RegisterHandler(NFGUID xID, NFIActor.Handler handler);
27 | public abstract bool SendMsg(NFGUID address, NFGUID from, NFIActorMessage xMessage);
28 |
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/NFComm/NFActor/NFIScheduler.cs:
--------------------------------------------------------------------------------
1 |
2 | //-----------------------------------------------------------------------
3 | //
4 | // Copyright (C) 2015-2015 lvsheng.huang
5 | //
6 | //-----------------------------------------------------------------------
7 | using System;
8 | using System.Collections.Generic;
9 | using System.Linq;
10 | using System.Text;
11 | using System.Threading.Tasks;
12 |
13 | namespace NFrame
14 | {
15 | public abstract class NFIScheduler : NFBehaviour
16 | {
17 | public abstract void AddToScheduler(NFGUID xID);
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/NFComm/NFActor/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFActor")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFActor")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("5062b362-0033-465b-ad0a-6f92c9c6b8f5")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFBehaviour.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | #define NF_CLIENT_FRAME
7 |
8 | using System;
9 | using System.Collections.Generic;
10 | using System.Linq;
11 | using System.Text;
12 | using System.Threading;
13 | using System.Collections.ObjectModel;
14 |
15 | namespace NFrame
16 | {
17 | public class NFBehaviour : IDisposable
18 | {
19 | public virtual void Dispose()
20 | {
21 | }
22 |
23 | public virtual void Init(){}
24 |
25 | public virtual void AfterInit() {}
26 |
27 | public virtual void BeforeShut() {}
28 |
29 | public virtual void Shut() {}
30 |
31 | public virtual void Execute() {}
32 |
33 | public virtual void SetSelf(NFGUID xID) { mxID = xID; }
34 | public virtual NFGUID Self() { return mxID; }
35 |
36 | private NFGUID mxID = new NFGUID();
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIElement.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace NFrame
7 | {
8 | public abstract class NFIElement
9 | {
10 | public abstract NFIPropertyManager GetPropertyManager();
11 |
12 | public abstract Int64 QueryInt(string strName);
13 | public abstract float QueryFloat(string strName);
14 | public abstract double QueryDouble(string strName);
15 | public abstract string QueryString(string strName);
16 | public abstract NFGUID QueryObject(string strName);
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIElementModule.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace NFrame
7 | {
8 | public abstract class NFIElementModule : NFILogicModule
9 | {
10 | public NFIElementModule()
11 | {
12 | }
13 |
14 | public abstract bool Load();
15 | public abstract bool Clear();
16 |
17 | public abstract bool ExistElement(string strConfigName);
18 | public abstract bool AddElement(string strName, NFIElement xElement);
19 | public abstract NFIElement GetElement(string strConfigName);
20 |
21 | public abstract Int64 QueryPropertyInt(string strConfigName, string strPropertyName);
22 | public abstract float QueryPropertyFloat(string strConfigName, string strPropertyName);
23 | public abstract double QueryPropertyDouble(string strConfigName, string strPropertyName);
24 | public abstract string QueryPropertyString(string strConfigName, string strPropertyName);
25 | }
26 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIEvent.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace NFrame
7 | {
8 | public abstract class NFIEvent
9 | {
10 | public delegate void EventHandler(NFGUID self, int nEventID, NFIDataList initValueList, NFIDataList valueList);
11 |
12 | public abstract void RegisterCallback(NFIEvent.EventHandler handler);
13 | public abstract void DoEvent(NFIDataList valueList);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIEventManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace NFrame
7 | {
8 | public abstract class NFIEventModule : NFILogicModule
9 | {
10 | public abstract void RegisterCallback(NFGUID self, int nEventID, NFIEvent.EventHandler handler, NFIDataList valueList);
11 | public abstract void DoEvent(NFGUID self, int nEventID, NFIDataList valueList);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIHeartBeat.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Text;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 |
7 | namespace NFrame
8 | {
9 | public abstract class NFIHeartBeat
10 | {
11 | public delegate void HeartBeatEventHandler(NFGUID self, string strHeartBeat, float fTime, int nRemainCount);
12 |
13 |
14 | public abstract void RegisterCallback(NFIHeartBeat.HeartBeatEventHandler handler);
15 | public abstract bool Update(float fPassTime);
16 | public abstract bool NeedRemove();
17 | }
18 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIHeartBeatManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Text;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 |
7 | namespace NFrame
8 | {
9 | public abstract class NFIHeartBeatManager
10 | {
11 | public abstract void AddHeartBeat(string strHeartBeatName, float fTime, int nCount, NFIHeartBeat.HeartBeatEventHandler handler);
12 | public abstract bool FindHeartBeat(string strHeartBeatName);
13 | public abstract void RemoveHeartBeat(string strHeartBeatName);
14 | public abstract void Update(float fPassTime);
15 | }
16 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFILogicClass.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Collections;
6 | using System.Runtime.InteropServices;
7 | using System.Threading;
8 | using System.IO;
9 |
10 | namespace NFrame
11 | {
12 | public abstract class NFILogicClass
13 | {
14 | public abstract NFIPropertyManager GetPropertyManager();
15 | public abstract NFIRecordManager GetRecordManager();
16 | public abstract List GetConfigNameList();
17 | public abstract bool AddConfigName(string strConfigName);
18 |
19 | public abstract string GetName();
20 | public abstract void SetName(string strConfigName);
21 |
22 | public abstract string GetPath();
23 | public abstract void SetPath(string strPath);
24 |
25 | public abstract string GetInstance();
26 | public abstract void SetInstance(string strInstancePath);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFILogicClassModule.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Text;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 |
7 | namespace NFrame
8 | {
9 | public abstract class NFILogicClassModule : NFILogicModule
10 | {
11 | public abstract bool ExistElement(string strClassName);
12 | public abstract bool AddElement(string strClassName);
13 |
14 | public abstract NFILogicClass GetElement(string strClassName);
15 | public abstract Dictionary GetElementList();
16 |
17 | }
18 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFILogicModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading;
11 | using System.Collections.ObjectModel;
12 |
13 | namespace NFrame
14 | {
15 | public class NFILogicModule : NFBehaviour
16 | {
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIProperty.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace NFrame
7 | {
8 | public abstract class NFIProperty
9 | {
10 | public delegate void PropertyEventHandler(NFGUID self, string strProperty, NFIDataList.TData oldVar, NFIDataList.TData newVar);
11 |
12 | public abstract string GetKey();
13 |
14 | public abstract NFIDataList.VARIANT_TYPE GetType();
15 | public abstract NFIDataList.TData GetData();
16 |
17 | public abstract Int64 QueryInt();
18 |
19 | public abstract float QueryFloat();
20 |
21 | public abstract double QueryDouble();
22 |
23 | public abstract string QueryString();
24 |
25 | public abstract NFGUID QueryObject();
26 |
27 | public abstract bool SetInt(Int64 value);
28 |
29 | public abstract bool SetFloat(float value);
30 |
31 | public abstract bool SetDouble(double value);
32 |
33 | public abstract bool SetString(string value);
34 |
35 | public abstract bool SetObject(NFGUID value);
36 |
37 | public abstract bool SetData(NFIDataList.TData x);
38 |
39 | public abstract void RegisterCallback(PropertyEventHandler handler);
40 | }
41 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIPropertyManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace NFrame
7 | {
8 | public abstract class NFIPropertyManager
9 | {
10 | public abstract NFIProperty AddProperty(string strPropertyName, NFIDataList varData);
11 | public abstract NFIProperty AddProperty(string strPropertyName, NFIDataList.TData varData);
12 |
13 | public abstract bool SetProperty(string strPropertyName, NFIDataList varData);
14 |
15 | public abstract NFIProperty GetProperty(string strPropertyName);
16 |
17 | public abstract NFIDataList GetPropertyList();
18 |
19 | public abstract void RegisterCallback(string strPropertyName, NFIProperty.PropertyEventHandler handler);
20 | }
21 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Interface/NFIRecordManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Text;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 |
7 | namespace NFrame
8 | {
9 | public abstract class NFIRecordManager
10 | {
11 | public abstract NFIRecord AddRecord(string strRecordName, int nRow, NFIDataList varData);
12 | public abstract NFIRecord GetRecord(string strRecordName);
13 | public abstract NFIDataList GetRecordList();
14 |
15 | public abstract void RegisterCallback(string strRecordName, NFIRecord.RecordEventHandler handler);
16 | }
17 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/NFCEvent.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 |
11 | namespace NFrame
12 | {
13 | class NFCEvent : NFIEvent
14 | {
15 | public NFCEvent(NFGUID self, int nEventID, NFIDataList valueList)
16 | {
17 | mSelf = self;
18 | mnEventID = nEventID;
19 | mArgValueList = valueList;
20 | }
21 |
22 | public override void RegisterCallback(NFIEvent.EventHandler handler)
23 | {
24 | mHandlerDel += handler;
25 | }
26 |
27 | public override void DoEvent(NFIDataList valueList)
28 | {
29 | if (null != mHandlerDel)
30 | {
31 | mHandlerDel(mSelf, mnEventID, mArgValueList, valueList);
32 | }
33 | }
34 |
35 |
36 | NFGUID mSelf;
37 | int mnEventID;
38 | NFIDataList mArgValueList;
39 |
40 | NFIEvent.EventHandler mHandlerDel;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/NFCEventModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Collections;
10 | using System.Collections.Generic;
11 |
12 | namespace NFrame
13 | {
14 | public class NFCEventModule : NFIEventModule
15 | {
16 | public NFCEventModule()
17 | {
18 | mhtEvent = new Dictionary>();
19 | }
20 |
21 | public override void RegisterCallback(NFGUID self, int nEventID, NFIEvent.EventHandler handler, NFIDataList valueList)
22 | {
23 | Dictionary xData = mhtEvent[self];
24 | if (!mhtEvent.ContainsKey(self) || null == xData)
25 | {
26 | xData = new Dictionary();
27 | xData.Add(nEventID, new NFCEvent(self, nEventID, valueList));
28 |
29 | mhtEvent.Add(self, xData);
30 | return;
31 | }
32 |
33 | if (!xData.ContainsKey(nEventID))
34 | {
35 | xData.Add(nEventID, new NFCEvent(self, nEventID, valueList));
36 | return ;
37 | }
38 |
39 | NFIEvent identEvent = (NFIEvent)mhtEvent[self][nEventID];
40 | identEvent.RegisterCallback(handler);
41 | }
42 |
43 | public override void DoEvent(NFGUID self, int nEventID, NFIDataList valueList)
44 | {
45 | Dictionary xData = mhtEvent[self];
46 | if (null != xData)
47 | {
48 | if (xData.ContainsKey(nEventID))
49 | {
50 | NFIEvent identEvent = (NFIEvent)xData[nEventID];
51 | identEvent.DoEvent(valueList);
52 | }
53 | }
54 | }
55 |
56 | Dictionary> mhtEvent;
57 | }
58 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/NFCLogicClass.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Collections;
11 | using System.Runtime.InteropServices;
12 | using System.Threading;
13 | using System.IO;
14 |
15 | namespace NFrame
16 | {
17 | public class NFCLogicClass : NFILogicClass
18 | {
19 | public NFCLogicClass()
20 | {
21 | }
22 |
23 | public override NFIPropertyManager GetPropertyManager()
24 | {
25 | return mxPropertyManager;
26 | }
27 |
28 | public override NFIRecordManager GetRecordManager()
29 | {
30 | return mxRecordManager;
31 | }
32 |
33 | public override List GetConfigNameList()
34 | {
35 | return mxIntansList;
36 | }
37 |
38 | public override bool AddConfigName(string strConfigName)
39 | {
40 | mxIntansList.Add(strConfigName);
41 |
42 | return true;
43 | }
44 |
45 | public override string GetName()
46 | {
47 | return mstrName;
48 | }
49 |
50 | public override void SetName(string strConfigName)
51 | {
52 | mstrName = strConfigName;
53 | }
54 |
55 | public override string GetPath()
56 | {
57 | return mstrPath;
58 | }
59 |
60 | public override void SetPath(string sPath)
61 | {
62 | mstrPath = sPath;
63 | }
64 |
65 | public override string GetInstance()
66 | {
67 | return mstrInstance;
68 | }
69 |
70 | public override void SetInstance(string strInstancePath)
71 | {
72 | mstrInstance = strInstancePath;
73 | }
74 |
75 |
76 |
77 | /////////////////////////////////////
78 | private NFIPropertyManager mxPropertyManager = new NFCPropertyManager(new NFGUID());
79 | private NFIRecordManager mxRecordManager = new NFCRecordManager(new NFGUID());
80 | private List mxIntansList = new List();
81 | private string mstrName;
82 | private string mstrPath;
83 | private string mstrInstance;
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/NFCLogicClassModule.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFKernelPlugin/NFCLogicClassModule.cs
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/NFKernelPlugin.cs:
--------------------------------------------------------------------------------
1 | #if UNITY_EDITOR
2 | #define NF_CLIENT_FRAME
3 | #elif UNITY_IPHONE
4 | #define NF_CLIENT_FRAME
5 | #elif UNITY_ANDROID
6 | #define NF_CLIENT_FRAME
7 | #elif UNITY_STANDALONE_OSX
8 | #define NF_CLIENT_FRAME
9 | #elif UNITY_STANDALONE_WIN
10 | #define NF_CLIENT_FRAME
11 | #endif
12 | //-----------------------------------------------------------------------
13 | //
14 | // Copyright (C) 2015-2015 lvsheng.huang
15 | //
16 | //-----------------------------------------------------------------------
17 | using System;
18 | using System.Linq;
19 | using System.Text;
20 | using System.Collections;
21 | using System.Collections.Generic;
22 |
23 | namespace NFrame
24 | {
25 | #if NF_CLIENT_FRAME
26 | #else
27 |
28 | public class NFKernelPlugin : NFIPlugin
29 | {
30 | public override void Init()
31 | {
32 | CreateModule();
33 | CreateModule();
34 | CreateModule();
35 | CreateModule();
36 | }
37 |
38 | public override void AfterInit() { }
39 |
40 | public override void BeforeShut() { }
41 |
42 | public override void Shut() { }
43 |
44 | public override void Execute() { }
45 |
46 | }
47 | #endif
48 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Object/NFCHeartBeat.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Collections;
10 | using System.Collections.Generic;
11 |
12 | namespace NFrame
13 | {
14 | public class NFCHeartBeat : NFIHeartBeat
15 | {
16 |
17 | public NFCHeartBeat(NFGUID self, string strHeartBeatName, float fTime, int nCount)
18 | {
19 | mSelf = self;
20 | mstrHeartBeatName = strHeartBeatName;
21 | mfTime = fTime;
22 | mfOldTime = fTime;
23 | mnCount = nCount;
24 | }
25 |
26 | public override void RegisterCallback(NFIHeartBeat.HeartBeatEventHandler handler)
27 | {
28 | doHandlerDel += handler;
29 | }
30 |
31 | public override bool Update(float fPassTime)
32 | {
33 | mfTime -= fPassTime;
34 | if (mfTime < 0.0f)
35 | {
36 | mnCount--;
37 |
38 | if (null != doHandlerDel)
39 | {
40 | doHandlerDel(mSelf, mstrHeartBeatName, mfOldTime, mnCount);
41 | }
42 |
43 | return true;
44 | }
45 |
46 | return false;
47 | }
48 |
49 | public override bool NeedRemove()
50 | {
51 | if(mnCount > 0)
52 | {
53 | return false;
54 | }
55 |
56 | return true;
57 | }
58 |
59 | NFGUID mSelf;
60 | int mnCount;
61 | string mstrHeartBeatName;
62 | float mfTime;
63 | float mfOldTime;
64 |
65 | HeartBeatEventHandler doHandlerDel;
66 | }
67 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/Object/NFCRecordManager.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Collections;
10 | using System.Collections.Generic;
11 |
12 | namespace NFrame
13 | {
14 | public class NFCRecordManager : NFIRecordManager
15 | {
16 | public NFCRecordManager(NFGUID ident)
17 | {
18 | mSelf = ident;
19 | mhtRecord = new Dictionary();
20 | }
21 |
22 | public override void RegisterCallback(string strRecordName, NFIRecord.RecordEventHandler handler)
23 | {
24 | if (mhtRecord.ContainsKey(strRecordName))
25 | {
26 | NFIRecord record = (NFIRecord)mhtRecord[strRecordName];
27 | record.RegisterCallback(handler);
28 | }
29 | }
30 |
31 | public override NFIRecord AddRecord(string strRecordName, int nRow, NFIDataList varData)
32 | {
33 | NFIRecord record = new NFCRecord(mSelf, strRecordName, nRow, varData);
34 | mhtRecord.Add(strRecordName, record);
35 |
36 | return record;
37 | }
38 |
39 | public override NFIRecord GetRecord(string strPropertyName)
40 | {
41 | NFIRecord record = null;
42 |
43 | if (mhtRecord.ContainsKey(strPropertyName))
44 | {
45 | record = (NFIRecord)mhtRecord[strPropertyName];
46 | }
47 |
48 | return record;
49 | }
50 |
51 | public override NFIDataList GetRecordList()
52 | {
53 | NFIDataList varData = new NFCDataList();
54 | foreach (KeyValuePair de in mhtRecord)
55 | {
56 | varData.AddString(de.Key);
57 | }
58 |
59 | return varData;
60 | }
61 |
62 | NFGUID mSelf;
63 | //Hashtable mhtRecord;
64 | Dictionary mhtRecord;
65 | }
66 | }
--------------------------------------------------------------------------------
/NFComm/NFKernelPlugin/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/Licence.txt:
--------------------------------------------------------------------------------
1 | The core Protocol Buffers technology is provided courtesy of Google.
2 | At the time of writing, this is released under the BSD license.
3 | Full details can be found here:
4 |
5 | http://code.google.com/p/protobuf/
6 |
7 |
8 | This .NET implementation is Copyright 2008 Marc Gravell
9 |
10 | Licensed under the Apache License, Version 2.0 (the "License");
11 | you may not use this file except in compliance with the License.
12 | You may obtain a copy of the License at
13 |
14 | http://www.apache.org/licenses/LICENSE-2.0
15 |
16 | Unless required by applicable law or agreed to in writing, software
17 | distributed under the License is distributed on an "AS IS" BASIS,
18 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 | See the License for the specific language governing permissions and
20 | limitations under the License.
21 |
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/NFDefine.proto:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFMessageDefine/NFDefine.proto
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/NFFleetingDefine.proto:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFMessageDefine/NFFleetingDefine.proto
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/NFMsgBase.proto:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFMessageDefine/NFMsgBase.proto
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/NFMsgBaseEx.proto:
--------------------------------------------------------------------------------
1 | package NFMsg;
2 |
3 | import "NFMsgBase.proto";
4 |
5 | message PropertyIntEx
6 | {
7 | required int32 property_id = 1;
8 | required int32 data = 2;
9 | }
10 |
11 | message PropertyFloatEx
12 | {
13 | required bytes property_id = 1;
14 | required float data = 2;
15 | }
16 |
17 | message PropertyStringEx
18 | {
19 | required bytes property_id = 1;
20 | required bytes data = 2;
21 | }
22 |
23 | message PropertyObjectEx
24 | {
25 | required bytes property_id = 1;
26 | required int64 data = 2;
27 | }
28 |
29 | message ObjectPropertyListEx
30 | {
31 | repeated PropertyIntEx property_int_list = 1;
32 | repeated PropertyFloatEx property_float_list = 2;
33 | repeated PropertyStringEx property_string_list = 3;
34 | repeated PropertyObjectEx property_object_list = 4;
35 | }
36 |
37 | message ObjectRecordBaseEx
38 | {
39 | required int32 record_id = 1;
40 | repeated RecordInt record_int_list = 2;
41 | repeated RecordFloat record_float_list = 3;
42 | repeated RecordString record_string_list = 4;
43 | repeated RecordObject record_object_list = 5;
44 | }
45 |
46 | message ObjectRecordListEx
47 | {
48 | repeated ObjectRecordBaseEx record_list = 1;
49 | }
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/NFMsgPreGame.proto:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFMessageDefine/NFMsgPreGame.proto
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/NFSLGDefine.proto:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFMessageDefine/NFSLGDefine.proto
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("NFMessageDefine")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("NFMessageDefine")]
13 | [assembly: AssemblyCopyright("Copyright © 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("da6c5294-8eb1-4058-8bca-8c37c24cb04e")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/cpp.bat:
--------------------------------------------------------------------------------
1 |
2 | protoc.exe -I=./ --cpp_out=./ ./NFDefine.proto
3 | protoc.exe -I=./ --cpp_out=./ ./NFMsgBase.proto
4 | protoc.exe -I=./ --cpp_out=./ ./NFMsgBaseEx.proto
5 | protoc.exe -I=./ --cpp_out=./ ./NFMsgPreGame.proto
6 | protoc.exe -I=./ --cpp_out=./ ./NFMsgShare.proto
7 | protoc.exe -I=./ --cpp_out=./ ./NFSLGDefine.proto
8 | protoc.exe -I=./ --cpp_out=./ ./NFFleetingDefine.proto
9 | protoc.exe -I=./ --cpp_out=./ ./NFRecordDefine.proto
10 |
11 | pause
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/cs.bat:
--------------------------------------------------------------------------------
1 | echo on
2 | protogen -i:NFDefine.proto -o:NFDefine.cs
3 | protogen -i:NFMsgBase.proto -o:NFMsgBase.cs
4 | protogen -i:NFMsgBaseEx.proto -o:NFMsgBaseEx.cs
5 | protogen -i:NFMsgPreGame.proto -o:NFMsgPreGame.cs
6 | protogen -i:NFMsgShare.proto -o:NFMsgShare.cs
7 | protogen -i:NFSLGDefine.proto -o:NFSLGDefine.cs
8 | protogen -i:NFFleetingDefine.proto -o:NFFleetingDefine.cs
9 | protogen -i:NFRecordDefine.proto -o:NFRecordDefine.cs
10 |
11 | pause
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/protobuf-net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFMessageDefine/protobuf-net.dll
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/protoc-license.txt:
--------------------------------------------------------------------------------
1 | Protocol Buffers - Google's data interchange format
2 | Copyright 2008 Google Inc.
3 | http://code.google.com/p/protobuf/
4 |
5 | This package contains a precompiled Win32 binary version of the protocol buffer
6 | compiler (protoc). This binary is intended for Windows users who want to
7 | use Protocol Buffers in Java or Python but do not want to compile protoc
8 | themselves. To install, simply place this binary somewhere in your PATH.
9 |
10 | This binary was built using MinGW, but the output is the same regardless of
11 | the C++ compiler used.
12 |
13 | You will still need to download the source code package in order to obtain the
14 | Java or Python runtime libraries. Get it from:
15 | http://code.google.com/p/protobuf/downloads/
16 |
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/protoc.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFMessageDefine/protoc.exe
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/protogen.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFComm/NFMessageDefine/protogen.exe
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/protogen.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/NFComm/NFMessageDefine/xml.xslt:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Xml template for protobuf-net.
13 |
14 | This template writes the proto descriptor as xml.
15 | No options available.
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/NFComm/NFNetPlugin/NFCNet.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFCNet : NFINet
15 | {
16 | public NFCNet(OnSocketEvent xEventHandler, OnRecivePack xPackHandler)
17 | {
18 |
19 | }
20 |
21 | public override void Initialization(string strIP, UInt16 nPort)
22 | {
23 |
24 | }
25 |
26 | public override int Initialization(UInt32 nMaxClient, UInt16 nPort)
27 | {
28 | return 0;
29 | }
30 |
31 | public override bool Final()
32 | {
33 | return true;
34 | }
35 |
36 | //无包头,内部组装
37 | public override bool SendMsgWithOutHead(UInt16 nMsgID, string msg, UInt32 nSockIndex)
38 | {
39 | return true;
40 | }
41 |
42 | //无包头,内部组装
43 | public override bool SendMsgWithOutHead(UInt16 nMsgID, string msg, List fdList)
44 | {
45 | return true;
46 | }
47 |
48 | //无包头,内部组装
49 | public override bool SendMsgToAllClientWithOutHead(UInt16 nMsgID, string msg)
50 | {
51 | return true;
52 | }
53 |
54 | public override int CloseNetObject(UInt32 nSockIndex)
55 | {
56 | return 0;
57 | }
58 |
59 | public override int IsServer()
60 | {
61 | return 0;
62 | }
63 |
64 | public override int Log(int severity, string msg)
65 | {
66 | return 0;
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/NFComm/NFNetPlugin/NFIConsistentHash.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | //虚拟节点
15 | public abstract class NFIVirtualNode
16 | {
17 | private int nVirtualIndex;//虚拟节点序号
18 |
19 | //主机IP,此主机的第几个虚节点序号
20 | public NFIVirtualNode( int nVirID)
21 | {
22 | nVirtualIndex = nVirID;
23 | }
24 |
25 | public NFIVirtualNode()
26 | {
27 | nVirtualIndex = 0;
28 | }
29 |
30 | public abstract string GetDataStr();
31 | public abstract long GetDataID();
32 |
33 | public string ToStr()
34 | {
35 | return GetDataID().ToString() + GetDataStr() + nVirtualIndex.ToString();
36 | }
37 |
38 | };
39 |
40 | public abstract class NFIHasher
41 | {
42 | public abstract int GetHashValue(NFIVirtualNode vNode);
43 | };
44 |
45 | public abstract class NFIConsistentHash : NFBehaviour
46 | {
47 | public abstract int Size();
48 | public abstract bool Empty();
49 | public abstract void Insert(NFIVirtualNode xNode);
50 | public abstract bool Exist(NFIVirtualNode xNode);
51 | public abstract bool Erase(NFIVirtualNode xNode);
52 | public abstract NFIVirtualNode GetSuitNode();
53 | public abstract NFIVirtualNode GetSuitNodeHashKey(int nHashValue);
54 |
55 | public NFIHasher mxHasher = null;
56 |
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/NFComm/NFNetPlugin/NFINet.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public abstract class NFINet : NFBehaviour
15 | {
16 | public enum NF_NET_EVENT
17 | {
18 | NF_NET_EVENT_EOF = 0x10, //掉线
19 | NF_NET_EVENT_ERROR = 0x20, //未知错误
20 | NF_NET_EVENT_TIMEOUT = 0x40, //连接超时
21 | NF_NET_EVENT_CONNECTED = 0x80, //连接成功(作为客户端)
22 | }
23 |
24 | public delegate void OnSocketEvent(UInt32 nSockIndex, NFINet.NF_NET_EVENT eEvent, NFINet pNet);
25 | public delegate void OnRecivePack(UInt32 nSockIndex, UInt16 nMsgID, string msg, NFINet pNet);
26 |
27 | public abstract void Initialization(string strIP, UInt16 nPort);
28 | public abstract int Initialization(UInt32 nMaxClient, UInt16 nPort);
29 |
30 | public abstract bool Final();
31 |
32 | //无包头,内部组装
33 | public abstract bool SendMsgWithOutHead(UInt16 nMsgID, string msg, UInt32 nSockIndex);
34 |
35 | //无包头,内部组装
36 | public abstract bool SendMsgWithOutHead(UInt16 nMsgID, string msg, List fdList);
37 |
38 | //无包头,内部组装
39 | public abstract bool SendMsgToAllClientWithOutHead(UInt16 nMsgID, string msg);
40 |
41 | public abstract int CloseNetObject(UInt32 nSockIndex);
42 |
43 | public abstract int IsServer();
44 | public abstract int Log(int severity, string msg);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/NFComm/NFNetPlugin/NFNetHandler.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFNetHandler : NFILogicModule
15 | {
16 | public void RegisterEventCallback(NFINet.OnSocketEvent xEventHandler)
17 | {
18 | mxEventHandlerList.Add(xEventHandler);
19 | }
20 | public void RegisterPackCallback(int nMsgdID, NFINet.OnRecivePack xEventHandler)
21 | {
22 | List xList;
23 | if(!mxPackHandlerDic.TryGetValue(nMsgdID, out xList))
24 | {
25 | xList = new List();
26 | }
27 |
28 | xList.Add(xEventHandler);
29 | }
30 |
31 | public void OnSocketEvent(UInt32 nSockIndex, NFINet.NF_NET_EVENT eEvent, NFINet pNet)
32 | {
33 | foreach(NFINet.OnSocketEvent handler in mxEventHandlerList)
34 | {
35 | handler(nSockIndex, eEvent, pNet);
36 | }
37 | }
38 |
39 | public void OnRecivePack(UInt32 nSockIndex, UInt16 nMsgID, string msg, NFINet pNet)
40 | {
41 | List xList;
42 | if(mxPackHandlerDic.TryGetValue(nMsgID, out xList))
43 | {
44 | foreach (NFINet.OnRecivePack handler in xList)
45 | {
46 | handler(nSockIndex, nMsgID, msg, pNet);
47 | }
48 | }
49 | else if(mxPackHandlerDic.TryGetValue(-1, out xList))
50 | {
51 | foreach (NFINet.OnRecivePack handler in xList)
52 | {
53 | handler(nSockIndex, nMsgID, msg, pNet);
54 | }
55 | }
56 | }
57 |
58 | private readonly Dictionary> mxPackHandlerDic = new Dictionary>();
59 | private readonly List mxEventHandlerList = new List();
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/NFComm/NFNetPlugin/NFNetPlugin.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFNetPlugin : NFIPlugin
15 | {
16 | public NFNetPlugin()
17 | {
18 |
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/NFComm/NFNetPlugin/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFNetPlugin")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFNetPlugin")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("ffc4eec9-ea8d-4948-b2e2-2c9ad972fe14")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFComm/NFPluginLoader/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/NFComm/NFPluginLoader/App.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 | using System.Threading;
12 |
13 | namespace NFrame
14 | {
15 | class App
16 | {
17 | private static bool bAppRuning = true;
18 |
19 | static void Main(string[] args)
20 | {
21 | NFCPluginManager.Intance().Install();
22 |
23 | NFCPluginManager.Intance().Init();
24 | NFCPluginManager.Intance().AfterInit();
25 |
26 | while (bAppRuning)
27 | {
28 | Thread.Sleep(1);
29 |
30 | NFCPluginManager.Intance().Execute();
31 | }
32 |
33 | NFCPluginManager.Intance().BeforeShut();
34 | NFCPluginManager.Intance().Shut();
35 |
36 | NFCPluginManager.Intance().UnInstall();
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/NFComm/NFPluginLoader/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFPluginLoader")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFPluginLoader")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("293b1b07-db62-4903-97e5-5a18da7b9fe1")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFComm/NFPluginModule/NFBehaviour.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading;
11 | using System.Collections.ObjectModel;
12 |
13 | namespace NFrame
14 | {
15 | public class NFBehaviour : IDisposable
16 | {
17 | public virtual void Dispose()
18 | {
19 | }
20 |
21 | public virtual void Init(){}
22 |
23 | public virtual void AfterInit() {}
24 |
25 | public virtual void BeforeShut() {}
26 |
27 | public virtual void Shut() {}
28 |
29 | public virtual void Execute() {}
30 |
31 | public virtual void SetSelf(NFGUID xID) { mxID = xID; }
32 | public virtual NFGUID Self() { return mxID; }
33 |
34 | private NFGUID mxID = new NFGUID();
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/NFComm/NFPluginModule/NFIClusterClientModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFIPlugin : NFBehaviour
15 | {
16 | public NFIPlugin()
17 | {
18 |
19 | }
20 |
21 | public virtual void Init()
22 | {
23 | foreach(var v in mxPluginModule)
24 | {
25 | v.Value.Init();
26 | }
27 | }
28 |
29 | public virtual void AfterInit()
30 | {
31 | foreach (var v in mxPluginModule)
32 | {
33 | v.Value.Init();
34 | }
35 | }
36 |
37 | public virtual void BeforeShut()
38 | {
39 | foreach (var v in mxPluginModule)
40 | {
41 | v.Value.BeforeShut();
42 | }
43 | }
44 |
45 | public virtual void Shut()
46 | {
47 | foreach (var v in mxPluginModule)
48 | {
49 | v.Value.Shut();
50 | }
51 | }
52 |
53 | public virtual void Execute()
54 | {
55 | foreach (var v in mxPluginModule)
56 | {
57 | v.Value.Execute();
58 | }
59 | }
60 |
61 |
62 | private Dictionary mxPluginModule;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/NFComm/NFPluginModule/NFIComponent.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 | using System.Threading;
12 | using System.Collections.ObjectModel;
13 |
14 | namespace NFrame
15 | {
16 | public class NFIComponent : NFBehaviour
17 | {
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/NFComm/NFPluginModule/NFILogicModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 | using System.Threading;
12 | using System.Collections.ObjectModel;
13 |
14 | namespace NFrame
15 | {
16 | public class NFILogicModule : NFBehaviour
17 | {
18 | public NFIPluginManager GetMng()
19 | {
20 | return mxMng;
21 | }
22 | public void SetMng(NFIPluginManager xMng)
23 | {
24 | mxMng = xMng;
25 | }
26 | private NFIPluginManager mxMng;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/NFComm/NFPluginModule/NFIPlugin.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFIPlugin : NFILogicModule
15 | {
16 | public bool CreateModule()
17 | {
18 | Type xType = typeof(T);
19 | if (xType.IsSubclassOf(typeof(NFILogicModule)))
20 | {
21 | NFILogicModule xModule = Activator.CreateInstance(xType) as NFILogicModule;
22 |
23 |
24 | GetMng().AddModule(xType, xModule);
25 |
26 | return true;
27 | }
28 |
29 | return false;
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/NFComm/NFPluginModule/NFIPluginManager.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 | using NFrame;
12 |
13 | namespace NFrame
14 | {
15 | public abstract class NFIPluginManager : NFBehaviour
16 | {
17 | public abstract void Install();
18 | public abstract void UnInstall();
19 |
20 | public abstract string GetClassPath();
21 | public abstract int GetAPPID();
22 | public abstract int GetAPPType();
23 |
24 | public abstract NFILogicModule GetModule(string strClassName);
25 | public abstract bool AddModule(string strClassName, NFILogicModule xModule);
26 |
27 | //////////////////////////////////////////////////////////////////////
28 |
29 | public T GetModule()
30 | {
31 | Type xType = typeof(T);
32 | if (xType.ToString().Contains("NFC"))
33 | {
34 | xType = xType.BaseType;
35 | }
36 |
37 | object xModule = GetModule(xType.ToString());
38 | if(null != xModule)
39 | {
40 | return (T)(xModule);
41 | }
42 |
43 | return default(T);
44 | }
45 |
46 | public bool AddModule(Type xType, NFILogicModule xModule)
47 | {
48 | xModule.SetMng(this);
49 |
50 | AddModule(xType.BaseType.ToString(), xModule);
51 |
52 | return false;
53 | }
54 |
55 |
56 |
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/NFComm/NFPluginModule/NFServer_def.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace NFrame
8 | {
9 | public class NFServer_def
10 | {
11 | public enum NF_SERVER_TYPES
12 | {
13 | NF_ST_CLIENT = 0, // client
14 | NF_ST_REDIS = 1, //
15 | NF_ST_MYSQL = 2, //
16 | NF_ST_MASTER = 3, //
17 | NF_ST_LOGIN = 4, //
18 | NF_ST_PROXY = 5, //
19 | NF_ST_GAME = 6, //
20 | NF_ST_WORLD = 7, //
21 |
22 | };
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/NFComm/NFPluginModule/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFComm")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFComm")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("fc99a6f3-33e4-406b-98a8-e3ddefe31487")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFDep/NFNet/.travis.yml:
--------------------------------------------------------------------------------
1 | language: cpp
2 |
3 | compiler:
4 | - visual studio
5 | - clang
6 | - gcc
7 |
8 | os:
9 | - windows
10 | - linux
11 |
--------------------------------------------------------------------------------
/NFDep/NFNet/ExportNet.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFDep/NFNet/ExportNet.h
--------------------------------------------------------------------------------
/NFDep/NFNet/NFCNet.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFDep/NFNet/NFCNet.cpp
--------------------------------------------------------------------------------
/NFDep/NFNet/NFCNet.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFDep/NFNet/NFCNet.h
--------------------------------------------------------------------------------
/NFDep/NFNet/NFClient.cbp:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/NFDep/NFNet/NFNet.cbp:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/NFDep/NFNet/NFServer.cbp:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/NFDep/NFNet/TestClient.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include "NFCNet.h"
3 | #include
4 | #include
5 |
6 | #pragma comment(lib,"ws2_32.lib")
7 |
8 | #ifdef _MSC_VER
9 | #pragma comment(lib,"NFNet_d.lib")
10 | #else
11 | #pragma comment(lib,"NFNet_d.a")
12 | #endif
13 |
14 |
15 | class TestClientClass
16 | {
17 | public:
18 | TestClientClass()
19 | {
20 | pNet = new NFCNet(this, &TestClientClass::ReciveHandler, &TestClientClass::EventHandler);
21 | pNet->Initialization("127.0.0.1", 8088);
22 | }
23 |
24 | void ReciveHandler(const int nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen)
25 | {
26 | std::string str;
27 | str.assign(msg, nLen);
28 |
29 | std::cout << " fd: " << nSockIndex << " msg_id: " << nMsgID << " data: " << str << " thread_id: " << std::this_thread::get_id() << std::endl;
30 | };
31 |
32 | void EventHandler(const int nSockIndex, const NF_NET_EVENT e, NFINet* p)
33 | {
34 | std::cout << " fd: " << nSockIndex << " event_id: " << e << " thread_id: " << std::this_thread::get_id() << std::endl;
35 |
36 | }
37 |
38 | void Execute()
39 | {
40 | Sleep(1000);
41 | pNet->SendMsgWithOutHead(1, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 100, 0);
42 |
43 | pNet->Execute();
44 | }
45 |
46 | protected:
47 | NFINet* pNet;
48 | private:
49 | };
50 |
51 | int main(int argc, char** argv)
52 | {
53 | std::list list;
54 |
55 | for (int i = 0; i < 1; ++i)
56 | {
57 | TestClientClass* x = new TestClientClass();;
58 | list.push_back(x);
59 | }
60 |
61 | while (1)
{
std::list::iterator it = list.begin();
62 | for (it; it != list.end(); ++it)
63 | {
64 | //Sleep(1);
65 |
66 | (*it)->Execute();
67 | }
68 | }
69 |
70 |
71 | return 0;
72 | }
73 |
--------------------------------------------------------------------------------
/NFDep/NFNet/TestServer.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include "NFCNet.h"
3 | #include
4 | #include
5 | #pragma comment(lib,"ws2_32.lib")
6 |
7 | #ifdef _MSC_VER
8 | #pragma comment(lib,"NFNet_d.lib")
9 | #else
10 | #pragma comment(lib,"NFNet_d.a")
11 | #endif
12 |
13 |
14 | class TestServerClass
15 | {
16 | public:
17 | TestServerClass()
18 | {
19 | pNet = new NFCNet(this, &TestServerClass::ReciveHandler, &TestServerClass::EventHandler);
20 | pNet->Initialization(1000, 8088);
21 | }
22 |
23 | void ReciveHandler(const int nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen)
24 | {
25 | std::string str;
26 | str.assign(msg, nLen);
27 |
28 | pNet->SendMsgWithOutHead(nMsgID, msg, nLen, nSockIndex);
29 | //std::cout << " fd: " << nSockIndex << " msg_id: " << nMsgID << " data: " << str << " thread_id: " << std::this_thread::get_id() << std::endl;
30 | };
31 |
32 | void EventHandler(const int nSockIndex, const NF_NET_EVENT e, NFINet* p)
33 | {
34 | //std::cout << " fd: " << nSockIndex << " event_id: " << e << " thread_id: " << std::this_thread::get_id() << std::endl;
35 |
36 | }
37 |
38 | void Execute()
39 | {
40 | pNet->Execute();
41 | }
42 |
43 | protected:
44 | NFINet* pNet;
45 | private:
46 | };
47 |
48 | int main(int argc, char** argv)
49 | {
50 | TestServerClass x;
51 | while (1)
{
x.Execute();
52 | }
53 |
54 |
55 | return 0;
56 | }
57 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/CallbackAttributes.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 |
4 | namespace ProtoBuf
5 | {
6 | /// Specifies a method on the root-contract in an hierarchy to be invoked before serialization.
7 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
8 | #if !CF && !SILVERLIGHT && !MONODROID && !WINRT && !IOS && !PORTABLE
9 | [ImmutableObject(true)]
10 | #endif
11 | public sealed class ProtoBeforeSerializationAttribute : Attribute { }
12 |
13 | /// Specifies a method on the root-contract in an hierarchy to be invoked after serialization.
14 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
15 | #if !CF && !SILVERLIGHT && !MONODROID && !WINRT && !IOS && !PORTABLE
16 | [ImmutableObject(true)]
17 | #endif
18 | public sealed class ProtoAfterSerializationAttribute : Attribute { }
19 |
20 | /// Specifies a method on the root-contract in an hierarchy to be invoked before deserialization.
21 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
22 | #if !CF && !SILVERLIGHT && !MONODROID && !WINRT && !IOS && !PORTABLE
23 | [ImmutableObject(true)]
24 | #endif
25 | public sealed class ProtoBeforeDeserializationAttribute : Attribute { }
26 |
27 | /// Specifies a method on the root-contract in an hierarchy to be invoked after deserialization.
28 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
29 | #if !CF && !SILVERLIGHT && !MONODROID && !WINRT && !IOS && !PORTABLE
30 | [ImmutableObject(true)]
31 | #endif
32 | public sealed class ProtoAfterDeserializationAttribute : Attribute { }
33 | }
34 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Compiler/CompilerDelegates.cs:
--------------------------------------------------------------------------------
1 | #if FEAT_COMPILER
2 | namespace ProtoBuf.Compiler
3 | {
4 | internal delegate void ProtoSerializer(object value, ProtoWriter dest);
5 | internal delegate object ProtoDeserializer(object value, ProtoReader source);
6 | }
7 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Compiler/Local.cs:
--------------------------------------------------------------------------------
1 | #if FEAT_COMPILER
2 | using System;
3 | #if FEAT_IKVM
4 | using IKVM.Reflection.Emit;
5 | using Type = IKVM.Reflection.Type;
6 | #else
7 | using System.Reflection.Emit;
8 | #endif
9 |
10 | namespace ProtoBuf.Compiler
11 | {
12 | internal sealed class Local : IDisposable
13 | {
14 | // public static readonly Local InputValue = new Local(null, null);
15 | LocalBuilder value;
16 | public Type Type { get { return type; } }
17 | public Local AsCopy()
18 | {
19 | if (ctx == null) return this; // can re-use if context-free
20 | return new Local(value, this.type);
21 | }
22 | internal LocalBuilder Value
23 | {
24 | get
25 | {
26 | if (value == null)
27 | {
28 | throw new ObjectDisposedException(GetType().Name);
29 | }
30 | return value;
31 | }
32 | }
33 | CompilerContext ctx;
34 | public void Dispose()
35 | {
36 | if (ctx != null)
37 | {
38 | // only *actually* dispose if this is context-bound; note that non-bound
39 | // objects are cheekily re-used, and *must* be left intact agter a "using" etc
40 | ctx.ReleaseToPool(value);
41 | value = null;
42 | ctx = null;
43 | }
44 |
45 | }
46 | private Local(LocalBuilder value, Type type)
47 | {
48 | this.value = value;
49 | this.type = type;
50 | }
51 | private readonly Type type;
52 | internal Local(Compiler.CompilerContext ctx, Type type)
53 | {
54 | this.ctx = ctx;
55 | if (ctx != null) { value = ctx.GetFromPool(type); }
56 | this.type = type;
57 | }
58 |
59 | internal bool IsSame(Local other)
60 | {
61 | if((object)this == (object)other) return true;
62 |
63 | object ourVal = value; // use prop to ensure obj-disposed etc
64 | return other != null && ourVal == (object)(other.value);
65 | }
66 | }
67 |
68 |
69 | }
70 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/DataFormat.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace ProtoBuf
3 | {
4 | ///
5 | /// Sub-format to use when serializing/deserializing data
6 | ///
7 | public enum DataFormat
8 | {
9 | ///
10 | /// Uses the default encoding for the data-type.
11 | ///
12 | Default,
13 |
14 | ///
15 | /// When applied to signed integer-based data (including Decimal), this
16 | /// indicates that zigzag variant encoding will be used. This means that values
17 | /// with small magnitude (regardless of sign) take a small amount
18 | /// of space to encode.
19 | ///
20 | ZigZag,
21 |
22 | ///
23 | /// When applied to signed integer-based data (including Decimal), this
24 | /// indicates that two's-complement variant encoding will be used.
25 | /// This means that any -ve number will take 10 bytes (even for 32-bit),
26 | /// so should only be used for compatibility.
27 | ///
28 | TwosComplement,
29 |
30 | ///
31 | /// When applied to signed integer-based data (including Decimal), this
32 | /// indicates that a fixed amount of space will be used.
33 | ///
34 | FixedSize,
35 |
36 | ///
37 | /// When applied to a sub-message, indicates that the value should be treated
38 | /// as group-delimited.
39 | ///
40 | Group
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/GlobalSuppressions.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/NFDep/protobuf-net/GlobalSuppressions.cs
--------------------------------------------------------------------------------
/NFDep/protobuf-net/IExtensible.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace ProtoBuf
3 | {
4 |
5 |
6 | ///
7 | /// Indicates that the implementing type has support for protocol-buffer
8 | /// extensions.
9 | ///
10 | /// Can be implemented by deriving from Extensible.
11 | public interface IExtensible
12 | {
13 | ///
14 | /// Retrieves the extension object for the current
15 | /// instance, optionally creating it if it does not already exist.
16 | ///
17 | /// Should a new extension object be
18 | /// created if it does not already exist?
19 | /// The extension object if it exists (or was created), or null
20 | /// if the extension object does not exist or is not available.
21 | /// The createIfMissing argument is false during serialization,
22 | /// and true during deserialization upon encountering unexpected fields.
23 | IExtension GetExtensionObject(bool createIfMissing);
24 | }
25 |
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/IExtension.cs:
--------------------------------------------------------------------------------
1 |
2 | using System.IO;
3 | namespace ProtoBuf
4 | {
5 | ///
6 | /// Provides addition capability for supporting unexpected fields during
7 | /// protocol-buffer serialization/deserialization. This allows for loss-less
8 | /// round-trip/merge, even when the data is not fully understood.
9 | ///
10 | public interface IExtension
11 | {
12 | ///
13 | /// Requests a stream into which any unexpected fields can be persisted.
14 | ///
15 | /// A new stream suitable for storing data.
16 | Stream BeginAppend();
17 |
18 | ///
19 | /// Indicates that all unexpected fields have now been stored. The
20 | /// implementing class is responsible for closing the stream. If
21 | /// "commit" is not true the data may be discarded.
22 | ///
23 | /// The stream originally obtained by BeginAppend.
24 | /// True if the append operation completed successfully.
25 | void EndAppend(Stream stream, bool commit);
26 |
27 | ///
28 | /// Requests a stream of the unexpected fields previously stored.
29 | ///
30 | /// A prepared stream of the unexpected fields.
31 | Stream BeginQuery();
32 |
33 | ///
34 | /// Indicates that all unexpected fields have now been read. The
35 | /// implementing class is responsible for closing the stream.
36 | ///
37 | /// The stream originally obtained by BeginQuery.
38 | void EndQuery(Stream stream);
39 |
40 | ///
41 | /// Requests the length of the raw binary stream; this is used
42 | /// when serializing sub-entities to indicate the expected size.
43 | ///
44 | /// The length of the binary stream representing unexpected data.
45 | int GetLength();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/ImplicitFields.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ProtoBuf
4 | {
5 | ///
6 | /// Specifies the method used to infer field tags for members of the type
7 | /// under consideration. Tags are deduced using the invariant alphabetic
8 | /// sequence of the members' names; this makes implicit field tags very brittle,
9 | /// and susceptible to changes such as field names (normally an isolated
10 | /// change).
11 | ///
12 | public enum ImplicitFields
13 | {
14 | ///
15 | /// No members are serialized implicitly; all members require a suitable
16 | /// attribute such as [ProtoMember]. This is the recmomended mode for
17 | /// most scenarios.
18 | ///
19 | None = 0,
20 | ///
21 | /// Public properties and fields are eligible for implicit serialization;
22 | /// this treats the public API as a contract. Ordering beings from ImplicitFirstTag.
23 | ///
24 | AllPublic= 1,
25 | ///
26 | /// Public and non-public fields are eligible for implicit serialization;
27 | /// this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag.
28 | ///
29 | AllFields = 2
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/KeyValuePairProxy.cs:
--------------------------------------------------------------------------------
1 | //#if !NO_GENERICS
2 | //using System.Collections.Generic;
3 |
4 | //namespace ProtoBuf
5 | //{
6 | // ///
7 | // /// Mutable version of the common key/value pair struct; used during serialization. This type is intended for internal use only and should not
8 | // /// be used by calling code; it is required to be public for implementation reasons.
9 | // ///
10 | // [ProtoContract]
11 | // public struct KeyValuePairSurrogate
12 | // {
13 | // private TKey key;
14 | // private TValue value;
15 | // ///
16 | // /// The key of the pair.
17 | // ///
18 | // [ProtoMember(1, IsRequired = true)]
19 | // public TKey Key { get { return key; } set { key = value; } }
20 | // ///
21 | // /// The value of the pair.
22 | // ///
23 | // [ProtoMember(2)]
24 | // public TValue Value{ get { return value; } set { this.value = value; } }
25 | // private KeyValuePairSurrogate(TKey key, TValue value)
26 | // {
27 | // this.key = key;
28 | // this.value = value;
29 | // }
30 | // ///
31 | // /// Convert a surrogate instance to a standard pair instance.
32 | // ///
33 | // public static implicit operator KeyValuePair (KeyValuePairSurrogate value)
34 | // {
35 | // return new KeyValuePair(value.key, value.value);
36 | // }
37 | // ///
38 | // /// Convert a standard pair instance to a surrogate instance.
39 | // ///
40 | // public static implicit operator KeyValuePairSurrogate(KeyValuePair value)
41 | // {
42 | // return new KeyValuePairSurrogate(value.Key, value.Value);
43 | // }
44 | // }
45 | //}
46 | //#endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/PrefixStyle.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace ProtoBuf
3 | {
4 | ///
5 | /// Specifies the type of prefix that should be applied to messages.
6 | ///
7 | public enum PrefixStyle
8 | {
9 | ///
10 | /// No length prefix is applied to the data; the data is terminated only be the end of the stream.
11 | ///
12 | None,
13 | ///
14 | /// A base-128 length prefix is applied to the data (efficient for short messages).
15 | ///
16 | Base128,
17 | ///
18 | /// A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility).
19 | ///
20 | Fixed32,
21 | ///
22 | /// A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility).
23 | ///
24 | Fixed32BigEndian
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("protobuf-net")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("protobuf-net")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("24e8bdd1-436c-432d-aeed-ed584279f372")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/ProtoConverterAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ProtoBuf
4 | {
5 | ///
6 | /// Indicates that a static member should be considered the same as though
7 | /// were an implicit / explicit conversion operator; in particular, this
8 | /// is useful for conversions that operator syntax does not allow, such as
9 | /// to/from interface types.
10 | ///
11 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
12 | public class ProtoConverterAttribute : Attribute {}
13 | }
--------------------------------------------------------------------------------
/NFDep/protobuf-net/ProtoEnumAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ProtoBuf
4 | {
5 | ///
6 | /// Used to define protocol-buffer specific behavior for
7 | /// enumerated values.
8 | ///
9 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
10 | public sealed class ProtoEnumAttribute : Attribute
11 | {
12 | ///
13 | /// Gets or sets the specific value to use for this enum during serialization.
14 | ///
15 | public int Value
16 | {
17 | get { return enumValue; }
18 | set { this.enumValue = value; hasValue = true; }
19 | }
20 |
21 | ///
22 | /// Indicates whether this instance has a customised value mapping
23 | ///
24 | /// true if a specific value is set
25 | public bool HasValue() { return hasValue; }
26 |
27 | private bool hasValue;
28 | private int enumValue;
29 |
30 | ///
31 | /// Gets or sets the defined name of the enum, as used in .proto
32 | /// (this name is not used during serialization).
33 | ///
34 | public string Name { get { return name; } set { name = value; } }
35 | private string name;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/ProtoException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | #if PLAT_BINARYFORMATTER && !(WINRT || PHONE8)
4 | using System.Runtime.Serialization;
5 | #endif
6 | namespace ProtoBuf
7 | {
8 | ///
9 | /// Indicates an error during serialization/deserialization of a proto stream.
10 | ///
11 | #if PLAT_BINARYFORMATTER && !(WINRT || PHONE8)
12 | [Serializable]
13 | #endif
14 | public class ProtoException : Exception
15 | {
16 | /// Creates a new ProtoException instance.
17 | public ProtoException() { }
18 |
19 | /// Creates a new ProtoException instance.
20 | public ProtoException(string message) : base(message) { }
21 |
22 | /// Creates a new ProtoException instance.
23 | public ProtoException(string message, Exception innerException) : base(message, innerException) { }
24 |
25 | #if PLAT_BINARYFORMATTER && !(WINRT || PHONE8)
26 | /// Creates a new ProtoException instance.
27 | protected ProtoException(SerializationInfo info, StreamingContext context) : base(info, context) { }
28 | #endif
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/ProtoIgnoreAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ProtoBuf
4 | {
5 | ///
6 | /// Indicates that a member should be excluded from serialization; this
7 | /// is only normally used when using implict fields.
8 | ///
9 | [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field,
10 | AllowMultiple = false, Inherited = true)]
11 | public class ProtoIgnoreAttribute : Attribute {}
12 |
13 | ///
14 | /// Indicates that a member should be excluded from serialization; this
15 | /// is only normally used when using implict fields. This allows
16 | /// ProtoIgnoreAttribute usage
17 | /// even for partial classes where the individual members are not
18 | /// under direct control.
19 | ///
20 | [AttributeUsage(AttributeTargets.Class,
21 | AllowMultiple = true, Inherited = false)]
22 | public sealed class ProtoPartialIgnoreAttribute : ProtoIgnoreAttribute
23 | {
24 | ///
25 | /// Creates a new ProtoPartialIgnoreAttribute instance.
26 | ///
27 | /// Specifies the member to be ignored.
28 | public ProtoPartialIgnoreAttribute(string memberName)
29 | : base()
30 | {
31 | if (Helpers.IsNullOrEmpty(memberName)) throw new ArgumentNullException("memberName");
32 | this.memberName = memberName;
33 | }
34 | ///
35 | /// The name of the member to be ignored.
36 | ///
37 | public string MemberName { get { return memberName; } }
38 | private readonly string memberName;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/BlobSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 | #if FEAT_COMPILER
4 | using System.Reflection.Emit;
5 | #endif
6 |
7 | #if FEAT_IKVM
8 | using Type = IKVM.Reflection.Type;
9 | #endif
10 |
11 |
12 | namespace ProtoBuf.Serializers
13 | {
14 | sealed class BlobSerializer : IProtoSerializer
15 | {
16 | public Type ExpectedType { get { return expectedType; } }
17 |
18 | #if FEAT_IKVM
19 | readonly Type expectedType;
20 | #else
21 | static readonly Type expectedType = typeof(byte[]);
22 | #endif
23 | public BlobSerializer(ProtoBuf.Meta.TypeModel model, bool overwriteList)
24 | {
25 | #if FEAT_IKVM
26 | expectedType = model.MapType(typeof(byte[]));
27 | #endif
28 | this.overwriteList = overwriteList;
29 | }
30 | private readonly bool overwriteList;
31 | #if !FEAT_IKVM
32 | public object Read(object value, ProtoReader source)
33 | {
34 | return ProtoReader.AppendBytes(overwriteList ? null : (byte[])value, source);
35 | }
36 | public void Write(object value, ProtoWriter dest)
37 | {
38 | ProtoWriter.WriteBytes((byte[])value, dest);
39 | }
40 | #endif
41 | bool IProtoSerializer.RequiresOldValue { get { return !overwriteList; } }
42 | bool IProtoSerializer.ReturnsValue { get { return true; } }
43 | #if FEAT_COMPILER
44 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
45 | {
46 | ctx.EmitBasicWrite("WriteBytes", valueFrom);
47 | }
48 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
49 | {
50 | if (overwriteList)
51 | {
52 | ctx.LoadNullRef();
53 | }
54 | else
55 | {
56 | ctx.LoadValue(valueFrom);
57 | }
58 | ctx.LoadReaderWriter();
59 | ctx.EmitCall(ctx.MapType(typeof(ProtoReader)).GetMethod("AppendBytes"));
60 | }
61 | #endif
62 | }
63 | }
64 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/BooleanSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 |
12 |
13 |
14 |
15 | namespace ProtoBuf.Serializers
16 | {
17 | sealed class BooleanSerializer : IProtoSerializer
18 | {
19 | #if FEAT_IKVM
20 | readonly Type expectedType;
21 | #else
22 | static readonly Type expectedType = typeof(bool);
23 | #endif
24 | public BooleanSerializer(ProtoBuf.Meta.TypeModel model)
25 | {
26 | #if FEAT_IKVM
27 | expectedType = model.MapType(typeof(bool));
28 | #endif
29 | }
30 | public Type ExpectedType { get { return expectedType; } }
31 |
32 | #if !FEAT_IKVM
33 | public void Write(object value, ProtoWriter dest)
34 | {
35 | ProtoWriter.WriteBoolean((bool)value, dest);
36 | }
37 | public object Read(object value, ProtoReader source)
38 | {
39 | Helpers.DebugAssert(value == null); // since replaces
40 | return source.ReadBoolean();
41 | }
42 | #endif
43 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
44 | bool IProtoSerializer.ReturnsValue { get { return true; } }
45 | #if FEAT_COMPILER
46 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
47 | {
48 | ctx.EmitBasicWrite("WriteBoolean", valueFrom);
49 | }
50 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
51 | {
52 | ctx.EmitBasicRead("ReadBoolean", ExpectedType);
53 | }
54 | #endif
55 | }
56 | }
57 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/ByteSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | #endif
7 |
8 |
9 |
10 | namespace ProtoBuf.Serializers
11 | {
12 | sealed class ByteSerializer : IProtoSerializer
13 | {
14 | public Type ExpectedType { get { return expectedType; } }
15 |
16 | #if FEAT_IKVM
17 | readonly Type expectedType;
18 | #else
19 | static readonly Type expectedType = typeof(byte);
20 | #endif
21 | public ByteSerializer(ProtoBuf.Meta.TypeModel model)
22 | {
23 | #if FEAT_IKVM
24 | expectedType = model.MapType(typeof(byte));
25 | #endif
26 | }
27 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
28 | bool IProtoSerializer.ReturnsValue { get { return true; } }
29 | #if !FEAT_IKVM
30 | public void Write(object value, ProtoWriter dest)
31 | {
32 | ProtoWriter.WriteByte((byte)value, dest);
33 | }
34 | public object Read(object value, ProtoReader source)
35 | {
36 | Helpers.DebugAssert(value == null); // since replaces
37 | return source.ReadByte();
38 | }
39 | #endif
40 |
41 | #if FEAT_COMPILER
42 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
43 | {
44 | ctx.EmitBasicWrite("WriteByte", valueFrom);
45 | }
46 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
47 | {
48 | ctx.EmitBasicRead("ReadByte", ExpectedType);
49 | }
50 | #endif
51 |
52 | }
53 | }
54 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/CharSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 |
12 | namespace ProtoBuf.Serializers
13 | {
14 | sealed class CharSerializer : UInt16Serializer
15 | {
16 | #if FEAT_IKVM
17 | readonly Type expectedType;
18 | #else
19 | static readonly Type expectedType = typeof(char);
20 | #endif
21 | public CharSerializer(ProtoBuf.Meta.TypeModel model) : base(model)
22 | {
23 | #if FEAT_IKVM
24 | expectedType = model.MapType(typeof(char));
25 | #endif
26 | }
27 | public override Type ExpectedType { get { return expectedType; } }
28 |
29 | #if !FEAT_IKVM
30 | public override void Write(object value, ProtoWriter dest)
31 | {
32 | ProtoWriter.WriteUInt16((ushort)(char)value, dest);
33 | }
34 | public override object Read(object value, ProtoReader source)
35 | {
36 | Helpers.DebugAssert(value == null); // since replaces
37 | return (char)source.ReadUInt16();
38 | }
39 | #endif
40 | // no need for any special IL here; ushort and char are
41 | // interchangeable as long as there is no boxing/unboxing
42 | }
43 | }
44 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/DateTimeSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 | namespace ProtoBuf.Serializers
12 | {
13 | sealed class DateTimeSerializer : IProtoSerializer
14 | {
15 | #if FEAT_IKVM
16 | readonly Type expectedType;
17 | #else
18 | static readonly Type expectedType = typeof(DateTime);
19 | #endif
20 | public Type ExpectedType { get { return expectedType; } }
21 |
22 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
23 | bool IProtoSerializer.ReturnsValue { get { return true; } }
24 |
25 | public DateTimeSerializer(ProtoBuf.Meta.TypeModel model)
26 | {
27 | #if FEAT_IKVM
28 | expectedType = model.MapType(typeof(DateTime));
29 | #endif
30 | }
31 | #if !FEAT_IKVM
32 | public object Read(object value, ProtoReader source)
33 | {
34 | Helpers.DebugAssert(value == null); // since replaces
35 | return BclHelpers.ReadDateTime(source);
36 | }
37 | public void Write(object value, ProtoWriter dest)
38 | {
39 | BclHelpers.WriteDateTime((DateTime)value, dest);
40 | }
41 | #endif
42 | #if FEAT_COMPILER
43 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
44 | {
45 | ctx.EmitWrite(ctx.MapType(typeof(BclHelpers)), "WriteDateTime", valueFrom);
46 | }
47 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
48 | {
49 | ctx.EmitBasicRead(ctx.MapType(typeof(BclHelpers)), "ReadDateTime", ExpectedType);
50 | }
51 | #endif
52 |
53 | }
54 | }
55 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/DecimalSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 | using ProtoBuf.Meta;
4 |
5 | #if FEAT_IKVM
6 | using Type = IKVM.Reflection.Type;
7 | using IKVM.Reflection;
8 | #else
9 | using System.Reflection;
10 | #endif
11 |
12 |
13 |
14 | namespace ProtoBuf.Serializers
15 | {
16 | sealed class DecimalSerializer : IProtoSerializer
17 | {
18 | #if FEAT_IKVM
19 | readonly Type expectedType;
20 | #else
21 | static readonly Type expectedType = typeof(decimal);
22 | #endif
23 | public DecimalSerializer(ProtoBuf.Meta.TypeModel model)
24 | {
25 | #if FEAT_IKVM
26 | expectedType = model.MapType(typeof(decimal));
27 | #endif
28 | }
29 | public Type ExpectedType { get { return expectedType; } }
30 |
31 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
32 | bool IProtoSerializer.ReturnsValue { get { return true; } }
33 | #if !FEAT_IKVM
34 | public object Read(object value, ProtoReader source)
35 | {
36 | Helpers.DebugAssert(value == null); // since replaces
37 | return BclHelpers.ReadDecimal(source);
38 | }
39 | public void Write(object value, ProtoWriter dest)
40 | {
41 | BclHelpers.WriteDecimal((decimal)value, dest);
42 | }
43 | #endif
44 | #if FEAT_COMPILER
45 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
46 | {
47 | ctx.EmitWrite(ctx.MapType(typeof(BclHelpers)), "WriteDecimal", valueFrom);
48 | }
49 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
50 | {
51 | ctx.EmitBasicRead(ctx.MapType(typeof(BclHelpers)), "ReadDecimal", ExpectedType);
52 | }
53 | #endif
54 |
55 | }
56 | }
57 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/DoubleSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 | using ProtoBuf.Meta;
4 |
5 | #if FEAT_IKVM
6 | using Type = IKVM.Reflection.Type;
7 | using IKVM.Reflection;
8 | #else
9 | using System.Reflection;
10 | #endif
11 |
12 | namespace ProtoBuf.Serializers
13 | {
14 | sealed class DoubleSerializer : IProtoSerializer
15 | {
16 | #if FEAT_IKVM
17 | readonly Type expectedType;
18 | #else
19 | static readonly Type expectedType = typeof(double);
20 | #endif
21 | public DoubleSerializer(ProtoBuf.Meta.TypeModel model)
22 | {
23 | #if FEAT_IKVM
24 | expectedType = model.MapType(typeof(double));
25 | #endif
26 | }
27 |
28 | public Type ExpectedType { get { return expectedType; } }
29 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
30 | bool IProtoSerializer.ReturnsValue { get { return true; } }
31 | #if !FEAT_IKVM
32 | public object Read(object value, ProtoReader source)
33 | {
34 | Helpers.DebugAssert(value == null); // since replaces
35 | return source.ReadDouble();
36 | }
37 | public void Write(object value, ProtoWriter dest)
38 | {
39 | ProtoWriter.WriteDouble((double)value, dest);
40 | }
41 | #endif
42 | #if FEAT_COMPILER
43 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
44 | {
45 | ctx.EmitBasicWrite("WriteDouble", valueFrom);
46 | }
47 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
48 | {
49 | ctx.EmitBasicRead("ReadDouble", ExpectedType);
50 | }
51 | #endif
52 | }
53 | }
54 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/GuidSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | #endif
7 |
8 |
9 | namespace ProtoBuf.Serializers
10 | {
11 | sealed class GuidSerializer : IProtoSerializer
12 | {
13 | #if FEAT_IKVM
14 | readonly Type expectedType;
15 | #else
16 | static readonly Type expectedType = typeof(Guid);
17 | #endif
18 | public GuidSerializer(ProtoBuf.Meta.TypeModel model)
19 | {
20 | #if FEAT_IKVM
21 | expectedType = model.MapType(typeof(Guid));
22 | #endif
23 | }
24 |
25 | public Type ExpectedType { get { return expectedType; } }
26 |
27 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
28 | bool IProtoSerializer.ReturnsValue { get { return true; } }
29 |
30 | #if !FEAT_IKVM
31 | public void Write(object value, ProtoWriter dest)
32 | {
33 | BclHelpers.WriteGuid((Guid)value, dest);
34 | }
35 | public object Read(object value, ProtoReader source)
36 | {
37 | Helpers.DebugAssert(value == null); // since replaces
38 | return BclHelpers.ReadGuid(source);
39 | }
40 | #endif
41 |
42 | #if FEAT_COMPILER
43 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
44 | {
45 | ctx.EmitWrite(ctx.MapType(typeof(BclHelpers)), "WriteGuid", valueFrom);
46 | }
47 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
48 | {
49 | ctx.EmitBasicRead(ctx.MapType(typeof(BclHelpers)), "ReadGuid", ExpectedType);
50 | }
51 | #endif
52 |
53 | }
54 | }
55 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/IProtoTypeSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using ProtoBuf.Meta;
3 | namespace ProtoBuf.Serializers
4 | {
5 | interface IProtoTypeSerializer : IProtoSerializer
6 | {
7 | bool HasCallbacks(TypeModel.CallbackType callbackType);
8 | bool CanCreateInstance();
9 | #if !FEAT_IKVM
10 | object CreateInstance(ProtoReader source);
11 | void Callback(object value, TypeModel.CallbackType callbackType, SerializationContext context);
12 | #endif
13 | #if FEAT_COMPILER
14 | void EmitCallback(Compiler.CompilerContext ctx, Compiler.Local valueFrom, TypeModel.CallbackType callbackType);
15 | #endif
16 | #if FEAT_COMPILER
17 | void EmitCreateInstance(Compiler.CompilerContext ctx);
18 | #endif
19 | }
20 | }
21 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/ISerializerProxy.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 |
3 | namespace ProtoBuf.Serializers
4 | {
5 | interface ISerializerProxy
6 | {
7 | IProtoSerializer Serializer { get; }
8 | }
9 | }
10 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/Int16Serializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 | namespace ProtoBuf.Serializers
12 | {
13 | sealed class Int16Serializer : IProtoSerializer
14 | {
15 | #if FEAT_IKVM
16 | readonly Type expectedType;
17 | #else
18 | static readonly Type expectedType = typeof(short);
19 | #endif
20 | public Int16Serializer(ProtoBuf.Meta.TypeModel model)
21 | {
22 | #if FEAT_IKVM
23 | expectedType = model.MapType(typeof(short));
24 | #endif
25 | }
26 | public Type ExpectedType { get { return expectedType; } }
27 |
28 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
29 | bool IProtoSerializer.ReturnsValue { get { return true; } }
30 | #if !FEAT_IKVM
31 | public object Read(object value, ProtoReader source)
32 | {
33 | Helpers.DebugAssert(value == null); // since replaces
34 | return source.ReadInt16();
35 | }
36 | public void Write(object value, ProtoWriter dest)
37 | {
38 | ProtoWriter.WriteInt16((short)value, dest);
39 | }
40 | #endif
41 | #if FEAT_COMPILER
42 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
43 | {
44 | ctx.EmitBasicWrite("WriteInt16", valueFrom);
45 | }
46 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
47 | {
48 | ctx.EmitBasicRead("ReadInt16", ExpectedType);
49 | }
50 | #endif
51 |
52 | }
53 | }
54 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/Int32Serializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 | namespace ProtoBuf.Serializers
12 | {
13 | sealed class Int32Serializer : IProtoSerializer
14 | {
15 | #if FEAT_IKVM
16 | readonly Type expectedType;
17 | #else
18 | static readonly Type expectedType = typeof(int);
19 | #endif
20 | public Int32Serializer(ProtoBuf.Meta.TypeModel model)
21 | {
22 | #if FEAT_IKVM
23 | expectedType = model.MapType(typeof(int));
24 | #endif
25 | }
26 | public Type ExpectedType { get { return expectedType; } }
27 |
28 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
29 | bool IProtoSerializer.ReturnsValue { get { return true; } }
30 | #if !FEAT_IKVM
31 | public object Read(object value, ProtoReader source)
32 | {
33 | Helpers.DebugAssert(value == null); // since replaces
34 | return source.ReadInt32();
35 | }
36 | public void Write(object value, ProtoWriter dest)
37 | {
38 | ProtoWriter.WriteInt32((int)value, dest);
39 | }
40 | #endif
41 | #if FEAT_COMPILER
42 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
43 | {
44 | ctx.EmitBasicWrite("WriteInt32", valueFrom);
45 | }
46 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
47 | {
48 | ctx.EmitBasicRead("ReadInt32", ExpectedType);
49 | }
50 | #endif
51 |
52 | }
53 | }
54 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/Int64Serializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 | using ProtoBuf.Meta;
4 |
5 | #if FEAT_IKVM
6 | using Type = IKVM.Reflection.Type;
7 | using IKVM.Reflection;
8 | #else
9 | using System.Reflection;
10 | #endif
11 |
12 | namespace ProtoBuf.Serializers
13 | {
14 | sealed class Int64Serializer : IProtoSerializer
15 | {
16 | #if FEAT_IKVM
17 | readonly Type expectedType;
18 | #else
19 | static readonly Type expectedType = typeof(long);
20 | #endif
21 | public Int64Serializer(ProtoBuf.Meta.TypeModel model)
22 | {
23 | #if FEAT_IKVM
24 | expectedType = model.MapType(typeof(long));
25 | #endif
26 | }
27 |
28 | public Type ExpectedType { get { return expectedType; } }
29 |
30 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
31 | bool IProtoSerializer.ReturnsValue { get { return true; } }
32 | #if !FEAT_IKVM
33 | public object Read(object value, ProtoReader source)
34 | {
35 | Helpers.DebugAssert(value == null); // since replaces
36 | return source.ReadInt64();
37 | }
38 | public void Write(object value, ProtoWriter dest)
39 | {
40 | ProtoWriter.WriteInt64((long)value, dest);
41 | }
42 | #endif
43 | #if FEAT_COMPILER
44 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
45 | {
46 | ctx.EmitBasicWrite("WriteInt64", valueFrom);
47 | }
48 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
49 | {
50 | ctx.EmitBasicRead("ReadInt64", ExpectedType);
51 | }
52 | #endif
53 | }
54 | }
55 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/KeyValuePairDecorator.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace ProtoBuf.Serializers
3 | {
4 | /*
5 | sealed class KeyValuePairDecorator : IProtoSerializer
6 | {
7 | private readonly Type pairType;
8 | private readonly IProtoSerializer keyTail, valueTail;
9 | public KeyValuePairDecorator(Type pairType, IProtoSerializer keyTail, IProtoSerializer valueTail) {
10 | Helpers.DebugAssert(pairType != null);
11 | Helpers.DebugAssert(keyTail != null);
12 | Helpers.DebugAssert(valueTail != null);
13 | Helpers.DebugAssert(pairType == typeof(System.Collections.Generic.KeyValuePair<,>).MakeGenericType(keyTail.ExpectedType,valueTail.ExpectedType), "Key/value type mismatch");
14 | this.pairType = pairType;
15 | this.keyTail = keyTail;
16 | this.valueTail = valueTail;
17 | }
18 |
19 | public Type ExpectedType { get { return pairType;}}
20 | public bool ReturnsValue { get { return true; } }
21 | public bool RequiresOldValue { get { return true; } }
22 | public abstract void Write(object value, ProtoWriter dest)
23 | {
24 |
25 | }
26 | public abstract object Read(object value, ProtoReader source)
27 | {
28 |
29 | }
30 | #if FEAT_COMPILER
31 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
32 | {
33 | throw new NotImplementedException();
34 | }
35 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom) {
36 | throw new NotImplementedException();
37 | }
38 | #endif
39 | }*/
40 | }
41 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/ProtoDecoratorBase.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 | using ProtoBuf.Meta;
4 |
5 | #if FEAT_IKVM
6 | using Type = IKVM.Reflection.Type;
7 | using IKVM.Reflection;
8 | #else
9 | using System.Reflection;
10 | #endif
11 |
12 | namespace ProtoBuf.Serializers
13 | {
14 | abstract class ProtoDecoratorBase : IProtoSerializer
15 | {
16 | public abstract Type ExpectedType { get; }
17 | protected readonly IProtoSerializer Tail;
18 | protected ProtoDecoratorBase(IProtoSerializer tail) { this.Tail = tail; }
19 | public abstract bool ReturnsValue { get; }
20 | public abstract bool RequiresOldValue { get; }
21 | #if !FEAT_IKVM
22 | public abstract void Write(object value, ProtoWriter dest);
23 | public abstract object Read(object value, ProtoReader source);
24 | #endif
25 |
26 | #if FEAT_COMPILER
27 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom) { EmitWrite(ctx, valueFrom); }
28 | protected abstract void EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom);
29 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom) { EmitRead(ctx, valueFrom); }
30 | protected abstract void EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom);
31 | #endif
32 | }
33 | }
34 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/SByteSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 | namespace ProtoBuf.Serializers
12 | {
13 | sealed class SByteSerializer : IProtoSerializer
14 | {
15 | #if FEAT_IKVM
16 | readonly Type expectedType;
17 | #else
18 | static readonly Type expectedType = typeof(sbyte);
19 | #endif
20 | public SByteSerializer(ProtoBuf.Meta.TypeModel model)
21 | {
22 | #if FEAT_IKVM
23 | expectedType = model.MapType(typeof(sbyte));
24 | #endif
25 | }
26 | public Type ExpectedType { get { return expectedType; } }
27 |
28 |
29 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
30 | bool IProtoSerializer.ReturnsValue { get { return true; } }
31 | #if !FEAT_IKVM
32 | public object Read(object value, ProtoReader source)
33 | {
34 | Helpers.DebugAssert(value == null); // since replaces
35 | return source.ReadSByte();
36 | }
37 | public void Write(object value, ProtoWriter dest)
38 | {
39 | ProtoWriter.WriteSByte((sbyte)value, dest);
40 | }
41 | #endif
42 | #if FEAT_COMPILER
43 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
44 | {
45 | ctx.EmitBasicWrite("WriteSByte", valueFrom);
46 | }
47 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
48 | {
49 | ctx.EmitBasicRead("ReadSByte", ExpectedType);
50 | }
51 | #endif
52 |
53 | }
54 | }
55 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/SingleSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 | using ProtoBuf.Meta;
4 |
5 | #if FEAT_IKVM
6 | using Type = IKVM.Reflection.Type;
7 | using IKVM.Reflection;
8 | #else
9 | using System.Reflection;
10 | #endif
11 |
12 |
13 | namespace ProtoBuf.Serializers
14 | {
15 | sealed class SingleSerializer : IProtoSerializer
16 | {
17 | #if FEAT_IKVM
18 | readonly Type expectedType;
19 | #else
20 | static readonly Type expectedType = typeof(float);
21 | #endif
22 | public Type ExpectedType { get { return expectedType; } }
23 |
24 | public SingleSerializer(TypeModel model)
25 | {
26 | #if FEAT_IKVM
27 | expectedType = model.MapType(typeof(float));
28 | #endif
29 | }
30 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
31 | bool IProtoSerializer.ReturnsValue { get { return true; } }
32 | #if !FEAT_IKVM
33 | public object Read(object value, ProtoReader source)
34 | {
35 | Helpers.DebugAssert(value == null); // since replaces
36 | return source.ReadSingle();
37 | }
38 | public void Write(object value, ProtoWriter dest)
39 | {
40 | ProtoWriter.WriteSingle((float)value, dest);
41 | }
42 | #endif
43 |
44 | #if FEAT_COMPILER
45 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
46 | {
47 | ctx.EmitBasicWrite("WriteSingle", valueFrom);
48 | }
49 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
50 | {
51 | ctx.EmitBasicRead("ReadSingle", ExpectedType);
52 | }
53 | #endif
54 | }
55 | }
56 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/StringSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | using ProtoBuf.Meta;
5 |
6 | #if FEAT_IKVM
7 | using Type = IKVM.Reflection.Type;
8 | using IKVM.Reflection;
9 | #else
10 | using System.Reflection;
11 | #endif
12 |
13 | namespace ProtoBuf.Serializers
14 | {
15 | sealed class StringSerializer : IProtoSerializer
16 | {
17 | #if FEAT_IKVM
18 | readonly Type expectedType;
19 | #else
20 | static readonly Type expectedType = typeof(string);
21 | #endif
22 | public StringSerializer(ProtoBuf.Meta.TypeModel model)
23 | {
24 | #if FEAT_IKVM
25 | expectedType = model.MapType(typeof(string));
26 | #endif
27 | }
28 | public Type ExpectedType { get { return expectedType; } }
29 | public void Write(object value, ProtoWriter dest)
30 | {
31 | ProtoWriter.WriteString((string)value, dest);
32 | }
33 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
34 | bool IProtoSerializer.ReturnsValue { get { return true; } }
35 |
36 | public object Read(object value, ProtoReader source)
37 | {
38 | Helpers.DebugAssert(value == null); // since replaces
39 | return source.ReadString();
40 | }
41 | #if FEAT_COMPILER
42 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
43 | {
44 | ctx.EmitBasicWrite("WriteString", valueFrom);
45 | }
46 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
47 | {
48 | ctx.EmitBasicRead("ReadString", ExpectedType);
49 | }
50 | #endif
51 | }
52 | }
53 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/SystemTypeSerializer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | #if !NO_RUNTIME
4 |
5 | #if FEAT_IKVM
6 | using Type = IKVM.Reflection.Type;
7 | using IKVM.Reflection;
8 | #else
9 | using System.Reflection;
10 | #endif
11 |
12 | namespace ProtoBuf.Serializers
13 | {
14 | sealed class SystemTypeSerializer : IProtoSerializer
15 | {
16 | #if FEAT_IKVM
17 | readonly Type expectedType;
18 | #else
19 | static readonly Type expectedType = typeof(System.Type);
20 | #endif
21 | public SystemTypeSerializer(ProtoBuf.Meta.TypeModel model)
22 | {
23 | #if FEAT_IKVM
24 | expectedType = model.MapType(typeof(System.Type));
25 | #endif
26 | }
27 | public Type ExpectedType { get { return expectedType; } }
28 |
29 | #if !FEAT_IKVM
30 | void IProtoSerializer.Write(object value, ProtoWriter dest)
31 | {
32 | ProtoWriter.WriteType((Type)value, dest);
33 | }
34 |
35 | object IProtoSerializer.Read(object value, ProtoReader source)
36 | {
37 | Helpers.DebugAssert(value == null); // since replaces
38 | return source.ReadType();
39 | }
40 | #endif
41 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
42 | bool IProtoSerializer.ReturnsValue { get { return true; } }
43 |
44 | #if FEAT_COMPILER
45 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
46 | {
47 | ctx.EmitBasicWrite("WriteType", valueFrom);
48 | }
49 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
50 | {
51 | ctx.EmitBasicRead("ReadType", ExpectedType);
52 | }
53 | #endif
54 | }
55 | }
56 |
57 | #endif
58 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/TimeSpanSerializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 |
12 |
13 | namespace ProtoBuf.Serializers
14 | {
15 | sealed class TimeSpanSerializer : IProtoSerializer
16 | {
17 | #if FEAT_IKVM
18 | readonly Type expectedType;
19 | #else
20 | static readonly Type expectedType = typeof(TimeSpan);
21 | #endif
22 | public TimeSpanSerializer(ProtoBuf.Meta.TypeModel model)
23 | {
24 | #if FEAT_IKVM
25 | expectedType = model.MapType(typeof(TimeSpan));
26 | #endif
27 | }
28 | public Type ExpectedType { get { return expectedType; } }
29 |
30 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
31 | bool IProtoSerializer.ReturnsValue { get { return true; } }
32 | #if !FEAT_IKVM
33 | public object Read(object value, ProtoReader source)
34 | {
35 | Helpers.DebugAssert(value == null); // since replaces
36 | return BclHelpers.ReadTimeSpan(source);
37 | }
38 | public void Write(object value, ProtoWriter dest)
39 | {
40 | BclHelpers.WriteTimeSpan((TimeSpan)value, dest);
41 | }
42 | #endif
43 | #if FEAT_COMPILER
44 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
45 | {
46 | ctx.EmitWrite(ctx.MapType(typeof(BclHelpers)), "WriteTimeSpan", valueFrom);
47 | }
48 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
49 | {
50 | ctx.EmitBasicRead(ctx.MapType(typeof(BclHelpers)), "ReadTimeSpan", ExpectedType);
51 | }
52 | #endif
53 |
54 | }
55 | }
56 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/UInt16Serializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 |
12 | namespace ProtoBuf.Serializers
13 | {
14 | class UInt16Serializer : IProtoSerializer
15 | {
16 | #if FEAT_IKVM
17 | readonly Type expectedType;
18 | #else
19 | static readonly Type expectedType = typeof(ushort);
20 | #endif
21 | public UInt16Serializer(ProtoBuf.Meta.TypeModel model)
22 | {
23 | #if FEAT_IKVM
24 | expectedType = model.MapType(typeof(ushort));
25 | #endif
26 | }
27 | public virtual Type ExpectedType { get { return expectedType; } }
28 |
29 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
30 | bool IProtoSerializer.ReturnsValue { get { return true; } }
31 | #if !FEAT_IKVM
32 | public virtual object Read(object value, ProtoReader source)
33 | {
34 | Helpers.DebugAssert(value == null); // since replaces
35 | return source.ReadUInt16();
36 | }
37 | public virtual void Write(object value, ProtoWriter dest)
38 | {
39 | ProtoWriter.WriteUInt16((ushort)value, dest);
40 | }
41 | #endif
42 | #if FEAT_COMPILER
43 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
44 | {
45 | ctx.EmitBasicWrite("WriteUInt16", valueFrom);
46 | }
47 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
48 | {
49 | ctx.EmitBasicRead("ReadUInt16", ctx.MapType(typeof(ushort)));
50 | }
51 | #endif
52 | }
53 | }
54 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/UInt32Serializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 |
12 | namespace ProtoBuf.Serializers
13 | {
14 | sealed class UInt32Serializer : IProtoSerializer
15 | {
16 | #if FEAT_IKVM
17 | readonly Type expectedType;
18 | #else
19 | static readonly Type expectedType = typeof(uint);
20 | #endif
21 | public UInt32Serializer(ProtoBuf.Meta.TypeModel model)
22 | {
23 | #if FEAT_IKVM
24 | expectedType = model.MapType(typeof(uint));
25 | #endif
26 | }
27 | public Type ExpectedType { get { return expectedType; } }
28 |
29 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
30 | bool IProtoSerializer.ReturnsValue { get { return true; } }
31 | #if !FEAT_IKVM
32 | public object Read(object value, ProtoReader source)
33 | {
34 | Helpers.DebugAssert(value == null); // since replaces
35 | return source.ReadUInt32();
36 | }
37 | public void Write(object value, ProtoWriter dest)
38 | {
39 | ProtoWriter.WriteUInt32((uint)value, dest);
40 | }
41 | #endif
42 | #if FEAT_COMPILER
43 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
44 | {
45 | ctx.EmitBasicWrite("WriteUInt32", valueFrom);
46 | }
47 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
48 | {
49 | ctx.EmitBasicRead("ReadUInt32", ctx.MapType(typeof(uint)));
50 | }
51 | #endif
52 | }
53 | }
54 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/UInt64Serializer.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 | namespace ProtoBuf.Serializers
12 | {
13 | sealed class UInt64Serializer : IProtoSerializer
14 | {
15 | #if FEAT_IKVM
16 | readonly Type expectedType;
17 | #else
18 | static readonly Type expectedType = typeof(ulong);
19 | #endif
20 | public UInt64Serializer(ProtoBuf.Meta.TypeModel model)
21 | {
22 | #if FEAT_IKVM
23 | expectedType = model.MapType(typeof(ulong));
24 | #endif
25 | }
26 | public Type ExpectedType { get { return expectedType; } }
27 |
28 | bool IProtoSerializer.RequiresOldValue { get { return false; } }
29 | bool IProtoSerializer.ReturnsValue { get { return true; } }
30 |
31 | #if !FEAT_IKVM
32 | public object Read(object value, ProtoReader source)
33 | {
34 | Helpers.DebugAssert(value == null); // since replaces
35 | return source.ReadUInt64();
36 | }
37 | public void Write(object value, ProtoWriter dest)
38 | {
39 | ProtoWriter.WriteUInt64((ulong)value, dest);
40 | }
41 | #endif
42 |
43 | #if FEAT_COMPILER
44 | void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
45 | {
46 | ctx.EmitBasicWrite("WriteUInt64", valueFrom);
47 | }
48 | void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
49 | {
50 | ctx.EmitBasicRead("ReadUInt64", ExpectedType);
51 | }
52 | #endif
53 | }
54 | }
55 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Serializers/UriDecorator.cs:
--------------------------------------------------------------------------------
1 | #if !NO_RUNTIME
2 | using System;
3 |
4 | #if FEAT_IKVM
5 | using Type = IKVM.Reflection.Type;
6 | using IKVM.Reflection;
7 | #else
8 | using System.Reflection;
9 | #endif
10 |
11 | namespace ProtoBuf.Serializers
12 | {
13 | sealed class UriDecorator : ProtoDecoratorBase
14 | {
15 | #if FEAT_IKVM
16 | readonly Type expectedType;
17 | #else
18 | static readonly Type expectedType = typeof(Uri);
19 | #endif
20 | public UriDecorator(ProtoBuf.Meta.TypeModel model, IProtoSerializer tail) : base(tail)
21 | {
22 | #if FEAT_IKVM
23 | expectedType = model.MapType(typeof(Uri));
24 | #endif
25 | }
26 | public override Type ExpectedType { get { return expectedType; } }
27 | public override bool RequiresOldValue { get { return false; } }
28 | public override bool ReturnsValue { get { return true; } }
29 |
30 |
31 | #if !FEAT_IKVM
32 | public override void Write(object value, ProtoWriter dest)
33 | {
34 | Tail.Write(((Uri)value).AbsoluteUri, dest);
35 | }
36 | public override object Read(object value, ProtoReader source)
37 | {
38 | Helpers.DebugAssert(value == null); // not expecting incoming
39 | string s = (string)Tail.Read(null, source);
40 | return s.Length == 0 ? null : new Uri(s);
41 | }
42 | #endif
43 |
44 | #if FEAT_COMPILER
45 | protected override void EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
46 | {
47 | ctx.LoadValue(valueFrom);
48 | ctx.LoadValue(typeof(Uri).GetProperty("AbsoluteUri"));
49 | Tail.EmitWrite(ctx, null);
50 | }
51 | protected override void EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom)
52 | {
53 | Tail.EmitRead(ctx, valueFrom);
54 | ctx.CopyValue();
55 | Compiler.CodeLabel @nonEmpty = ctx.DefineLabel(), @end = ctx.DefineLabel();
56 | ctx.LoadValue(typeof(string).GetProperty("Length"));
57 | ctx.BranchIfTrue(@nonEmpty, true);
58 | ctx.DiscardValue();
59 | ctx.LoadNullRef();
60 | ctx.Branch(@end, true);
61 | ctx.MarkLabel(@nonEmpty);
62 | ctx.EmitCtor(ctx.MapType(typeof(Uri)), ctx.MapType(typeof(string)));
63 | ctx.MarkLabel(@end);
64 |
65 | }
66 | #endif
67 | }
68 | }
69 | #endif
70 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs:
--------------------------------------------------------------------------------
1 | #if FEAT_SERVICEMODEL && PLAT_XMLSERIALIZER
2 | using System;
3 | using System.ServiceModel.Description;
4 | using System.ServiceModel.Dispatcher;
5 |
6 | namespace ProtoBuf.ServiceModel
7 | {
8 | ///
9 | /// Uses protocol buffer serialization on the specified operation; note that this
10 | /// must be enabled on both the client and server.
11 | ///
12 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
13 | public sealed class ProtoBehaviorAttribute : Attribute, IOperationBehavior
14 | {
15 | void IOperationBehavior.AddBindingParameters(OperationDescription operationDescription, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
16 | { }
17 |
18 | void IOperationBehavior.ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
19 | {
20 | IOperationBehavior innerBehavior = new ProtoOperationBehavior(operationDescription);
21 | innerBehavior.ApplyClientBehavior(operationDescription, clientOperation);
22 | }
23 |
24 | void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
25 | {
26 | IOperationBehavior innerBehavior = new ProtoOperationBehavior(operationDescription);
27 | innerBehavior.ApplyDispatchBehavior(operationDescription, dispatchOperation);
28 | }
29 |
30 | void IOperationBehavior.Validate(OperationDescription operationDescription)
31 | { }
32 | }
33 | }
34 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs:
--------------------------------------------------------------------------------
1 | #if FEAT_SERVICEMODEL && PLAT_XMLSERIALIZER
2 | using System;
3 | using System.ServiceModel.Configuration;
4 |
5 | namespace ProtoBuf.ServiceModel
6 | {
7 | ///
8 | /// Configuration element to swap out DatatContractSerilaizer with the XmlProtoSerializer for a given endpoint.
9 | ///
10 | ///
11 | public class ProtoBehaviorExtension : BehaviorExtensionElement
12 | {
13 | ///
14 | /// Creates a new ProtoBehaviorExtension instance.
15 | ///
16 | public ProtoBehaviorExtension()
17 | {
18 | }
19 |
20 | ///
21 | /// Gets the type of behavior.
22 | ///
23 | public override Type BehaviorType
24 | {
25 | get
26 | {
27 | return typeof(ProtoEndpointBehavior);
28 | }
29 | }
30 |
31 | ///
32 | /// Creates a behavior extension based on the current configuration settings.
33 | ///
34 | /// The behavior extension.
35 | protected override object CreateBehavior()
36 | {
37 | return new ProtoEndpointBehavior();
38 | }
39 | }
40 | }
41 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/ServiceModel/ProtoOperationBehavior.cs:
--------------------------------------------------------------------------------
1 | #if FEAT_SERVICEMODEL && PLAT_XMLSERIALIZER && !NO_GENERICS
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Runtime.Serialization;
5 | using System.ServiceModel.Description;
6 | using System.Xml;
7 | using ProtoBuf.Meta;
8 |
9 | namespace ProtoBuf.ServiceModel
10 | {
11 | ///
12 | /// Describes a WCF operation behaviour that can perform protobuf serialization
13 | ///
14 | public sealed class ProtoOperationBehavior : DataContractSerializerOperationBehavior
15 | {
16 | private TypeModel model;
17 | ///
18 | /// The type-model that should be used with this behaviour
19 | ///
20 | public TypeModel Model
21 | {
22 | get { return model; }
23 | set {
24 | if (value == null) throw new ArgumentNullException("Model");
25 | model = value;
26 | }
27 |
28 | }
29 | ///
30 | /// Create a new ProtoOperationBehavior instance
31 | ///
32 | public ProtoOperationBehavior(OperationDescription operation) : base(operation)
33 | {
34 | #if !NO_RUNTIME
35 | model = RuntimeTypeModel.Default;
36 | #endif
37 | }
38 | //public ProtoOperationBehavior(OperationDescription operation, DataContractFormatAttribute dataContractFormat) : base(operation, dataContractFormat) { }
39 |
40 | ///
41 | /// Creates a protobuf serializer if possible (falling back to the default WCF serializer)
42 | ///
43 | public override XmlObjectSerializer CreateSerializer(Type type, System.Xml.XmlDictionaryString name, System.Xml.XmlDictionaryString ns, IList knownTypes)
44 | {
45 | if (model == null) throw new InvalidOperationException("No Model instance has been assigned to the ProtoOperationBehavior");
46 | return XmlProtoSerializer.TryCreate(model, type) ?? base.CreateSerializer(type, name, ns, knownTypes);
47 | }
48 | }
49 | }
50 | #endif
--------------------------------------------------------------------------------
/NFDep/protobuf-net/SubItemToken.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace ProtoBuf
3 | {
4 | ///
5 | /// Used to hold particulars relating to nested objects. This is opaque to the caller - simply
6 | /// give back the token you are given at the end of an object.
7 | ///
8 | public struct SubItemToken
9 | {
10 | internal readonly int value;
11 | internal SubItemToken(int value) {
12 | this.value = value;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/NFDep/protobuf-net/Web/TODO.txt:
--------------------------------------------------------------------------------
1 | Create an IHttpHandler (ex. Silverlight) for hosting proto-rpc in ASP.NET
2 |
3 | Create a ProtoHost (ex. Silverlight) for hosting proto-rpc standalone;
4 | * HttpListenere for http?
5 | * And what for Tcp?
--------------------------------------------------------------------------------
/NFDep/protobuf-net/WireType.cs:
--------------------------------------------------------------------------------
1 | namespace ProtoBuf
2 | {
3 | ///
4 | /// Indicates the encoding used to represent an individual value in a protobuf stream
5 | ///
6 | public enum WireType
7 | {
8 | ///
9 | /// Represents an error condition
10 | ///
11 | None = -1,
12 |
13 | ///
14 | /// Base-128 variant-length encoding
15 | ///
16 | Variant = 0,
17 |
18 | ///
19 | /// Fixed-length 8-byte encoding
20 | ///
21 | Fixed64 = 1,
22 |
23 | ///
24 | /// Length-variant-prefixed encoding
25 | ///
26 | String = 2,
27 |
28 | ///
29 | /// Indicates the start of a group
30 | ///
31 | StartGroup = 3,
32 |
33 | ///
34 | /// Indicates the end of a group
35 | ///
36 | EndGroup = 4,
37 |
38 | ///
39 | /// Fixed-length 4-byte encoding
40 | /// 10
41 | Fixed32 = 5,
42 |
43 | ///
44 | /// This is not a formal wire-type in the "protocol buffers" spec, but
45 | /// denotes a variant integer that should be interpreted using
46 | /// zig-zag semantics (so -ve numbers aren't a significant overhead)
47 | ///
48 | SignedVariant = WireType.Variant | (1 << 3),
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/NFServer/NFGameServerPlugin/NFGameServerPlugin.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFGameServerPlugin : NFIPlugin
15 | {
16 | public NFGameServerPlugin()
17 | {
18 |
19 | }
20 |
21 | public override void Init()
22 | {
23 | CreateModule();
24 | CreateModule();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/NFServer/NFGameServerPlugin/NFIGameServerNetModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | class NFIGameServerNetModule : NFNetModule
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/NFServer/NFGameServerPlugin/NFIGameToWorldModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | class NFIGameToWorldModule : NFClusterClientModule
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/NFServer/NFGameServerPlugin/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFGameServerPlugin")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFGameServerPlugin")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("667d6545-6346-4a08-83a9-7330ea30ded0")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFServer/NFLoginServerPlugin/NFILoginServerNetModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | class NFILoginServerNetModule : NFNetModule
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/NFServer/NFLoginServerPlugin/NFLoginServerPlugin.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFLoginServerPlugin : NFIPlugin
15 | {
16 | public NFLoginServerPlugin()
17 | {
18 | }
19 | public override void Init()
20 | {
21 | CreateModule();
22 |
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/NFServer/NFLoginServerPlugin/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFLoginServerPlugin")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFLoginServerPlugin")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("15af4dcd-6543-40c0-8958-c770846d4c7b")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFServer/NFMasterServerPlugin/NFIMasterServerNetModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | class NFIMasterServerNetModule : NFNetModule
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/NFServer/NFMasterServerPlugin/NFMasterServerPlugin.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFMasterServerPlugin : NFIPlugin
15 | {
16 | public override void Init()
17 | {
18 | CreateModule();
19 | }
20 |
21 | public override void AfterInit() { }
22 |
23 | public override void BeforeShut() { }
24 |
25 | public override void Shut() { }
26 |
27 | public override void Execute() { }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/NFServer/NFMasterServerPlugin/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFMasterServerPlugin")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFMasterServerPlugin")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("dc16b545-d3b5-48c4-be3d-0fe680dada44")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFServer/NFProxyServerPlugin/NFIProxyServerNet_ServerModule.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace NFrame
8 | {
9 | public abstract class NFIProxyServerNet_ServerModule : NFNetModule
10 | {
11 |
12 | public abstract int Transpond(UInt32 nSockIndex, UInt16 nMsgID, string msg);
13 |
14 | public abstract int EnterGameSuccessEvent(NFGUID xClientID, NFGUID xPlayerID);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/NFServer/NFProxyServerPlugin/NFIProxyToGameModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | class NFIProxyToGameModule : NFClusterClientModule
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/NFServer/NFProxyServerPlugin/NFIProxyToWorldModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | class NFIProxyToWorldModule : NFClusterClientModule
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/NFServer/NFProxyServerPlugin/NFProxyServerPlugin.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFProxyServerPlugin : NFIPlugin
15 | {
16 | public NFProxyServerPlugin()
17 | {
18 | }
19 |
20 | public override void Init()
21 | {
22 | CreateModule();
23 | CreateModule();
24 | CreateModule();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/NFServer/NFProxyServerPlugin/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFProxyServerPlugin")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFProxyServerPlugin")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("b593f1bf-3fb8-46e8-862a-c6ccd2b0b170")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/NFServer/NFWorldServerPlugin/NFIWorldServerNetModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | class NFIWorldServerNetModule : NFNetModule
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/NFServer/NFWorldServerPlugin/NFIWorldToMasterModule.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | class NFIWorldToMasterModule : NFClusterClientModule
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/NFServer/NFWorldServerPlugin/NFWorldServerPlugin.cs:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------
2 | //
3 | // Copyright (C) 2015-2015 lvsheng.huang
4 | //
5 | //-----------------------------------------------------------------------
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace NFrame
13 | {
14 | public class NFWorldServerPlugin : NFIPlugin
15 | {
16 | public NFWorldServerPlugin()
17 | {
18 |
19 | }
20 |
21 | public override void Init()
22 | {
23 | CreateModule();
24 | CreateModule();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/NFServer/NFWorldServerPlugin/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NFWorldServerPlugin")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("NFWorldServerPlugin")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("b6d5dce9-0f6d-4eda-bed8-f1434f43c26f")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/_Out/Debug/NFGameServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Debug/NFLoginServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Debug/NFMasterServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Debug/NFProxyServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Debug/NFWorldServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Lib/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/BB_Build.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/BB_Build.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/BB_Player.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/BB_Player.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Buff.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Buff.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/ChatGroup.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/ChatGroup.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Cost.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Cost.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/EffectData.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/EffectData.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Equip.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Equip.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Guild.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Guild.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/GuildName.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/GuildName.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Hero.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Hero.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/IObject.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/IObject.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/InitProperty.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/InitProperty.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Item.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Item.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Language.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Language.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/NPC.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/NPC.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Player.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Player.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Scene.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Scene.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Server.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Server.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Shop.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Shop.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Skill.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Skill.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/SkillRef.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/SkillRef.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/SqlServer.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/SqlServer.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/StateFuncResources.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/StateFuncResources.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/StateFunction.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/StateFunction.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Ini/Task.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Ini/Task.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/BB_Build.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/BB_Build.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/BB_Player.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/BB_Player.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Buff.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Buff.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/ChatGroup.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/ChatGroup.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Cost.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Cost.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/EffectData.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/EffectData.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Equip.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Equip.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Guild.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Guild.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/GuildName.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/GuildName.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/IObject.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/IObject.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/InitProperty.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/InitProperty.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Item.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Item.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Language.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Language.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/NPC.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/NPC.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Player.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Player.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Scene.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Scene.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Server.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Server.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Shop.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Shop.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Skill.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Skill.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/SkillRef.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/SkillRef.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/SqlServer.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/SqlServer.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/StateFuncResources.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/StateFuncResources.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/StateFunction.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/StateFunction.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Excel_Struct/Task.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Excel_Struct/Task.xlsx
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/Components/Test.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Ini/Components/Test.lua
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/FleetingSystem/Demo.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NFZoneServer/Scene/CloneScene/File.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NFZoneServer/Scene/CloneScene/Npc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NFZoneServer/Scene/PioneerNoob/File.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NFZoneServer/Scene/PioneerNoob/NPC.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NFZoneServer/Scene/RebellerNoob/File.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NFZoneServer/Scene/RebellerNoob/Npc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/BB_Build.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iQnVpbGRfQWx0YXJfMSIgVHlwZT0iMCIgU3ViVHlwZT0iMCIgUHJlZmFiPSJQcmVmYWJzL09iamVjdC9BbHRhcl8xXzEiIE5vcm1hbFN0YXRlRnVuYz0iRnVuYzEiIFVwU3RhdGVGdW5jPSJGdW5jMSIgSWNvbj0iQWx0YXJfMV8xIiBTaG93TmFtZT0i0ru8trzAzLMiIERlc2M9ItK7vLa8wMyzIiAvPg0KICA8T2JqZWN0IElEPSJCdWlsZF9BcmVuYV8xIiBUeXBlPSIwIiBTdWJUeXBlPSIwIiBQcmVmYWI9IlByZWZhYnMvT2JqZWN0L0FyZW5hXzFfMSIgTm9ybWFsU3RhdGVGdW5jPSJGdW5jMSIgVXBTdGF0ZUZ1bmM9IkZ1bmMxIiBJY29uPSJBcmVuYV8xXzEiIFNob3dOYW1lPSLSu7y2vrq8vLOhIiBEZXNjPSLSu7y2vrq8vLOhIiAvPg0KICA8T2JqZWN0IElEPSJCdWlsZF9DYW1wXzEiIFR5cGU9IjAiIFN1YlR5cGU9IjAiIFByZWZhYj0iUHJlZmFicy9PYmplY3QvQ2FtcF8xXzEiIE5vcm1hbFN0YXRlRnVuYz0iRnVuYzEiIFVwU3RhdGVGdW5jPSJGdW5jMSIgSWNvbj0iQ2FtcF8xXzEiIFNob3dOYW1lPSLSu7y2sfjTqiIgRGVzYz0i0ru8trH406oiIC8+DQogIDxPYmplY3QgSUQ9IkJ1aWxkX0dvbGRfTWluZV8xIiBUeXBlPSIwIiBTdWJUeXBlPSIwIiBQcmVmYWI9IlByZWZhYnMvT2JqZWN0L0dvbGRNaW5lXzFfMSIgTm9ybWFsU3RhdGVGdW5jPSJGdW5jMSIgVXBTdGF0ZUZ1bmM9IkZ1bmMxIiBJY29uPSJHb2xkTWluZV8xXzEiIFNob3dOYW1lPSLSu7y2vfC/8yIgRGVzYz0i0ru8tr3wv/MiIC8+DQogIDxPYmplY3QgSUQ9IkJ1aWxkX0l0ZW1fSG91cnNlXzEiIFR5cGU9IjAiIFN1YlR5cGU9IjAiIFByZWZhYj0iUHJlZmFicy9PYmplY3QvSXRlbV9ob3Vyc2VfMV8xIiBOb3JtYWxTdGF0ZUZ1bmM9IkZ1bmMxIiBVcFN0YXRlRnVuYz0iRnVuYzEiIEljb249Ikl0ZW1faG91cnNlXzFfMSIgU2hvd05hbWU9ItK7vLa1wL7fzt0iIERlc2M9ItK7vLa1wL7fzt0iIC8+DQogIDxPYmplY3QgSUQ9IkJ1aWxkX0xlYWd1ZV8xIiBUeXBlPSIwIiBTdWJUeXBlPSIwIiBQcmVmYWI9IlByZWZhYnMvT2JqZWN0L0xlYWd1ZV8xXzEiIE5vcm1hbFN0YXRlRnVuYz0iRnVuYzEiIFVwU3RhdGVGdW5jPSJGdW5jMSIgSWNvbj0iTGVhZ3VlXzFfMSIgU2hvd05hbWU9ItK7vLa5q7vhIiBEZXNjPSLSu7y2uau74SIgLz4NCiAgPE9iamVjdCBJRD0iQnVpbGRfTWFnaWNfSG91cnNlXzEiIFR5cGU9IjAiIFN1YlR5cGU9IjAiIFByZWZhYj0iUHJlZmFicy9PYmplY3QvTWFnaWNIb3Vyc2VfMV8xIiBOb3JtYWxTdGF0ZUZ1bmM9IkZ1bmMxIiBVcFN0YXRlRnVuYz0iRnVuYzEiIEljb249Ik1hZ2ljSG91cnNlXzFfMSIgU2hvd05hbWU9ItK7vLbEp7eozt0iIERlc2M9ItK7vLbEp7eozt0iIC8+DQogIDxPYmplY3QgSUQ9IkJ1aWxkX1Rvd2VyXzEiIFR5cGU9IjAiIFN1YlR5cGU9IjAiIFByZWZhYj0iUHJlZmFicy9PYmplY3QvVG93ZXJfMV8xIiBOb3JtYWxTdGF0ZUZ1bmM9IkZ1bmMxIiBVcFN0YXRlRnVuYz0iRnVuYzEiIEljb249IlRvd2VyXzFfMSIgU2hvd05hbWU9ItK7vLa8/cv+IiBEZXNjPSLSu7y2vP3L/iIgLz4NCiAgPE9iamVjdCBJRD0iQnVpbGRfVG93bl8xIiBUeXBlPSIwIiBTdWJUeXBlPSIwIiBQcmVmYWI9IlByZWZhYnMvT2JqZWN0L1Rvd25fMV8xIiBOb3JtYWxTdGF0ZUZ1bmM9IkZ1bmMxIiBVcFN0YXRlRnVuYz0iRnVuYzEiIEljb249IlRvd25fMV8xIiBTaG93TmFtZT0i0ru8trTzzPwiIERlc2M9ItK7vLa088z8IiAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/BB_Player.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iQkJfUGxheWVyMSIgVHlwZT0iMSIgSXRlbUlEPSJ0ZXN0XzEiIEdvbGQ9IjEiIElyb249IjEiIFN0b25lPSIxIiBEaWFtb25kPSIxIiBMZXZlbD0iMSIgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Buff.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iQnVmZl8xIiBFZmZlY3RUeXBlPSIxIiBFZmZlY3RWYWx1ZVR5cGU9IjEiIEVmZmVjdFZhbHVlUmVmZXJUeXBlPSIxIiBFZmZlY3RUaW1lVmFsdWU9IjEiIEVmZmVjdFRpbWVJbnRlcnZhbD0iMSIgV2FzaEdyb3VwSUQ9IjEiIFJldmVyc2VSZWZlclR5cGU9IjEiIEVmZmVjdENsZWFyT25EZWFkPSIxIiBEb3duU2F2ZVR5cGU9IjEiIC8+DQogIDxPYmplY3QgSUQ9IkJ1ZmZfMiIgRWZmZWN0VHlwZT0iMSIgRWZmZWN0VmFsdWVUeXBlPSIxIiBFZmZlY3RWYWx1ZVJlZmVyVHlwZT0iMSIgRWZmZWN0VGltZVZhbHVlPSIxIiBFZmZlY3RUaW1lSW50ZXJ2YWw9IjEiIFdhc2hHcm91cElEPSIxIiBSZXZlcnNlUmVmZXJUeXBlPSIxIiBFZmZlY3RDbGVhck9uRGVhZD0iMSIgRG93blNhdmVUeXBlPSIxIiAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/ChatGroup.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTCAvPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Cost.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iQ29zdF8xIiBDb3N0TW9uZXk9IjEwMCIgQ29zdERpYW1vbmQ9IjAiIENvc3RWUD0iMCIgQ29zdEhvbm91cj0iMCIgLz4NCiAgPE9iamVjdCBJRD0iQ29zdF8yIiBDb3N0TW9uZXk9IjAiIENvc3REaWFtb25kPSIxMDAiIENvc3RWUD0iMCIgQ29zdEhvbm91cj0iMCIgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Equip.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iRVFVSVBfWlNfTV8wX1dFQVBPTl8xMDAwMSIgSXRlbVR5cGU9IjIiIEl0ZW1TdWJUeXBlPSIwIiBMZXZlbD0iMSIgSm9iPSIiIFF1YWxpdHk9IjEiIFNob3dOYW1lPSLS+9GqtbYiIERlc2M9IiIgRWZmZWN0RGF0YT0iRXF1aXBfMTAwIiBQcmVmYWJQYXRoPSJEYW8vRGFvXzAwMSIgRHJvcFByZVBhdGg9IlByZWZhYnMvTWlzYy9Ecm9wL0Ryb3BfV2VhcG9uIiBCdXlQcmljZT0iMCIgU2FsZVByaWNlPSIwIiBTdWl0SUQ9IjAiIFN1aXRCdWZmSUQ9IjAiIC8+DQogIDxPYmplY3QgSUQ9IkVRVUlQX1pTX01fMF9XRUFQT05fMTAwMDIiIEl0ZW1UeXBlPSIyIiBJdGVtU3ViVHlwZT0iMCIgTGV2ZWw9IjUiIEpvYj0iIiBRdWFsaXR5PSIxIiBTaG93TmFtZT0iu8rV37W2IiBEZXNjPSIiIEVmZmVjdERhdGE9IkVxdWlwXzEwMSIgUHJlZmFiUGF0aD0iRGFvL0Rhb18wMDEiIERyb3BQcmVQYXRoPSJQcmVmYWJzL01pc2MvRHJvcC9Ecm9wX1dlYXBvbiIgQnV5UHJpY2U9IjAiIFNhbGVQcmljZT0iMCIgU3VpdElEPSIwIiBTdWl0QnVmZklEPSIwIiAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Guild.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTCAvPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/GuildName.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTCAvPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Hero.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTCAvPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/IObject.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTCAvPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Language.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iTGFuZ2FnZV9Db21tXzEiIEVuZ2xpc2g9IkxhbmdhZ2VfMSIgQ2hpbmVzZT0iyLfIzyIgLz4NCiAgPE9iamVjdCBJRD0iTGFuZ2FnZV9Db21tXzIiIEVuZ2xpc2g9IkxhbmdhZ2VfMiIgQ2hpbmVzZT0iyKHP+yIgLz4NCiAgPE9iamVjdCBJRD0iTGFuZ2FnZV9Db21tXzMiIEVuZ2xpc2g9IkxhbmdhZ2VfMyIgQ2hpbmVzZT0itcfCvCIgLz4NCiAgPE9iamVjdCBJRD0iTGFuZ2FnZV9Db21tXzQiIEVuZ2xpc2g9IkxhbmdhZ2VfNCIgQ2hpbmVzZT0itLS9qL3HyasiIC8+DQogIDxPYmplY3QgSUQ9IkxhbmdhZ2VfQ29tbV81IiBFbmdsaXNoPSJMYW5nYWdlXzUiIENoaW5lc2U9Ir34yOvTzs+3IiAvPg0KICA8T2JqZWN0IElEPSJMYW5nYWdlX0NvbW1fNiIgRW5nbGlzaD0iTGFuZ2FnZV82IiBDaGluZXNlPSLW0M7EXzYiIC8+DQogIDxPYmplY3QgSUQ9IkxhbmdhZ2VfSFAiIEVuZ2xpc2g9IiIgQ2hpbmVzZT0iIiAvPg0KICA8T2JqZWN0IElEPSJMYW5nYWdlX01BWEhQIiBFbmdsaXNoPSIiIENoaW5lc2U9IiIgLz4NCiAgPE9iamVjdCBJRD0iTGFuZ2FnZV9NUCIgRW5nbGlzaD0iIiBDaGluZXNlPSIiIC8+DQogIDxPYmplY3QgSUQ9IkxhbmdhZ2VfTUFYTVAiIEVuZ2xpc2g9IiIgQ2hpbmVzZT0iIiAvPg0KICA8T2JqZWN0IElEPSJMYW5nYWdlX1ZQIiBFbmdsaXNoPSIiIENoaW5lc2U9IiIgLz4NCiAgPE9iamVjdCBJRD0iTGFuZ2FnZV9BVFRBQ0siIEVuZ2xpc2g9IiIgQ2hpbmVzZT0iIiAvPg0KICA8T2JqZWN0IElEPSJMYW5nYWdlX0d1aWxkXzEiIEVuZ2xpc2g9IkxhbmdhZ2VfMSIgQ2hpbmVzZT0iyLfIz9KqvNPI69XiuPa5q7vhwvCjv7Xju/fIt8jPvNPI6yIgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Player.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTCAvPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Server.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iR2FtZVNlcnZlcl8xIiBTZXJ2ZXJJRD0iNiIgTmFtZT0iR2FtZVNlcnZlcl8xIiBNYXhPbmxpbmU9IjUwMDAiIENwdUNvdW50PSIxIiBJUD0iMTI3LjAuMC4xIiBQb3J0PSIxNjAwMSIgVHlwZT0iNiIgLz4NCiAgPE9iamVjdCBJRD0iV29ybGRTZXJ2ZXJfMSIgU2VydmVySUQ9IjciIE5hbWU9IldvcmxkU2VydmVyXzEiIE1heE9ubGluZT0iNTAwMCIgQ3B1Q291bnQ9IjEiIElQPSIxMjcuMC4wLjEiIFBvcnQ9IjE3MDAxIiBUeXBlPSI3IiAvPg0KICA8T2JqZWN0IElEPSJQcm94eVNlcnZlcl8xIiBTZXJ2ZXJJRD0iNSIgTmFtZT0iUHJveHlTZXJ2ZXJfMSIgTWF4T25saW5lPSI1MDAwIiBDcHVDb3VudD0iMSIgSVA9IjEyNy4wLjAuMSIgUG9ydD0iMTUwMDEiIFR5cGU9IjUiIC8+DQogIDxPYmplY3QgSUQ9Ik1hc3RlclNlcnZlcl8xIiBTZXJ2ZXJJRD0iMyIgTmFtZT0iTWFzdGVyU2VydmVyXzEiIE1heE9ubGluZT0iNTAwMCIgQ3B1Q291bnQ9IjEiIElQPSIxMjcuMC4wLjEiIFBvcnQ9IjEzMDAxIiBUeXBlPSIzIiAvPg0KICA8T2JqZWN0IElEPSJMb2dpblNlcnZlcl8xIiBTZXJ2ZXJJRD0iNCIgTmFtZT0iTG9naW5TZXJ2ZXJfMSIgTWF4T25saW5lPSI1MDAwIiBDcHVDb3VudD0iMSIgSVA9IjEyNy4wLjAuMSIgUG9ydD0iMTQwMDEiIFR5cGU9IjQiIC8+DQo8L1hNTD4=
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Skill.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iTk9STUFMQVRUQUNLMSIgTmFtZT0ic2tpbGwxIiBOZXh0TGV2ZWxJRD0iTk9STUFMQVRUQUNLMiIgTmVlZE1vbmV5PSIzMDAiIE5lZWRMZXZlbD0iNSIgU2tpbGxUeXBlPSIwIiBBbmltYVN0YXRlPSI2MCIgQXRrRGlzPSIyLjUiIEF1dG9BdGtEaXM9IjEiIE5lZWRUYXI9IjAiIERlZmF1bHRIaXRUaW1lPSIwLjgiIFNob3dOYW1lPSIiIC8+DQogIDxPYmplY3QgSUQ9Ik5PUk1BTEFUVEFDSzIiIE5hbWU9InNraWxsMSIgTmV4dExldmVsSUQ9Ik5PUk1BTEFUVEFDSzIiIE5lZWRNb25leT0iMzAwIiBOZWVkTGV2ZWw9IjUiIFNraWxsVHlwZT0iMCIgQW5pbWFTdGF0ZT0iNjEiIEF0a0Rpcz0iMi41IiBBdXRvQXRrRGlzPSIxIiBOZWVkVGFyPSIwIiBEZWZhdWx0SGl0VGltZT0iMC44IiBTaG93TmFtZT0iIiAvPg0KICA8T2JqZWN0IElEPSJOT1JNQUxBVFRBQ0szIiBOYW1lPSJza2lsbDEiIE5leHRMZXZlbElEPSJOT1JNQUxBVFRBQ0syIiBOZWVkTW9uZXk9IjMwMCIgTmVlZExldmVsPSI1IiBTa2lsbFR5cGU9IjAiIEFuaW1hU3RhdGU9IjYyIiBBdGtEaXM9IjIuNSIgQXV0b0F0a0Rpcz0iMSIgTmVlZFRhcj0iMCIgRGVmYXVsdEhpdFRpbWU9IjAuOCIgU2hvd05hbWU9IiIgLz4NCiAgPE9iamVjdCBJRD0iTk9STUFMVEhVTVAiIE5hbWU9InNraWxsMSIgTmV4dExldmVsSUQ9Ik5PUk1BTEFUVEFDSzIiIE5lZWRNb25leT0iMzAwIiBOZWVkTGV2ZWw9IjUiIFNraWxsVHlwZT0iMCIgQW5pbWFTdGF0ZT0iNjMiIEF0a0Rpcz0iMi41IiBBdXRvQXRrRGlzPSIxIiBOZWVkVGFyPSIwIiBEZWZhdWx0SGl0VGltZT0iMC44IiBTaG93TmFtZT0iIiAvPg0KICA8T2JqZWN0IElEPSJTS0lMTDEiIE5hbWU9InNraWxsMSIgTmV4dExldmVsSUQ9Ik5PUk1BTEFUVEFDSzIiIE5lZWRNb25leT0iMzAwIiBOZWVkTGV2ZWw9IjUiIFNraWxsVHlwZT0iMCIgQW5pbWFTdGF0ZT0iMTAxIiBBdGtEaXM9IjIuNSIgQXV0b0F0a0Rpcz0iMSIgTmVlZFRhcj0iMCIgRGVmYXVsdEhpdFRpbWU9IjAuOCIgU2hvd05hbWU9IiIgLz4NCiAgPE9iamVjdCBJRD0iU0tJTEwyIiBOYW1lPSJza2lsbDEiIE5leHRMZXZlbElEPSJOT1JNQUxBVFRBQ0syIiBOZWVkTW9uZXk9IjMwMCIgTmVlZExldmVsPSI1IiBTa2lsbFR5cGU9IjAiIEFuaW1hU3RhdGU9IjEwMiIgQXRrRGlzPSIyLjUiIEF1dG9BdGtEaXM9IjEiIE5lZWRUYXI9IjAiIERlZmF1bHRIaXRUaW1lPSIwLjgiIFNob3dOYW1lPSIiIC8+DQogIDxPYmplY3QgSUQ9IlNLSUxMMyIgTmFtZT0ic2tpbGwxIiBOZXh0TGV2ZWxJRD0iTk9STUFMQVRUQUNLMiIgTmVlZE1vbmV5PSIzMDAiIE5lZWRMZXZlbD0iNSIgU2tpbGxUeXBlPSIwIiBBbmltYVN0YXRlPSIxMDMiIEF0a0Rpcz0iMi41IiBBdXRvQXRrRGlzPSIxIiBOZWVkVGFyPSIwIiBEZWZhdWx0SGl0VGltZT0iMC44IiBTaG93TmFtZT0iIiAvPg0KICA8T2JqZWN0IElEPSJTS0lMTDQiIE5hbWU9InNraWxsMSIgTmV4dExldmVsSUQ9Ik5PUk1BTEFUVEFDSzIiIE5lZWRNb25leT0iMzAwIiBOZWVkTGV2ZWw9IjUiIFNraWxsVHlwZT0iMCIgQW5pbWFTdGF0ZT0iMTA0IiBBdGtEaXM9IjIuNSIgQXV0b0F0a0Rpcz0iMSIgTmVlZFRhcj0iMCIgRGVmYXVsdEhpdFRpbWU9IjAuOCIgU2hvd05hbWU9IiIgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/SkillRef.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTCAvPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/SqlServer.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iU3FsU2VydmVyXzEiIFNlcnZlcklEPSIwMDAxMDcwMDEiIElQPSIxMjcuMC4wLjEiIFBvcnQ9IjcwMDEiIFNxbElQPSIxOTIuMTY4LjAuMjQiIFNxbFBvcnQ9IjMzMDYiIFNxbE5hbWU9ImFwcF90ZXN0IiBTcWxVc2VyPSJyb290IiBTcWxQd2Q9IjEyMzQ1NiIgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/StateFuncResources.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iRUZUX0lORk8iIEF0bGFzX1Jlc0lEPSJtc2dfaWNvbiIgLz4NCiAgPE9iamVjdCBJRD0iRUZUX0JPT09TVCIgQXRsYXNfUmVzSUQ9IlNzZXR0aW5nIiAvPg0KICA8T2JqZWN0IElEPSJFRlRfTFZMVVAiIEF0bGFzX1Jlc0lEPSJTc2V0dGluZyIgLz4NCiAgPE9iamVjdCBJRD0iRUZUX0NSRUFURV9TT0xERVIiIEF0bGFzX1Jlc0lEPSJTc2V0dGluZyIgLz4NCiAgPE9iamVjdCBJRD0iRUZUX0NSRUFURV9TUEVFTCIgQXRsYXNfUmVzSUQ9IlNzZXR0aW5nIiAvPg0KICA8T2JqZWN0IElEPSJFRlRfUkVTRUFSQ0giIEF0bGFzX1Jlc0lEPSJTc2V0dGluZyIgLz4NCiAgPE9iamVjdCBJRD0iRUZUX0NPTExFQ1RfR09MRCIgQXRsYXNfUmVzSUQ9IlNzZXR0aW5nIiAvPg0KICA8T2JqZWN0IElEPSJFRlRfQ09MTEVDVF9TVE9ORSIgQXRsYXNfUmVzSUQ9IlNzZXR0aW5nIiAvPg0KICA8T2JqZWN0IElEPSJFRlRfQ09MTEVDVF9TVEVFTCIgQXRsYXNfUmVzSUQ9IlNzZXR0aW5nIiAvPg0KICA8T2JqZWN0IElEPSJFRlRfQ09MTEVDVF9ESUFNT05EIiBBdGxhc19SZXNJRD0iU3NldHRpbmciIC8+DQogIDxPYmplY3QgSUQ9IkVGVF9TRUxMIiBBdGxhc19SZXNJRD0iU3NldHRpbmciIC8+DQogIDxPYmplY3QgSUQ9IkVGVF9SRVBBSVIiIEF0bGFzX1Jlc0lEPSJTc2V0dGluZyIgLz4NCiAgPE9iamVjdCBJRD0iRUZUX0NBTkNFTCIgQXRsYXNfUmVzSUQ9IlNzZXR0aW5nIiAvPg0KICA8T2JqZWN0IElEPSJFRlRfRklOSVNIIiBBdGxhc19SZXNJRD0iU3NldHRpbmciIC8+DQo8L1hNTD4=
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Ini/NPC/Task.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPE9iamVjdCBJRD0iVGFzazEiIFRhc2tOYW1lPSJUYXNrMSIgVHlwZT0iMSIgTmV4dFRhc2tJRD0iVGFzazIiIEtpbGxNb25zdGVyTmFtZT0iQXR0YWNrTnBjMSIgS2lsbENvdW50PSIxIiBMZXZlbFJlcT0iMSIgQXdhcmRFeHA9IjEwMCIgQXdhcmRHb2xkPSIxMTAiIEF3YXJkUGFjaz0iRHJvcEJhZ18xIiAvPg0KICA8T2JqZWN0IElEPSJUYXNrMiIgVGFza05hbWU9IlRhc2syIiBUeXBlPSIxIiBOZXh0VGFza0lEPSJUYXNrMyIgS2lsbE1vbnN0ZXJOYW1lPSJBdHRhY2tOcGMxIiBLaWxsQ291bnQ9IjIiIExldmVsUmVxPSIyIiBBd2FyZEV4cD0iMjAwIiBBd2FyZEdvbGQ9IjIyMCIgQXdhcmRQYWNrPSJEcm9wQmFnXzEiIC8+DQogIDxPYmplY3QgSUQ9IlRhc2szIiBUYXNrTmFtZT0iVGFzazMiIFR5cGU9IjEiIE5leHRUYXNrSUQ9IlRhc2s0IiBLaWxsTW9uc3Rlck5hbWU9IkF0dGFja05wYzEiIEtpbGxDb3VudD0iMyIgTGV2ZWxSZXE9IjMiIEF3YXJkRXhwPSIzMDAiIEF3YXJkR29sZD0iMzMwIiBBd2FyZFBhY2s9IkRyb3BCYWdfMSIgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/BB_Build.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IlR5cGUiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIwIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Ir2o1v7A4NDNIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iU3ViVHlwZSIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjAiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0ivajW/tfTwODQzSIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlByZWZhYiIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjAiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0i1KTJ6MK3vrYiIC8+DQogICAgPFByb3BlcnR5IElkPSJOb3JtYWxTdGF0ZUZ1bmMiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIwIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IsbVzajXtMysz8K6r8r9IiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iVXBTdGF0ZUZ1bmMiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIwIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Isn9vLbXtMysuq/K/SIgLz4NCiAgICA8UHJvcGVydHkgSWQ9Ikljb24iIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIwIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Is28seoiIC8+DQogICAgPFByb3BlcnR5IElkPSJTaG93TmFtZSIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjAiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iw/vX1iIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IkRlc2MiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIwIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IsPoyvYiIC8+DQogIDwvUHJvcGVydHlzPg0KICA8UmVjb3JkcyAvPg0KICA8Q29tcG9uZW50cyAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/Buff.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IkVmZmVjdFR5cGUiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIxIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9ItOwz+zK9NDUwODQzSjQp7n7wODQzSkgIMn6w/yjrLeowaYov8nX6brPLLX+vNMpIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iRWZmZWN0VmFsdWVUeXBlIiBUeXBlPSJpbnQiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMSIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSLTsM/s1rXA4NDNILDZt9axyCC++LbU1rUtLcjnufvKx7/Y1sbK9NDUv6q52KOs1PLWu8Tcyse++LbU1rUiIC8+DQogICAgPFByb3BlcnR5IElkPSJFZmZlY3RWYWx1ZVJlZmVyVHlwZSIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjEiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0i07DP7Na1ss6/vMDg0M0iIC8+DQogICAgPFByb3BlcnR5IElkPSJFZmZlY3RUaW1lVmFsdWUiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIxIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9ItfcubKy+sn6vLi0ziIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IkVmZmVjdFRpbWVJbnRlcnZhbCIgVHlwZT0iZmxvYXQiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMSIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSLDv7TOvOS49MqxvOQwLjVmsbbK/SIgLz4NCiAgICA8UHJvcGVydHkgSWQ9Ildhc2hHcm91cElEIiBUeXBlPSJpbnQiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMSIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSLDv7TOvOS49MqxvOQwLjVmsbbK/SIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlJldmVyc2VSZWZlclR5cGUiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIxIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IsrHt/G7udSto6yyu7u51K21xNTavMbL47XEyrG68rK7xNyxo7Tm1NpydW5UaW1lSW5mbyzWu8TcwNu8xtTa1+7W1da1xNoiIC8+DQogICAgPFByb3BlcnR5IElkPSJFZmZlY3RDbGVhck9uRGVhZCIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjEiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iy8DN9srHt/HH5bP9IiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iRG93blNhdmVUeXBlIiBUeXBlPSJpbnQiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMSIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSLPws/fyse38bGjtOYiIC8+DQogIDwvUHJvcGVydHlzPg0KICA8UmVjb3JkcyAvPg0KICA8Q29tcG9uZW50cyAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/ChatGroup.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9Ik5hbWUiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIxIiBTYXZlPSIxIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Itfpw/vX1iIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IkNyZWF0ZU9iamVjdCIgVHlwZT0ib2JqZWN0IiBQdWJsaWM9IjAiIFByaXZhdGU9IjEiIFNhdmU9IjEiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0itLS9qNXfIiAvPg0KICA8L1Byb3BlcnR5cz4NCiAgPFJlY29yZHM+DQogICAgPFJlY29yZCBJZD0iR3JvdXBNZW1iZXJMaXN0IiBSb3c9IjEyNiIgQ29sPSIzIiBQdWJsaWM9IjAiIFByaXZhdGU9IjEiIFNhdmU9IjEiIFZpZXc9IjAiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIj4NCiAgICAgIDxDb2wgVHlwZT0ib2JqZWN0IiBUYWc9IkdVSUQiIC8+DQogICAgICA8Q29sIFR5cGU9ImludCIgVGFnPSJPbmxpbmUiIC8+DQogICAgICA8Q29sIFR5cGU9ImludCIgVGFnPSJHYW1lSUQiIC8+DQogICAgPC9SZWNvcmQ+DQogICAgPFJlY29yZCBJZD0iQ2hhdExpc3QiIFJvdz0iMTI2IiBDb2w9IjMiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMSIgU2F2ZT0iMSIgVmlldz0iMCIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSIiPg0KICAgICAgPENvbCBUeXBlPSJvYmplY3QiIFRhZz0iR1VJRCIgLz4NCiAgICAgIDxDb2wgVHlwZT0ic3RyaW5nIiBUYWc9Im1zZyIgLz4NCiAgICAgIDxDb2wgVHlwZT0iaW50IiBUYWc9InRpbWUiIC8+DQogICAgPC9SZWNvcmQ+DQogIDwvUmVjb3Jkcz4NCiAgPENvbXBvbmVudHMgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/Cost.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IkNvc3RNb25leSIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iz/u6xMeuIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iQ29zdERpYW1vbmQiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Is/7usTX6sqvIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iQ29zdFZQIiBUeXBlPSJpbnQiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMCIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSLP+7rEzOXBpiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IkNvc3RIb25vdXIiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Is/7usTI2dP+1rUiIC8+DQogIDwvUHJvcGVydHlzPg0KICA8UmVjb3JkcyAvPg0KICA8Q29tcG9uZW50cyAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/Equip.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IlNleCIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iTkZTZXhUeXBlIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iSW50ZW5zaXZlQnVmZkxpc3QiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Ise/u6+21NOmtcRCVUZGwdCx7aOs1+608zEwtM7Hv7uvxMfDtL7NObj2trq6xbj0v6qjrLbU06YxMLj2QlVGRiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IkVuY2hhbnRtZW50QnVmZkxpc3QiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Iri9xKe21NOmtcRCVUZGwdCx7aOs1+608zEwtM64vcSnxMfDtL7NObj2trq6xbj0v6qjrLbU06YxMLj2QlVGRiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlN1aXRJRCIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0izNfXsElEIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iU3VpdEJ1ZmZJRCIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0izNfXsEJVRkZJRCIgLz4NCiAgPC9Qcm9wZXJ0eXM+DQogIDxSZWNvcmRzIC8+DQogIDxDb21wb25lbnRzIC8+DQo8L1hNTD4=
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/GuildName.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9Ikd1aWxkSUQiIFR5cGU9Im9iamVjdCIgUHVibGljPSIxIiBQcml2YXRlPSIxIiBTYXZlPSIxIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Irmku+FJRCIgLz4NCiAgPC9Qcm9wZXJ0eXM+DQogIDxSZWNvcmRzIC8+DQogIDxDb21wb25lbnRzIC8+DQo8L1hNTD4=
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/IObject.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IklEIiBUeXBlPSJzdHJpbmciIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMCIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSIiIC8+DQogICAgPFByb3BlcnR5IElkPSJDbGFzc05hbWUiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlNjZW5lSUQiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9Ikdyb3VwSUQiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IjDIq77WueOypSIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IkNvbmZpZ0lEIiBUeXBlPSJzdHJpbmciIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMCIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSIiIC8+DQogIDwvUHJvcGVydHlzPg0KICA8UmVjb3JkcyAvPg0KICA8Q29tcG9uZW50cyAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/InitProperty.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IkpvYiIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iTGV2ZWwiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IkVmZmVjdERhdGEiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlNraWxsSURSZWYiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Iry8xNzB0LHty/fS/SIgLz4NCiAgICA8UHJvcGVydHkgSWQ9Ik1vZGVsUHRhaCIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0i1ve9x8Sj0M0iIC8+DQogIDwvUHJvcGVydHlzPg0KICA8UmVjb3JkcyAvPg0KICA8Q29tcG9uZW50cyAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/Language.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IkVuZ2xpc2giIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IkNoaW5lc2UiIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgPC9Qcm9wZXJ0eXM+DQogIDxSZWNvcmRzIC8+DQogIDxDb21wb25lbnRzIC8+DQo8L1hNTD4=
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/Server.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IlNlcnZlcklEIiBUeXBlPSJpbnQiIFB1YmxpYz0iMSIgUHJpdmF0ZT0iMCIgU2F2ZT0iMCIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSK3/s7xxvdJRCIgLz4NCiAgICA8UHJvcGVydHkgSWQ9Ik5hbWUiIFR5cGU9InN0cmluZyIgUHVibGljPSIxIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Irf+zvHG98P719YiIC8+DQogICAgPFByb3BlcnR5IElkPSJNYXhPbmxpbmUiIFR5cGU9ImludCIgUHVibGljPSIxIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Itf3zqq3/s7xxvfKsaO6t/7O8cb31+6088GsvdMiIC8+DQogICAgPFByb3BlcnR5IElkPSJDcHVDb3VudCIgVHlwZT0iaW50IiBQdWJsaWM9IjEiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iQ1BVuPbK/aOou/rG96OpIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iSVAiIFR5cGU9InN0cmluZyIgUHVibGljPSIxIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IklQtdjWtyIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlBvcnQiIFR5cGU9ImludCIgUHVibGljPSIxIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Itf3zqq3/s7xxvfKsaO6z+C21L/Nu6e2y7XEcG9ydCIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlR5cGUiIFR5cGU9ImludCIgUHVibGljPSIxIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Irf+zvHG98Dg0M0iIC8+DQogIDwvUHJvcGVydHlzPg0KICA8UmVjb3JkcyAvPg0KICA8Q29tcG9uZW50cyAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/Shop.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IlR5cGUiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIxIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9Ikl0ZW1JRCIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjEiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iR29sZCIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjEiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iU3RlZWwiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIxIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlN0b25lIiBUeXBlPSJpbnQiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMSIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSIiIC8+DQogICAgPFByb3BlcnR5IElkPSJEaWFtb25kIiBUeXBlPSJpbnQiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMSIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSIiIC8+DQogICAgPFByb3BlcnR5IElkPSJMZXZlbCIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjEiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIiAvPg0KICA8L1Byb3BlcnR5cz4NCiAgPFJlY29yZHMgLz4NCiAgPENvbXBvbmVudHMgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/SqlServer.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IlNlcnZlcklEIiBUeXBlPSJpbnQiIFB1YmxpYz0iMSIgUHJpdmF0ZT0iMCIgU2F2ZT0iMCIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSIiIC8+DQogICAgPFByb3BlcnR5IElkPSJJUCIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjEiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iUG9ydCIgVHlwZT0iaW50IiBQdWJsaWM9IjEiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iU3FsSVAiIFR5cGU9InN0cmluZyIgUHVibGljPSIxIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlNxbFBvcnQiIFR5cGU9ImludCIgUHVibGljPSIxIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlNxbFVzZXIiIFR5cGU9InN0cmluZyIgUHVibGljPSIxIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IlNxbFB3ZCIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjEiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iU3FsTmFtZSIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjEiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iIiAvPg0KICA8L1Byb3BlcnR5cz4NCiAgPFJlY29yZHMgLz4NCiAgPENvbXBvbmVudHMgLz4NCjwvWE1MPg==
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/StateFuncResources.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IkF0bGFzX1Jlc0lEIiBUeXBlPSJzdHJpbmciIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMSIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSIiIC8+DQogIDwvUHJvcGVydHlzPg0KICA8UmVjb3JkcyAvPg0KICA8Q29tcG9uZW50cyAvPg0KPC9YTUw+
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Struct/Class/Task.NF:
--------------------------------------------------------------------------------
1 | PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFhNTD4NCiAgPFByb3BlcnR5cz4NCiAgICA8UHJvcGVydHkgSWQ9IlR5cGUiIFR5cGU9ImludCIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9IsjOzvHA4LHwIiBSZWNvcmRzPSIiIEluY2x1ZGVzPSIiIC8+DQogICAgPFByb3BlcnR5IElkPSJOZXh0VGFza0lEIiBUeXBlPSJzdHJpbmciIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMCIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSLPwtK7uPbIzs7xSUQiIFJlY29yZHM9IiIgSW5jbHVkZXM9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IktpbGxNb25zdGVyTmFtZSIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0i0qrH88mxtcS51qOstrq6xbfWv6oiIFJlY29yZHM9IiIgSW5jbHVkZXM9IiIgLz4NCiAgICA8UHJvcGVydHkgSWQ9IktpbGxDb3VudCIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0i0qrH88mxtcS51sr9wb+jrLa6usW31r+qIiBSZWNvcmRzPSIiIEluY2x1ZGVzPSIiIC8+DQogICAgPFByb3BlcnR5IElkPSJMZXZlbFJlcSIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iyM7O8c/e1sa1yLy2IiBSZWNvcmRzPSIiIEluY2x1ZGVzPSIiIC8+DQogICAgPFByb3BlcnR5IElkPSJBd2FyZEV4cCIgVHlwZT0iaW50IiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0ivbHA+LXEvq3R6SIgUmVjb3Jkcz0iIiBJbmNsdWRlcz0iIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iQXdhcmRHb2xkIiBUeXBlPSJpbnQiIFB1YmxpYz0iMCIgUHJpdmF0ZT0iMCIgU2F2ZT0iMCIgVmlldz0iMSIgSW5kZXg9IjAiIFNhdmVJbnRlcnZhbD0iMCIgUmVsYXRpb25WYWx1ZT0iRnJpZW5kIiBEZXNjPSK9scD4tcS98LHSIiBSZWNvcmRzPSIiIEluY2x1ZGVzPSIiIC8+DQogICAgPFByb3BlcnR5IElkPSJBd2FyZFBhY2siIFR5cGU9InN0cmluZyIgUHVibGljPSIwIiBQcml2YXRlPSIwIiBTYXZlPSIwIiBWaWV3PSIxIiBJbmRleD0iMCIgU2F2ZUludGVydmFsPSIwIiBSZWxhdGlvblZhbHVlPSJGcmllbmQiIERlc2M9Ir2xwPiw/CIgUmVjb3Jkcz0iIiBJbmNsdWRlcz0iIiAvPg0KICAgIDxQcm9wZXJ0eSBJZD0iRGVzYyIgVHlwZT0ic3RyaW5nIiBQdWJsaWM9IjAiIFByaXZhdGU9IjAiIFNhdmU9IjAiIFZpZXc9IjEiIEluZGV4PSIwIiBTYXZlSW50ZXJ2YWw9IjAiIFJlbGF0aW9uVmFsdWU9IkZyaWVuZCIgRGVzYz0iyM7O8cPoyvYiIFJlY29yZHM9IiIgSW5jbHVkZXM9IiIgLz4NCiAgPC9Qcm9wZXJ0eXM+DQogIDxSZWNvcmRzIC8+DQogIDxDb21wb25lbnRzIC8+DQo8L1hNTD4=
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Tool/Aspose.Cells.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Tool/Aspose.Cells.dll
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Tool/CSkin.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Tool/CSkin.dll
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Tool/FileProcess.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Tool/FileProcess.exe
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Tool/Tool_snap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ketoo/NFrame/ed71bbb31d336ce1b7386a263ebd49ca09eafcc3/_Out/NFDatacfg/Tool/Tool_snap.png
--------------------------------------------------------------------------------
/_Out/NFDatacfg/Tool/conf:
--------------------------------------------------------------------------------
1 | 1
--------------------------------------------------------------------------------
/_Out/Release/NFGameServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Release/NFLoginServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Release/NFMasterServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Release/NFProxyServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/_Out/Release/NFWorldServer/Plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------