├── 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 | 63 | 64 | -------------------------------------------------------------------------------- /NFDep/NFNet/NFNet.cbp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 56 | 57 | -------------------------------------------------------------------------------- /NFDep/NFNet/NFServer.cbp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 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 | --------------------------------------------------------------------------------