提交示例代码

This commit is contained in:
Bob.Song
2026-03-05 11:39:06 +08:00
commit 25958f58c3
2534 changed files with 209593 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,10 @@
Bag
(
0
Equip
(
0
Trade
(
0

View File

@@ -0,0 +1,4 @@
$<10><> 装备上每秒恢复5点血
Gš ?装备上每次攻击增加6点攻击力最高增加了30点
&Ú 装备上增加100点法力值

View File

@@ -0,0 +1,9 @@
( (0008<><38> 88 8š 88
88
( (0008<><38> 88
8š 88
88
( (0008<><38> 88
8š 88
88

View File

@@ -0,0 +1,13 @@
$<10><>= *
<08><> 
š 
Ú 
$„= *
<08><> 
š 
Ú 
$Ä= *
<08><> 
š 
Ú 

View File

@@ -0,0 +1,4 @@

LoingError 登陆失败
&LoginRoleError角色登陆失败

View File

@@ -0,0 +1,13 @@
\
æ<EFBFBD>¢å¤<EFBFBD>è<EFBFBD>¯å‰A!使用å<C2A8>Žï¼Œä¼šæ<C5A1><C3A6>å<EFBFBD>‡ä½“åŠ200ç¹ *Item_0108
@HPX`j10000j200
\
æ<EFBFBD>¢å¤<EFBFBD>è<EFBFBD>¯å‰B!使用å<C2A8>Žï¼Œä¼šæ<C5A1><C3A6>å<EFBFBD>‡ä½“åŠ400ç¹ *Item_0108
@HPX`j10001j400
}
æ<EFBFBD>¢å¤<EFBFBD>è<EFBFBD>¯å‰C6使用å<C2A8>Žï¼Œä¼šæ<C5A1><C3A6>å<EFBFBD>‡ä½“åŠ400ç¹ï¼Œæ<C592><C3A6>å<EFBFBD>‡æ³•åŠå€¼300 *Item_0108
@HPX`j10000j400j10001j300
PÁ„= 幻想大剑这个是ä»ç»<C3A7> *Item_018@HPX`j10000j200pdx
P„= 幻想头盔这个是ä»ç»<C3A7> *Item_028@HPX`j10000j200pdx
PÄ= 幻想衣æœ<C3A6>这个是ä»ç»<C3A7> *Item_038@HPX`j10000j200pdx

View File

@@ -0,0 +1,5 @@
Unit01Unit01 
Unit02Unit02 
Unit03Unit03 
Unit04Unit04 

View File

@@ -0,0 +1,2 @@
# 127.0.0.1 127.0.0.1" 127.0.0.1

View File

@@ -0,0 +1,2 @@


View File

@@ -0,0 +1,3 @@
&é" MultiThread* Addressable@ůUH
(ę" MultiThread*Gate2KCP8 ś@úUH

View File

@@ -0,0 +1,4 @@
(地精投资公å<C2AC>¸è<C2B8>Œå˜Unit03 (
+希尔瓦娜斯·风行者Unit02 0œN
/ 牛头人Unit01 8@@HHHHHHHHH

View File

@@ -0,0 +1,2 @@
> 测试服mongodb://192.168.31.100" fantasy_main*MongoDB

Binary file not shown.

View File

@@ -0,0 +1,6 @@
// 自定义导出配置文件,用于配置自定义导出自定义程序的路径,每行一个路径,路径是导表应用的相对路径。如:../../Config/Custom/1.cs
../../Config/Excel/Custom/ErrorCodeToConst.cs
../../Config/Excel/Custom/ConstValueToConst.cs
../../Config/Excel/Custom/ItemTypeToEnum.cs
../../Config/Excel/Custom/ItemUseEffectToEnum.cs
../../Config/Excel/Custom/ContainerConfigToEnum.cs

View File

@@ -0,0 +1,148 @@
using System;
using System.Text;
using Fantasy.Exporter;
using Fantasy.Tools.ConfigTable;
using System.Collections.Generic;
namespace Exporter;
public class ConstValueToConst : ACustomExport
{
private class ConstValueInfo
{
public string Name;
public string Type;
public string Value;
public string Remark;
}
[Flags]
private enum ExportType
{
None = 0,
Server = 1,
Client = 1 << 1,
All = Server | Client
}
public override void Run()
{
if (!ExcelExporter.IgnoreTable.TryGetValue("#ConstValue", out var constValuePath))
{
Log.Error("ConstValue is null");
return;
}
var serverDic = new List<ConstValueInfo>();
var clientDic = new List<ConstValueInfo>();
var excelWorksheet = ExcelExporter.LoadExcel(constValuePath, false);
for (int row = 2; row <= excelWorksheet.Dimension.Rows; row++)
{
var exportType = ExportType.All;
var exportTypeStr = excelWorksheet.GetCellValue(row, 1);
if (!string.IsNullOrEmpty(exportTypeStr))
{
exportType = ExportType.None;
exportTypeStr = exportTypeStr.ToUpper();
if (exportTypeStr.Contains("S"))
{
exportType |= ExportType.Server;
}
if (exportTypeStr.Contains("C"))
{
exportType |= ExportType.Client;
}
}
var constValueInfo = new ConstValueInfo()
{
Name = excelWorksheet.GetCellValue(row, 2),
Type = excelWorksheet.GetCellValue(row, 3),
Value = excelWorksheet.GetCellValue(row, 4),
Remark = excelWorksheet.GetCellValue(row, 5)
};
if (exportType.HasFlag(ExportType.Server))
{
serverDic.Add(constValueInfo);
}
if (exportType.HasFlag(ExportType.Client))
{
clientDic.Add(constValueInfo);
}
}
if (serverDic.Count > 0)
{
Write(serverDic, CustomExportType.Server);
}
if (clientDic.Count > 0)
{
Write(clientDic, CustomExportType.Client);
}
}
private void Write(List<ConstValueInfo> dic, CustomExportType customExportType)
{
var strBuilder = new StringBuilder();
strBuilder.AppendLine("namespace Fantasy\n{");
strBuilder.AppendLine("\t// 生成器自动生成,请不要手动编辑,修改请在#ConstValue.xsl里。");
strBuilder.AppendLine("\tpublic partial class ConstValue\n\t{");
foreach (var constValueInfo in dic)
{
var remark = string.IsNullOrEmpty(constValueInfo.Remark) ? constValueInfo.Name : constValueInfo.Remark;
strBuilder.AppendLine($"\t\t/// <summary>\n\t\t/// {remark}\n\t\t/// </summary>");
strBuilder.AppendLine(
$"\t\tpublic const {constValueInfo.Type} {constValueInfo.Name} = {DefaultValue(constValueInfo.Type, constValueInfo.Value)};");
}
strBuilder.AppendLine("\t}\n}");
Write("ConstValue.cs", strBuilder.ToString(), customExportType);
}
private static string DefaultValue(string type, string value)
{
switch (type)
{
case "byte[]":
case "int[]":
case "long[]":
case "string[]":
case "double[]":
case "float[]":
return $"new {type} {{{value}}}";
case "byte[,]":
case "int[,]":
case "long[,]":
case "string[,]":
case "float[,]":
case "double[,]":
return $"new {type} {{{value}}}";
case "int":
case "bool":
case "uint":
case "long":
case "double":
return $"{value}";
case "float":
return value[^1] == 'f' ? value : $"{value}f";
case "string":
return $"\"{value}\"";
case "Vector2":
{
var strings = value.Split(',', StringSplitOptions.TrimEntries);
return $"new Vector2({strings[0]},{strings[1]})";
}
case "Vector3":
{
var strings = value.Split(',', StringSplitOptions.TrimEntries);
return $"new Vector3({strings[0]},{strings[1]},{strings[2]})";
}
default:
throw new Exception($"不支持此类型: {type}");
}
}
}

View File

@@ -0,0 +1,62 @@
using System.Text;
using Fantasy.Exporter;
using Fantasy.Tools.ConfigTable;
using System.Collections.Generic;
namespace Exporter;
public class ContainerConfigToEnum : ACustomExport
{
private class ContainerConfigInfo
{
public int Type;
public string Name;
public string Descride;
}
public override void Run()
{
if (!Worksheets.TryGetValue("ContainerConfig", out var containerConfig))
{
Log.Info("ContainerConfig is null");
return;
}
var dic = new List<ContainerConfigInfo>();
for (int row = 7; row <= containerConfig.Dimension.Rows; row++)
{
var containerName = containerConfig.GetCellValue(row, 4);
var containerType = containerConfig.GetCellValue(row, 6);
var containerDes = containerConfig.GetCellValue(row, 5);
dic.Add(new ContainerConfigInfo()
{
Type = int.Parse(containerType),
Name = containerName,
Descride = containerDes,
});
}
Write(dic, CustomExportType.Server);
Write(dic, CustomExportType.Client);
}
private void Write(List<ContainerConfigInfo> dic, CustomExportType customExportType)
{
var strBuilder = new StringBuilder();
strBuilder.AppendLine("using System;\n");
strBuilder.AppendLine("namespace Fantasy\n{");
strBuilder.AppendLine("\t// 生成器自动生成,请不要手动编辑,修改请在ContainerConfig.xsl里。");
strBuilder.AppendLine("\t[Flags]");
strBuilder.AppendLine("\tpublic enum ContainerType : byte\n\t{");
strBuilder.AppendLine("\t\tNone = 0,");
foreach (var constValueInfo in dic)
{
strBuilder.AppendLine($"\t\t{constValueInfo.Name} = {constValueInfo.Type},// {constValueInfo.Descride}");
}
strBuilder.AppendLine("\t\tCell = Equip | Trade,// 按格子存储的容器");
strBuilder.AppendLine("\t\tNormal = Bag,// 正常的容器");
strBuilder.AppendLine("\t}\n}");
Write("ContainerType.cs", strBuilder.ToString(), customExportType);
}
}

View File

@@ -0,0 +1,56 @@
using System.Text;
using Fantasy.Exporter;
using Fantasy.Tools.ConfigTable;
using System.Collections.Generic;
namespace Exporter;
public class ErrorCodeToConst : ACustomExport
{
private class ErrorCodeInfo
{
public uint Id;
public string Name;
public string Text;
}
public override void Run()
{
if (!Worksheets.TryGetValue("ErrorCode", out var errorCodeConfig))
{
Log.Info("ErrorCode is null");
return;
}
var dic = new List<ErrorCodeInfo>();
for (var row = 7; row <= errorCodeConfig.Dimension.Rows; row++)
{
var errorCodeInfo = new ErrorCodeInfo()
{
Id = uint.Parse( errorCodeConfig.GetCellValue(row, 3)),
Name = errorCodeConfig.GetCellValue(row, 4),
Text = errorCodeConfig.GetCellValue(row, 5)
};
dic.Add(errorCodeInfo);
}
Write(dic, CustomExportType.Server);
Write(dic, CustomExportType.Client);
}
private void Write(List<ErrorCodeInfo> dic, CustomExportType customExportType)
{
var strBuilder = new StringBuilder();
strBuilder.AppendLine("namespace Fantasy\n{");
strBuilder.AppendLine("\t// 生成器自动生成,请不要手动编辑,修改请在ErrorCode.xsl里。");
strBuilder.AppendLine("\tpublic partial class ErrorCode\n\t{");
foreach (var errorCodeInfo in dic)
{
strBuilder.AppendLine($"\t\t/// <summary>\n\t\t/// {errorCodeInfo.Text}\n\t\t/// </summary>");
strBuilder.AppendLine($"\t\tpublic const uint {errorCodeInfo.Name} = {errorCodeInfo.Id};");
}
strBuilder.AppendLine("\t}\n}");
Write("ErrorCode.cs", strBuilder.ToString(), customExportType);
}
}

View File

@@ -0,0 +1,60 @@
using System.Text;
using System.Collections.Generic;
using Fantasy.Exporter;
using Fantasy.Tools.ConfigTable;
namespace Exporter;
public sealed class ItemTypeToEnum : ACustomExport
{
private class ItemTypeInfo
{
public int Index;
public string Name;
public string Descride;
}
public override void Run()
{
if (!ExcelExporter.IgnoreTable.TryGetValue("#ItemType", out var itemTypePath))
{
Log.Error("#ItemType is null");
return;
}
var dic = new List<ItemTypeInfo>();
var excelWorksheet = ExcelExporter.LoadExcel(itemTypePath, false);
for (int row = 2; row <= excelWorksheet.Dimension.Rows; row++)
{
var exportIndex = excelWorksheet.GetCellValue(row, 1);
if (string.IsNullOrEmpty(exportIndex))
{
continue;
}
dic.Add(new ItemTypeInfo()
{
Index = int.Parse(exportIndex),
Name = excelWorksheet.GetCellValue(row, 2),
Descride = excelWorksheet.GetCellValue(row, 3),
});
}
Write(dic, CustomExportType.Server);
Write(dic, CustomExportType.Client);
}
private void Write(List<ItemTypeInfo> dic, CustomExportType customExportType)
{
var strBuilder = new StringBuilder();
strBuilder.AppendLine("namespace Fantasy\n{");
strBuilder.AppendLine("\t// 生成器自动生成,请不要手动编辑,修改请在#ItemType.xsl里。");
strBuilder.AppendLine("\tpublic enum ItemType\n\t{");
strBuilder.AppendLine("\t\tNone = 0,");
foreach (var constValueInfo in dic)
{
strBuilder.AppendLine($"\t\t{constValueInfo.Name} = {constValueInfo.Index},// {constValueInfo.Descride}");
}
strBuilder.AppendLine("\t}\n}");
Write("ItemType.cs", strBuilder.ToString(), customExportType);
}
}

View File

@@ -0,0 +1,60 @@
using System.Text;
using System.Collections.Generic;
using Fantasy.Exporter;
using Fantasy.Tools.ConfigTable;
namespace Exporter;
public sealed class ItemUseEffectToEnum : ACustomExport
{
private class ItemUseEffectInfo
{
public int Index;
public string Name;
public string Descride;
}
public override void Run()
{
if (!ExcelExporter.IgnoreTable.TryGetValue("#ItemUseEffect", out var itemTypePath))
{
Log.Error("ItemUseEffect is null");
return;
}
var dic = new List<ItemUseEffectInfo>();
var excelWorksheet = ExcelExporter.LoadExcel(itemTypePath, false);
for (int row = 2; row <= excelWorksheet.Dimension.Rows; row++)
{
var exportIndex = excelWorksheet.GetCellValue(row, 1);
if (string.IsNullOrEmpty(exportIndex))
{
continue;
}
dic.Add(new ItemUseEffectInfo()
{
Index = int.Parse(exportIndex),
Name = excelWorksheet.GetCellValue(row, 2),
Descride = excelWorksheet.GetCellValue(row, 3),
});
}
Write(dic, CustomExportType.Server);
Write(dic, CustomExportType.Client);
}
private void Write(List<ItemUseEffectInfo> dic, CustomExportType customExportType)
{
var strBuilder = new StringBuilder();
strBuilder.AppendLine("namespace Fantasy\n{");
strBuilder.AppendLine("\t// 生成器自动生成,请不要手动编辑,修改请在#ItemUseEffect.xsl里。");
strBuilder.AppendLine("\tpublic enum ItemUseEffect\n\t{");
strBuilder.AppendLine("\t\tNone = 0,");
foreach (var constValueInfo in dic)
{
strBuilder.AppendLine($"\t\t{constValueInfo.Name} = {constValueInfo.Index},// {constValueInfo.Descride}");
}
strBuilder.AppendLine("\t}\n}");
Write("ItemUseEffect.cs", strBuilder.ToString(), customExportType);
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
{"WorksheetNames":["LevelConfig","ContainerConfig","EquipAffixConfig","MachineConfig","ProcessConfig","ErrorCode","ItemConfig_Drug","UnitConfig_Monster","WorldConfig","UnitConfig_NPC","ItemConfig_Equip","UnitConfig_Player","EquipValueConfig","EquipEntryConfig","SceneConfig","SceneTypeConfig"],"Tables":{"ErrorCode":1743067797553,"LevelConfig":1743003386521,"ContainerConfig":1745421515852,"UnitConfig_NPC":1742985157502,"UnitConfig_Player":1745918312114,"UnitConfig_Monster":1742985381203,"MachineConfig":1742224599000,"SceneConfig":1743618691132,"WorldConfig":1743413221256,"ProcessConfig":1742224599000,"ItemConfig_Drug":1745943712301,"ItemConfig_Equip":1747148981281,"EquipAffixConfig":1747129966512,"EquipValueConfig":1746993412781,"EquipEntryConfig":1747129308542}}

Binary file not shown.

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":1,"Name":"Bag","Type":1,"CellCountMax":10,"CellCount":10,"CanSort":true,"SortCD":1000},
{"Id":2,"Name":"Equip","Type":2,"CellCountMax":10,"CellCount":10,"CanSort":true,"SortCD":1000},
{"Id":3,"Name":"Trade","Type":4,"CellCountMax":10,"CellCount":10,"CanSort":true,"SortCD":1000}
]}

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":1,"BuffConfigId":200001,"Descride":"装备上每秒恢复5点血"},
{"Id":2,"BuffConfigId":200002,"Descride":"装备上每次攻击增加6点攻击力最高增加了30点"},
{"Id":3,"BuffConfigId":200003,"Descride":"装备上增加100点法力值"}
]}

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":1,"Min":1,"Max":1,"AffixMin":1,"AffixMax":1,"Affix":[1,2,3],"Attrs":[200001,1,12,200002,1,10,200003,2,20]},
{"Id":2,"Min":2,"Max":2,"AffixMin":2,"AffixMax":2,"Affix":[1,2,3],"Attrs":[200001,2,10,200002,2,10,200003,2,20]},
{"Id":3,"Min":3,"Max":3,"AffixMin":3,"AffixMax":3,"Affix":[1,2,3],"Attrs":[200001,3,10,200002,3,10,200003,3,20]}
]}

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":1,"ItemConfigId":1000001,"EquipEntryConfigId":1,"Quality":1,"MainAttrs":{"Dic":{"200001":1,"200002":1,"200003":2}}},
{"Id":2,"ItemConfigId":1000002,"EquipEntryConfigId":2,"Quality":2,"MainAttrs":{"Dic":{"200001":2,"200002":2,"200003":2}}},
{"Id":3,"ItemConfigId":1000003,"EquipEntryConfigId":3,"Quality":3,"MainAttrs":{"Dic":{"200001":3,"200002":3,"200003":3}}}
]}

View File

@@ -0,0 +1,4 @@
{"List":[
{"Id":1,"Name":"LoingError","Text":"登陆失败"},
{"Id":2,"Name":"LoginRoleError","Text":"角色登陆失败"}
]}

View File

@@ -0,0 +1,11 @@
{"List":[
{"Id":1,"Name":"恢复药剂A","Descride":"使用后会提升体力200点","Weight":1,"Model2D":"Item_01","Superposed":true,"SuperposedMax":10,"Type":1,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":0,"Quality":0,"Position":0},
{"Id":2,"Name":"恢复药剂B","Descride":"使用后会提升体力400点","Weight":1,"Model2D":"Item_01","Superposed":true,"SuperposedMax":10,"Type":1,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10001","400"],"Durable":0,"Quality":0,"Position":0},
{"Id":3,"Name":"恢复药剂C","Descride":"使用后会提升体力400点提升法力值300","Weight":3,"Model2D":"Item_01","Superposed":true,"SuperposedMax":10,"Type":1,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","400","10001","300"],"Durable":0,"Quality":0,"Position":0},
{"Id":1000001,"Name":"幻想大剑","Descride":"这个是介绍","Weight":1,"Model2D":"Item_01","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":1},
{"Id":1000002,"Name":"幻想头盔","Descride":"这个是介绍","Weight":1,"Model2D":"Item_02","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":2},
{"Id":1000003,"Name":"幻想衣服","Descride":"这个是介绍","Weight":1,"Model2D":"Item_03","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":3},
{"Id":1000004,"Name":"幻想护腿","Descride":"这个是介绍","Weight":1,"Model2D":"Item_04","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":4},
{"Id":1000005,"Name":"幻想护腕","Descride":"这个是介绍","Weight":1,"Model2D":"Item_05","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":5},
{"Id":1000006,"Name":"幻想鞋子","Descride":"这个是介绍","Weight":1,"Model2D":"Item_06","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":6}
]}

View File

@@ -0,0 +1,6 @@
{"List":[
{"Id":1,"Name":"Unit01","Model":"Unit01","Group":1},
{"Id":2,"Name":"Unit02","Model":"Unit02","Group":1},
{"Id":3,"Name":"Unit03","Model":"Unit03","Group":2},
{"Id":4,"Name":"Unit04","Model":"Unit04","Group":2}
]}

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":3,"Name":"地精投资公司职员","Model":"Unit03","Type":3,"MonsterPRange":1,"TalkConfigId":0,"Camp":0},
{"Id":2,"Name":"希尔瓦娜斯·风行者","Model":"Unit02","Type":2,"MonsterPRange":0,"TalkConfigId":10012,"Camp":0},
{"Id":1,"Name":"牛头人","Model":"Unit01","Type":1,"MonsterPRange":0,"TalkConfigId":0,"Camp":1}
]}

Binary file not shown.

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":1,"Name":"Bag","Type":1,"CellCountMax":10,"CellCount":10,"CanSort":true,"SortCD":1000},
{"Id":2,"Name":"Equip","Type":2,"CellCountMax":10,"CellCount":10,"CanSort":true,"SortCD":1000},
{"Id":3,"Name":"Trade","Type":4,"CellCountMax":10,"CellCount":10,"CanSort":true,"SortCD":1000}
]}

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":1,"BuffConfigId":200001,"Descride":"装备上每秒恢复5点血"},
{"Id":2,"BuffConfigId":200002,"Descride":"装备上每次攻击增加6点攻击力最高增加了30点"},
{"Id":3,"BuffConfigId":200003,"Descride":"装备上增加100点法力值"}
]}

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":1,"Min":1,"Max":1,"AffixMin":1,"AffixMax":1,"Affix":[1,2,3],"Attrs":[200001,1,12,200002,1,10,200003,2,20]},
{"Id":2,"Min":2,"Max":2,"AffixMin":2,"AffixMax":2,"Affix":[1,2,3],"Attrs":[200001,2,10,200002,2,10,200003,2,20]},
{"Id":3,"Min":3,"Max":3,"AffixMin":3,"AffixMax":3,"Affix":[1,2,3],"Attrs":[200001,3,10,200002,3,10,200003,3,20]}
]}

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":1,"ItemConfigId":1000001,"EquipEntryConfigId":1,"Quality":1,"MainAttrs":{"Dic":{"200001":1,"200002":1,"200003":2}}},
{"Id":2,"ItemConfigId":1000002,"EquipEntryConfigId":2,"Quality":2,"MainAttrs":{"Dic":{"200001":2,"200002":2,"200003":2}}},
{"Id":3,"ItemConfigId":1000003,"EquipEntryConfigId":3,"Quality":3,"MainAttrs":{"Dic":{"200001":3,"200002":3,"200003":3}}}
]}

View File

@@ -0,0 +1,4 @@
{"List":[
{"Id":1,"Name":"LoingError","Text":"登陆失败"},
{"Id":2,"Name":"LoginRoleError","Text":"角色登陆失败"}
]}

View File

@@ -0,0 +1,11 @@
{"List":[
{"Id":1,"Name":"恢复药剂A","Descride":"使用后会提升体力200点","Weight":1,"Model2D":"Item_01","Superposed":true,"SuperposedMax":10,"Type":1,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":0,"Quality":0,"Position":0},
{"Id":2,"Name":"恢复药剂B","Descride":"使用后会提升体力400点","Weight":1,"Model2D":"Item_01","Superposed":true,"SuperposedMax":10,"Type":1,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10001","400"],"Durable":0,"Quality":0,"Position":0},
{"Id":3,"Name":"恢复药剂C","Descride":"使用后会提升体力400点提升法力值300","Weight":3,"Model2D":"Item_01","Superposed":true,"SuperposedMax":10,"Type":1,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","400","10001","300"],"Durable":0,"Quality":0,"Position":0},
{"Id":1000001,"Name":"幻想大剑","Descride":"这个是介绍","Weight":1,"Model2D":"Item_01","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":1},
{"Id":1000002,"Name":"幻想头盔","Descride":"这个是介绍","Weight":1,"Model2D":"Item_02","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":2},
{"Id":1000003,"Name":"幻想衣服","Descride":"这个是介绍","Weight":1,"Model2D":"Item_03","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":3},
{"Id":1000004,"Name":"幻想护腿","Descride":"这个是介绍","Weight":1,"Model2D":"Item_04","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":4},
{"Id":1000005,"Name":"幻想护腕","Descride":"这个是介绍","Weight":1,"Model2D":"Item_05","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":5},
{"Id":1000006,"Name":"幻想鞋子","Descride":"这个是介绍","Weight":1,"Model2D":"Item_06","Superposed":false,"SuperposedMax":1,"Type":2,"IsDeal":true,"IsSell":true,"Sell":[1,1000],"Effect":3,"Params":["10000","200"],"Durable":100,"Quality":1,"Position":6}
]}

View File

@@ -0,0 +1,6 @@
{"List":[
{"Id":1,"Name":"Unit01","Model":"Unit01","Group":1},
{"Id":2,"Name":"Unit02","Model":"Unit02","Group":1},
{"Id":3,"Name":"Unit03","Model":"Unit03","Group":2},
{"Id":4,"Name":"Unit04","Model":"Unit04","Group":2}
]}

View File

@@ -0,0 +1,3 @@
{"List":[
{"Id":1,"OuterIP":"127.0.0.1","OuterBindIP":"127.0.0.1","InnerBindIP":"127.0.0.1"}
]}

View File

@@ -0,0 +1,3 @@
{"List":[
{"Id":1,"MachineId":1,"StartupGroup":0}
]}

View File

@@ -0,0 +1,4 @@
{"List":[
{"Id":1001,"ProcessConfigId":1,"WorldConfigId":1,"SceneRuntimeType":"MultiThread","SceneTypeString":"Addressable","NetworkProtocol":null,"OuterPort":0,"InnerPort":11001,"SceneType":2},
{"Id":1002,"ProcessConfigId":1,"WorldConfigId":1,"SceneRuntimeType":"MultiThread","SceneTypeString":"Gate","NetworkProtocol":"KCP","OuterPort":20000,"InnerPort":11002,"SceneType":3}
]}

View File

@@ -0,0 +1,5 @@
{"List":[
{"Id":3,"Name":"地精投资公司职员","Model":"Unit03","Type":3,"MonsterPRange":1,"TalkConfigId":0,"Camp":0,"MountContainer":[],"Items":[]},
{"Id":2,"Name":"希尔瓦娜斯·风行者","Model":"Unit02","Type":2,"MonsterPRange":0,"TalkConfigId":10012,"Camp":0,"MountContainer":[],"Items":[]},
{"Id":1,"Name":"牛头人","Model":"Unit01","Type":1,"MonsterPRange":0,"TalkConfigId":0,"Camp":1,"MountContainer":[1,2],"Items":[1,1,3,1,2,5,1,3,1]}
]}

View File

@@ -0,0 +1,3 @@
{"List":[
{"Id":1,"WorldName":"测试服","DbConnection":"mongodb://192.168.31.100","DbName":"fantasy_main","DbType":"MongoDB"}
]}

Binary file not shown.

View File

@@ -0,0 +1,14 @@
syntax = "proto3";
package Sining.Message;
message G2A_TestMessage // IRouteMessage
{
string Tag = 1;
}
message G2A_TestRequest // IRouteRequest,G2A_TestResponse
{
}
message G2A_TestResponse // IRouteResponse
{
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,114 @@
syntax = "proto3";
package Fantasy.Network.Message;
// 协议分为:
// ProtoBuf:可以在Outer和Inner文件里使用。
// MemoryPack:可以在Outer和Inner文件里使用。
// Bson:仅支持在Inner文件里使用。
// 使用方式:
// 在message协议上方添加// Protocol+空格+协议名字
// 例如:// Protocol ProtoBuf 或 // Protocol MemoryPack
/// 客户端登陆到服务器
message C2G_LoginRequest // IRequest,G2C_LoginResponse
{
string UserName = 1;
string PassWord = 2;
}
/// 服务器返回登陆状态给客户端
message G2C_LoginResponse // IResponse
{
}
/// 客户端请求服务器使用物品
message C2G_UseItemRequest // IRequest,G2C_UseItemResponse
{
int64 ItemId = 1;
int32 Count = 2;
int32 ContainerType = 3; // ContainerType
}
message G2C_UseItemResponse // IResponse
{
}
/// 装备基础信息类
message EquipInfo
{
int32 Durable = 1; // 当前耐久度
int32 DurableMax = 2; // 最大耐久度
repeated int32 MainKeys = 3; // 主属性的Key
repeated int32 EquipAttrKeys = 4; // 主属性改变属性Key
repeated int32 EquipAttrValues = 5; // 主属性的对应数值
repeated int32 EquipAttrSValues = 6; // 主属性的附加数值
// 比如强化等级,副属性,词缀等。都可以在这里添加
}
/// 物品基础信息类
message ItemInfo
{
int64 ItemId = 1; // 物品Id
int32 Container = 2; // 属于容器的类型
int32 ConfigId = 3; // 配置表Id
int64 CellId = 4; // 格子的Id
int32 Count = 5; // 物品的数量
bool IsBind = 6; // 是否是绑定
EquipInfo EquipInfo = 7; // 装备信息
// 后面可能会有装备词条 也会在这里定义的,现在没有所以就是先不管了
}
/// 容器信息类
message ContainerInfo
{
int32 CurrentCellCount = 1; // 容器当前可用的格子数量
int32 ConfigId = 2; // 容器的配置表Id
repeated ItemInfo Items = 3; // 容器内的物品列表
}
/// 物品变更协议(服务器推送给客户端)
message G2C_UpdateItems // IMessage
{
int32 ItemReason = 1; // 物品的操作原因具体可以看代码的ItemReason.cs。
repeated ItemInfo Items = 2; // 变更物品列表
}
/// 通知服务器客户端初始化完成
message C2G_GameInitCompleteRequest // IRequest,G2C_GameInitCompleteResponse
{
bool PushContainer = 1; // 是否推送容器数据到客户端
bool PushUnitInfo = 2; // 是否推送角色的数据
bool Aoi = 3; // 是否推送周围玩家和单位的数据
}
message G2C_GameInitCompleteResponse // IResponse
{
}
/// 推送所有容器数据给客户端
message G2C_PushAllContainerInfo // IMessage
{
repeated ContainerInfo Containers = 1; // 容器的数据列表
}
/// 推送单个的容器数据给客户端
message G2C_PushContainerInfo // IMessage
{
ContainerInfo Container = 1; // 容器的数据
}
/// 通知服务器创建一个物品到背包容器中。
message C2G_StartCreateItem // IMessage
{
}

View File

@@ -0,0 +1,3 @@
// Route协议定义(需要定义1000以上、因为1000以内的框架预留)
GateRoute = 1001 // Gate
ChatRoute = 1002 // Chat