修改血条

develope
Cal 2021-06-29 11:28:15 +08:00
parent b9b74263d3
commit 56ed6c5c8e
157 changed files with 1598 additions and 1140 deletions

View File

@ -4,4 +4,5 @@
[3,{"_id":3,"Process":1,"Zone":1,"SceneType":"Gate","Name":"Gate2","OuterPort":7758}],
[4,{"_id":4,"Process":1,"Zone":1,"SceneType":"Location","Name":"Location"}],
[5,{"_id":5,"Process":1,"Zone":1,"SceneType":"Map","Name":"Map"}],
[6,{"_id":6,"Process":1,"Zone":1,"SceneType":"UserCache","Name":"UserCache"}],
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,16 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="210,70" pivot="0.5,1" anchor="true" overflow="hidden" opaque="false">
<controller name="job" pages="0,,1,,2,,3,,4," selected="1"/>
<controller name="job" pages="0,,1,,2,,3,,4," selected="0"/>
<displayList>
<component id="n1_qyfh" name="progress" src="eh2a1c" fileName="MainUI/ProgressHp.xml" xy="38,56" size="134,8" touchable="false">
<relation target="" sidePair="width-width,height-height"/>
<ProgressBar value="100" max="100"/>
</component>
<text id="n4_qyfh" name="txtTitle" xy="40,4" pivot="0.5,1" size="130,26" fontSize="18" color="#cccccc" align="center" vAlign="middle" ubb="true" strokeColor="#000000" shadowColor="#000000" shadowOffset="1,1" singleLine="true" text="世界第一的顺溜">
<gearDisplay controller="job" pages="1,2,3,4"/>
<relation target="" sidePair="left-left,top-top"/>
</text>
<component id="n9_vhls" name="label" src="vhlsutlz" fileName="BattleUI/ComJobLevelName.xml" xy="1,29"/>
<component id="n10_siao" name="pbHp" src="siaoutmo" fileName="BattleUI/pbHpAndShield.xml" xy="44,52" size="121,11">
<relation target="" sidePair="center-center"/>
</component>
</displayList>
<transition name="e2" autoPlayRepeat="0">
<item time="0" type="Scale" target="n4_qyfh" tween="true" startValue="1,1" endValue="1,1.1" duration="24" repeat="-1" yoyo="true"/>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="120,7">
<displayList>
<image id="n1_kual" name="bg" src="siaoutml" fileName="BattleUI/Assets/frame_black.png" xy="0,0" size="120,7" color="#333333">
<relation target="" sidePair="width-width,height-height"/>
</image>
<image id="n15_b8si" name="defaultHp" src="spuy6h" fileName="Assets/Common_baiban.png" xy="1,1" size="118,5" visible="false" color="#ff0000" fillMethod="hz">
<relation target="" sidePair="width-width,height-height,middle-middle,left-left"/>
</image>
<image id="n16_b8si" name="downBar" src="siaoutmm" fileName="BattleUI/Assets/HP.png" xy="1,1" size="118,5" color="#ff3300" fillMethod="hz">
<relation target="" sidePair="width-width,height-height,middle-middle,left-left"/>
</image>
<image id="n17_b8si" name="upBar" src="siaoutmm" fileName="BattleUI/Assets/HP.png" xy="1,1" size="118,5" color="#ccffcc" fillMethod="hz">
<relation target="" sidePair="width-width,height-height,middle-middle,left-left"/>
</image>
<image id="n2_kual" name="hp" src="siaoutmm" fileName="BattleUI/Assets/HP.png" xy="1,1" size="76,5" color="#33cc00" fillMethod="hz">
<relation target="" sidePair="width-width,height-height,middle-middle,left-left"/>
</image>
<image id="n3_kual" name="shield" src="siaoutmh" fileName="BattleUI/Assets/MP.png" xy="77,1" size="42,5" fillMethod="hz">
<relation target="n2_kual" sidePair="height-height,middle-middle,left-right"/>
</image>
<list id="n5_kual" name="listLines" xy="0,0" size="119,7" layout="row" overflow="hidden" scroll="horizontal" colGap="5" defaultItem="ui://kqsmrpxlsiaoutmn" vAlign="middle" autoClearItems="true">
<relation target="" sidePair="width-width,height-height"/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
<item/>
</list>
</displayList>
</component>

View File

@ -265,6 +265,15 @@
<image id="fg9vto5" name="Ui_effect_up (006).png" path="/Assets/Anim/"/>
<image id="fg9vto6" name="Ui_effect_up (007).png" path="/Assets/Anim/"/>
<image id="fg9vto7" name="Ui_effect_up (008).png" path="/Assets/Anim/"/>
<image id="siaoutmg" name="BarBackGround.png" path="/BattleUI/Assets/"/>
<image id="siaoutmh" name="MP.png" path="/BattleUI/Assets/"/>
<image id="siaoutmi" name="alert.png" path="/BattleUI/Assets/"/>
<image id="siaoutmj" name="slot.png" path="/BattleUI/Assets/"/>
<image id="siaoutmk" name="back (2).png" path="/BattleUI/Assets/"/>
<image id="siaoutml" name="frame_black.png" path="/BattleUI/Assets/" scale="9grid" scale9grid="3,2,3,1"/>
<image id="siaoutmm" name="HP.png" path="/BattleUI/Assets/"/>
<image id="siaoutmn" name="BarBlack.png" path="/BattleUI/Assets/"/>
<component id="siaoutmo" name="pbHpAndShield.xml" path="/BattleUI/"/>
</resources>
<publish name=""/>
</packageDescription>

25
Proto/InnerBsonMessage.proto Executable file
View File

@ -0,0 +1,25 @@
syntax = "proto3";
package ET;
message M2U_WriteComponent // IActorMessage
{
int32 RpcId = 90;
int64 ActorId = 93;
int64 Id = 1;
string type = 2;
Entity component =3;
}
//ResponseType U2M_GetComponent
message M2U_GetComponent // IActorRequest
{
int32 RpcId = 90;
int64 ActorId = 93;
int64 UserId = 1;
string type = 2;
}
message U2M_GetComponent // IActorResponse
{
int32 RpcId = 90;
int32 Error = 91;
string Message = 92;
Entity component = 1;
}

View File

@ -193,3 +193,4 @@ message G2M_UserOnLine // IActorMessage
int64 ActorId = 93;
int64 Id = 1;
}

Binary file not shown.

View File

@ -21,7 +21,7 @@ namespace ET
data.BattleExpSpeed = GoodsBase.ExpRange;
data.battleExpSpeedLeastTime = now + GoodsBase.ContinuedSeconds;
BuffState = BuffState.Running;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
return string.Empty;
}
public override void ReInit(Unit unit, GoodsBase goodsBase,long endTime)

View File

@ -28,7 +28,7 @@ namespace ET
}
num.Set(NumericType.Energy, energy);
data.ForbidExp = energy <= 0;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
return string.Empty;
}

View File

@ -19,7 +19,7 @@ namespace ET
{
PlayerData data = unit.GetComponent<PlayerData>();
data.mainstoryAITime += GoodsBase.CommonIncrease;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
return string.Empty;
}

View File

@ -19,7 +19,7 @@ namespace ET
{
PlayerData data = unit.GetComponent<PlayerData>();
data.mainstoryVIPAITime += GoodsBase.CommonIncrease;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
return string.Empty;
}

View File

@ -29,7 +29,7 @@ namespace ET
if (addKVArr.Length <= 0)
return "系统错误请提交bug";
data.petEatCount--;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
foreach (string kvString in addKVArr)
{

View File

@ -26,7 +26,7 @@ namespace ET
data.petEatCount--;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
pet.AddIntimacy(this.GoodsBase.CommonIncrease);
return string.Empty;
}

View File

@ -57,8 +57,8 @@ namespace ET
NumericComponent num = unit.GetComponent<NumericComponent>();
AddHp(num, data);
AddMp(num, data);
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(num).Coroutine();
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(num);
await ETTask.CompletedTask;
}
@ -128,7 +128,7 @@ namespace ET
if (playerData.BattleExpSpeed > 1 && playerData.battleExpSpeedLeastTime < now)
{
playerData.BattleExpSpeed = 1;
UnitHelper.Save<PlayerData>(unit).Coroutine();
UnitHelper.Save<PlayerData>(unit);
}
switch (battleType)
@ -308,7 +308,7 @@ namespace ET
SendMessage(unit, num, rewardRet, exp, 0);
}
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<Bag>(unit);
}
private async ETTask BattleIdleReword(Unit unit, MonsterBase monsterBase ,MainStory mainStory, UnOrderMultiMap<long, (int, int)> rewordMap)

View File

@ -28,7 +28,7 @@ namespace ET
int energy = num.GetAsInt(NumericType.Energy);
if (energy >= ConstDefine.AutoEnergyMax) continue;
num.AddSet(NumericType.Energy, ConstDefine.EnergyPer30Minute);
await UnitHelper.SaveComponenet(num);
UnitHelper.SaveComponenet(num);
}
catch (Exception e)
{

View File

@ -22,7 +22,7 @@ namespace ET
else
{
user.lastLoginTime = TimeHelper.ClientNow();
UserComponent.Instance.Save(user).Coroutine();
UserComponent.Instance.Save(user);
}
//移除本地Actor
@ -76,16 +76,16 @@ namespace ET
Team team = TeamComponent.Instance.Get(unit.Id);
if (team?.TeamState != TeamState.Fight)
{
await UnitHelper.Save<PlayerData>(unit);
await UnitHelper.Save<NumericComponent>(unit);
await UnitHelper.Save<Character>(unit);
await UnitHelper.Save<Bag>(unit);
await UnitHelper.Save<UnitTask>(unit);
await UnitHelper.Save<UnitScene>(unit);
await UnitHelper.Save<UserSetting>(unit);
await UnitHelper.Save<UnitSkillComponent>(unit);
await UnitHelper.Save<Pet>(unit);
await UnitHelper.Save<StarSoulBag>(unit);
UnitHelper.Save<PlayerData>(unit);
UnitHelper.Save<NumericComponent>(unit);
UnitHelper.Save<Character>(unit);
UnitHelper.Save<Bag>(unit);
UnitHelper.Save<UnitTask>(unit);
UnitHelper.Save<UnitScene>(unit);
UnitHelper.Save<UserSetting>(unit);
UnitHelper.Save<UnitSkillComponent>(unit);
UnitHelper.Save<Pet>(unit);
UnitHelper.Save<StarSoulBag>(unit);
}
}
}

View File

@ -71,16 +71,16 @@ namespace ET
Team team = TeamComponent.Instance.Get(unit.Id);
if (team?.TeamState != TeamState.Fight)
{
await UnitHelper.Save<PlayerData>(unit);
await UnitHelper.Save<NumericComponent>(unit);
await UnitHelper.Save<Character>(unit);
await UnitHelper.Save<Bag>(unit);
await UnitHelper.Save<StarSoulBag>(unit);
await UnitHelper.Save<UnitTask>(unit);
await UnitHelper.Save<UnitScene>(unit);
await UnitHelper.Save<UserSetting>(unit);
await UnitHelper.Save<UnitSkillComponent>(unit);
await UnitHelper.Save<Pet>(unit);
UnitHelper.Save<PlayerData>(unit);
UnitHelper.Save<NumericComponent>(unit);
UnitHelper.Save<Character>(unit);
UnitHelper.Save<Bag>(unit);
UnitHelper.Save<StarSoulBag>(unit);
UnitHelper.Save<UnitTask>(unit);
UnitHelper.Save<UnitScene>(unit);
UnitHelper.Save<UserSetting>(unit);
UnitHelper.Save<UnitSkillComponent>(unit);
UnitHelper.Save<Pet>(unit);
}
}
catch (Exception e)
@ -94,7 +94,7 @@ namespace ET
try
{
User user = userArr[i];
await DBComponent.Instance.Save(user);
UserComponent.Instance.Save(user);
}
catch (Exception e)
{

View File

@ -70,7 +70,7 @@ namespace ET
continue;
}
data.bossEnergy--;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
}
BossComponent.Instance.ChangeState(bossId, BossComponent.BossState.Battle, false);
CopyBattle battle = BattleMgrCompnent.Instance.CreateBattle(team);

View File

@ -99,7 +99,7 @@ namespace ET
continue;
}
data.familyBossKeys--;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
}
CopyBattle battle = BattleMgrCompnent.Instance.CreateBattle(team);
FamilyBossConfig familyBossConfig = FamilyBossConfigCategory.Instance.Get(request.BossId);

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
namespace ET
{
[ActorMessageHandler]
public class M2U_GetComponentHandler : AMActorRpcHandler<Scene, M2U_GetComponent, U2M_GetComponent>
{
protected override async ETTask Run(Scene scene, M2U_GetComponent request, U2M_GetComponent response, Action reply)
{
var str =await scene.GetComponent<PlayerInfoComponent>().GetInfo(request.UserId, request.type);
response.component = str;
reply();
}
}
}

View File

@ -0,0 +1,16 @@
using System;
namespace ET
{
[ActorMessageHandler]
public class M2U_WriteComponentHandler : AMActorHandler<Scene, M2U_WriteComponent>
{
protected override async ETTask Run(Scene scene, M2U_WriteComponent message)
{
await ETTask.CompletedTask;
var playerInfo = scene.GetComponent<PlayerInfoComponent>();
playerInfo.AddInfo(message.Id, message.type, message.component);
}
}
}

View File

@ -18,7 +18,7 @@ namespace ET
}
PlayerData data = unit.GetComponent<PlayerData>();
data.mapCoinCount++;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
reply();
await ETTask.CompletedTask;
}

View File

@ -41,9 +41,9 @@ namespace ET
data.ForbidExp = false;
}
data.buyEnergyCount++;
await UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(data);
num.AddSet(NumericType.Energy, ConstDefine.AddEnergyPerCount);
await UnitHelper.SaveComponenet(num);
UnitHelper.SaveComponenet(num);
reply();
await ETTask.CompletedTask;
}

View File

@ -58,8 +58,8 @@ namespace ET
characterPoint -= totalCount;
data.CharacterPointKV = KeyValuePair.Create(characterPoint, kp.Value);
CharacterHelper.SyncNumeric(unit);
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(num).Coroutine();
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(num);
response.Character =await CharacterHelper.GetUnitCharacter(unit);
reply();
await ETTask.CompletedTask;

View File

@ -15,8 +15,8 @@ namespace ET
}
CharacterHelper.ResetPoint(unit);
CharacterHelper.SyncNumeric(unit);
UnitHelper.Save<PlayerData>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<PlayerData>(unit);
UnitHelper.Save<NumericComponent>(unit);
response.Character =await CharacterHelper.GetUnitCharacter(unit);
reply();
await ETTask.CompletedTask;

View File

@ -27,7 +27,7 @@ namespace ET
}
List<NickName> list = await DBComponent.Instance.Query<NickName>(t => t.Nickname == name);
if (list != null && list.Count > 0)
if (list is { Count: > 0 })
{
response.Message = "昵称重复";
reply();
@ -38,8 +38,8 @@ namespace ET
using NickName nickName = EntityFactory.Create<NickName>(unit.DomainScene());
nickName.Nickname = name;
await DBComponent.Instance.Save(nickName);
user.NickName = name;
await UserComponent.Instance.Save(user);
user.NickName = name;
UserComponent.Instance.Save(user);
NickNameLog log= await DBComponent.Instance.Query<NickNameLog>(unit.Id) ?? EntityFactory.CreateWithId<NickNameLog>(unit.DomainScene(), unit.Id);
if (log.nameList.Count == 0 || log.nameList[^1] != oldName)
log.nameList.Add(oldName);

View File

@ -35,6 +35,7 @@ namespace ET
}
Unit unit = MapUnitComponent.Instance.Get(user.Id);
long id = user.Id;
int zone = scene.DomainZone();
NumericComponent num;
PlayerData data;
bool isOnline = false;
@ -70,7 +71,7 @@ namespace ET
JobType jobType = JobHelper.GetJobType(user.JobId);
//!玩家数据
data = await DBComponent.Instance.Query<PlayerData>(id);
data = await UnitHelper.Query<PlayerData>(zone,id);
if (data == null)
{
data = unit.AddComponent<PlayerData>();
@ -81,12 +82,12 @@ namespace ET
else
unit.AddComponent(data);
Character character = await DBComponent.Instance.Query<Character>(id);
Character character = await UnitHelper.Query<Character>(zone,id);
if (character == null)
character = unit.AddComponent<Character>();
else
unit.AddComponent(character);
num = await DBComponent.Instance.Query<NumericComponent>(id);
num = await UnitHelper.Query<NumericComponent>(zone,id);
if (num == null)
{
num = unit.AddComponent<NumericComponent>();
@ -100,7 +101,7 @@ namespace ET
int energy = num.GetAsInt(NumericType.Energy);
data.ForbidExp = energy<=0;
UnitSkillComponent unitSkill = await DBComponent.Instance.Query<UnitSkillComponent>(id);
UnitSkillComponent unitSkill = await UnitHelper.Query<UnitSkillComponent>(zone,id);
if (unitSkill == null)
{
unitSkill = unit.AddComponent<UnitSkillComponent>();
@ -109,7 +110,7 @@ namespace ET
else
unit.AddComponent(unitSkill);
//!玩家设置
UserSetting setting = await DBComponent.Instance.Query<UserSetting>(id);
UserSetting setting = await UnitHelper.Query<UserSetting>(zone,id);
if (setting == null)
{
setting = unit.AddComponent<UserSetting>();
@ -129,7 +130,7 @@ namespace ET
BrocastComponent brocastComponent = unit.AddComponent<BrocastComponent, bool>(true);
//!宠物
Pet pet = await DBComponent.Instance.Query<Pet>(id);
Pet pet = await UnitHelper.Query<Pet>(zone,id);
if (pet == null)
{
pet = unit.AddComponent<Pet>();
@ -141,7 +142,7 @@ namespace ET
pet.petId = 2101;
}
UnitScene unitScene = await DBComponent.Instance.Query<UnitScene>(id);
UnitScene unitScene = await UnitHelper.Query<UnitScene>(zone,id);
if (unitScene == null)
{
unitScene = UnitSceneFactory.Create(Game.Scene, id, new Vector2(0, 0), 0, Sys_SceneId.Scene_Beach * 100 + 1);
@ -158,7 +159,7 @@ namespace ET
unit.AddComponent<AttackComponent>();
unit.AddComponent<TargetableUnitComponent>();
//!任务
UnitTask unitTask = await DBComponent.Instance.Query<UnitTask>(id);
UnitTask unitTask = await UnitHelper.Query<UnitTask>(zone,id);
if (unitTask == null)
{
unitTask = unit.AddComponent<UnitTask>();
@ -166,7 +167,7 @@ namespace ET
else
unit.AddComponent(unitTask);
//!背包
Bag bag = await DBComponent.Instance.Query<Bag>(id);
Bag bag = await UnitHelper.Query<Bag>(zone,id);
if (bag == null)
{
bag = unit.AddComponent<Bag>();
@ -174,7 +175,7 @@ namespace ET
else
unit.AddComponent(bag);
//!背包
StarSoulBag StarSoulBag = await DBComponent.Instance.Query<StarSoulBag>(id);
StarSoulBag StarSoulBag = await UnitHelper.Query<StarSoulBag>(zone,id);
if (StarSoulBag == null)
{
StarSoulBag = unit.AddComponent<StarSoulBag>();
@ -205,10 +206,10 @@ namespace ET
}
if (isNewUser)
{
UserComponent.Instance.Add(user);
if (isNewUser)
UserComponent.Instance.Save(user).Coroutine();
UserComponent.Instance.Save(user);
}
response.IsOnLine = isOnline;
reply();
@ -254,18 +255,18 @@ namespace ET
unitScene = EntityFactory.CreateWithId<UnitScene>(Game.Scene, user.Id);
unitScene.Id = user.Id;
await DBComponent.Instance.Save(data);
await DBComponent.Instance.Save(character);
await DBComponent.Instance.Save(num);
await DBComponent.Instance.Save(unitSkill);
await DBComponent.Instance.Save(setting);
await DBComponent.Instance.Save(unitTask);
await DBComponent.Instance.Save(bag);
await DBComponent.Instance.Save(unitScene);
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(character);
UnitHelper.SaveComponenet(num);
UnitHelper.SaveComponenet(unitSkill);
UnitHelper.SaveComponenet(setting);
UnitHelper.SaveComponenet(unitTask);
UnitHelper.SaveComponenet(bag);
UnitHelper.SaveComponenet(unitScene);
unit.Dispose();
user.isChangeDB = true;
await DBComponent.Instance.Save(user);
UserComponent.Instance.Save(user);
return false;
}
}

View File

@ -12,43 +12,43 @@ namespace ET
{
//**********************
Log.Debug($"*********************************************************UserId = {request.UserId} 删除角色");
User user = await UserComponent.Instance.Query(request.UserId);
if (user == null)
{
response.Message = $"没有这个玩家";
Log.Error($"服务器没有这个玩家Id={ request.UserId}");
reply();
return;
}
long unitId = user.Id;
Unit unit = MapUnitComponent.Instance.Get(unitId);
if (unit == null)
{
return;
}
else
{
Team team = TeamComponent.Instance.Get(unit.TeamLeaderId);
if (team.TeamState == TeamState.Fight)
{
response.Message = "战斗中不能删除角色!";
reply();
return;
}
}
user.hasRole = false;
await DBComponent.Instance.Save(user);
await DBComponent.Instance.Remove<Unit>(unitId);
await C2M_DeleteFriend(unitId);
await DBComponent.Instance.Remove<MailLib>(unitId);
await DBComponent.Instance.Remove<Store>(unitId);
await DBComponent.Instance.Remove<BuffLib>(unitId);
await DBComponent.Instance.Remove<NickName>(t => t.Nickname.Equals(user.NickName));
await DeleteConsignment(unitId);
await DeleteFamily(user.NickName, unitId);
// User user = await UserComponent.Instance.Query(request.UserId);
// if (user == null)
// {
// response.Message = $"没有这个玩家";
// Log.Error($"服务器没有这个玩家Id={ request.UserId}");
// reply();
// return;
// }
// long unitId = user.Id;
// Unit unit = MapUnitComponent.Instance.Get(unitId);
// if (unit == null)
// {
// return;
//
// }
// else
// {
// Team team = TeamComponent.Instance.Get(unit.TeamLeaderId);
// if (team.TeamState == TeamState.Fight)
// {
// response.Message = "战斗中不能删除角色!";
// reply();
// return;
// }
// }
// user.hasRole = false;
//
// await DBComponent.Instance.Save(user);
//
// await DBComponent.Instance.Remove<Unit>(unitId);
// await C2M_DeleteFriend(unitId);
// await DBComponent.Instance.Remove<MailLib>(unitId);
// await DBComponent.Instance.Remove<Store>(unitId);
// await DBComponent.Instance.Remove<BuffLib>(unitId);
// await DBComponent.Instance.Remove<NickName>(t => t.Nickname.Equals(user.NickName));
// await DeleteConsignment(unitId);
// await DeleteFamily(user.NickName, unitId);
reply();

View File

@ -549,9 +549,9 @@ namespace ET
UnitSkillComponent unitSkillComponent = unit.GetComponent<UnitSkillComponent>();
await unitSkillComponent.ResetSkill();
CharacterHelper.SyncNumeric(unit);
UnitHelper.SaveComponenet(character).Coroutine();
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(num).Coroutine();
UnitHelper.SaveComponenet(character);
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(num);
CharacterHelper.SyncAttribute(unit);
}
@ -621,9 +621,9 @@ namespace ET
num.Set(NumericType.Transmigration, trans);
//计算结果,同步
CharacterHelper.SyncNumeric(unit);
UnitHelper.SaveComponenet(character).Coroutine();
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(num).Coroutine();
UnitHelper.SaveComponenet(character);
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(num);
CharacterHelper.SyncAttribute(unit);
return null;
}
@ -639,8 +639,8 @@ namespace ET
SexType sexType = JobHelper.GetSexType(jobId);
user.JobId = (int)(sexType + jobType * 2 - 1);
UnitSkillComponent unitSkillComponent = unit.GetComponent<UnitSkillComponent>();
unitSkillComponent.TransferJob(jobType);
await UserComponent.Instance.Save(user);
unitSkillComponent.TransferJob(jobType);
UserComponent.Instance.Save(user);
}
public static async ETTask SyncUnitInfo(Unit unit, Unit target)

View File

@ -102,7 +102,7 @@ namespace ET
_unit.AddComponent(data);
}
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
}
catch (Exception e)
{
@ -245,7 +245,7 @@ namespace ET
unitInServer.AddComponent(bag);
}
await DBComponent.Instance.Save(bag);
UnitHelper.SaveComponenet(bag);
}
catch (Exception e)
{
@ -416,13 +416,13 @@ namespace ET
}
else
{
DBComponent.Instance.Save(user).Coroutine();
UnitHelper.SaveComponenet(character).Coroutine();
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(skill).Coroutine();
UnitHelper.SaveComponenet(userSetting).Coroutine();
UnitHelper.SaveComponenet(num).Coroutine();
UnitHelper.SaveComponenet(pet).Coroutine();
UserComponent.Instance.Save(user);
UnitHelper.SaveComponenet(character);
UnitHelper.SaveComponenet(bag);
UnitHelper.SaveComponenet(skill);
UnitHelper.SaveComponenet(userSetting);
UnitHelper.SaveComponenet(num);
UnitHelper.SaveComponenet(pet);
}
}
catch (Exception e)
@ -447,7 +447,7 @@ namespace ET
_unit.AddComponent(data);
}
await DBComponent.Instance.Save(data);
UnitHelper.SaveComponenet(data);
}
catch (Exception e)
{
@ -788,9 +788,9 @@ namespace ET
}
}
UnitHelper.Save<Bag>(unitInLib).Coroutine();
UnitHelper.Save<NumericComponent>(unitInLib).Coroutine();
UnitHelper.Save<Character>(unitInLib).Coroutine();
UnitHelper.Save<Bag>(unitInLib);
UnitHelper.Save<NumericComponent>(unitInLib);
UnitHelper.Save<Character>(unitInLib);
return "成功";
}
}

View File

@ -29,7 +29,7 @@ namespace ET
SendMessage(unit, num, rewardRet, exp, 0);
}
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<Bag>(unit);
}
private static void SendMessage(Unit unit, NumericComponent num, M2C_SendReward rewardRet, long exp, long coin)
{

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using MongoDB.Bson;
namespace ET
{
@ -44,24 +45,36 @@ namespace ET
}
return null;
}
public static async ETTask Save<T>(Unit unit) where T : Entity
public static async ETTask<T> Query<T>(int zone,long id)where T:Entity
{
try
{
long mapInstanceId = StartSceneConfigCategory.Instance.GetBySceneName(zone, SceneType.UserCache.ToString()).SceneId;
U2M_GetComponent getComponent= (U2M_GetComponent) await MessageHelper.CallActor(mapInstanceId, new M2U_GetComponent() { UserId = id, type = typeof (T).Name });
if (getComponent.component == null) return null;
T t = getComponent.component as T;
return t;
}
catch (Exception e)
{
Log.Error(e);
}
return null;
}
public static void Save<T>(Unit unit) where T : Entity
{
Entity entity = unit.GetComponent<T>();
await SaveComponenet(entity);
long mapInstanceId = StartSceneConfigCategory.Instance.GetBySceneName(entity.DomainZone(), SceneType.UserCache.ToString()).SceneId;
MessageHelper.SendActor(mapInstanceId, new M2U_WriteComponent() { Id = entity.Id, type = typeof (T).Name, component =entity });
}
public static async ETTask SaveComponenet<T>(T t) where T : Entity
public static void SaveComponenet<T>(T t) where T : Entity
{
await DBComponent.Instance.Save(t);
// await DBComponent.Instance.Save(t);
long mapInstanceId = StartSceneConfigCategory.Instance.GetBySceneName(t.DomainZone(), SceneType.UserCache.ToString()).SceneId;
MessageHelper.SendActor(mapInstanceId, new M2U_WriteComponent() { Id = t.Id, type = typeof (T).Name, component =t });
}
//public static async ETVoid Save(Team team)
//{
// if (team.MemberCount > 1)
// {
// List<Entity> list = new List<Entity>();
// list.AddRange(team.GetUnits());
// await DBComponent.Instance.Save(list[0].As<Unit>().TeamLeaderId, list);
// }
//}
/// <summary>
/// 设置位置信息以及人物信息
/// </summary>

View File

@ -8,10 +8,7 @@ namespace ET
{
public static async ETTask<User> Query(long id)
{
User user = await DBComponent.Instance.Query<User>(id);
if (user == null) return null;
return user;
return await UserComponent.Instance.Query(id);
}
}
}

View File

@ -156,7 +156,8 @@ namespace ET
self.AddItem(unit, item.ItemId, 1, item.IsLock);
return (ret, 0);
}
UnitHelper.Save<PlayerData>(unit).Coroutine();
UnitHelper.Save<PlayerData>(unit);
return (null, item.ItemId);
}
//!快捷栏使用
@ -195,7 +196,8 @@ namespace ET
self.AddItem(unit, item.ItemId, 1, item.IsLock);
return (ret, 0);
}
UnitHelper.Save<PlayerData>(unit).Coroutine();
UnitHelper.Save<PlayerData>(unit);
}
return (null, 0);
}
@ -339,7 +341,7 @@ namespace ET
//!给新货
User user = await UserComponent.Instance.Query(unit.Id);
self.AddItem(unit, equipForge.MadeEquipId, 1, false, randomMax: 0.25f, getSource: user?.NickName + "[合成]");
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
return string.Empty;
}
@ -417,7 +419,7 @@ namespace ET
bag.DeleteMultiItem(failCast._Id, failCast.Count,needUnlocked);
}
}
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
return string.Empty;
static void InhintOldEquip(Unit unit, Item item, Item newItem)
@ -591,7 +593,7 @@ namespace ET
break;
}
}
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
NumericComponent num = unit.GetComponent<NumericComponent>();
EquipItem equipItem = new EquipItem();
User user = await UserComponent.Instance.Query(unit.Id);
@ -612,7 +614,7 @@ namespace ET
getSource = user.NickName + "[手工]"
};
bag.AddItem(item);
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
if (equipItem.star >= 8)
{
Chat.Instance.SendSystemCaht($"千锤百炼,[color=#ffff00]{user.NickName.Trim()}[/color]成功制作出[color=#aa0000]{equipItem.star}[color=#aa0000]星[{BagHelper.GetName(equipItem.itemId)}]!");
@ -712,9 +714,9 @@ namespace ET
--count;
data.strengthCountList[index] = KeyValuePair.Create(targetLevel, count);
}
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
}
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
return (null, isSuccess);
}
catch (Exception e)
@ -790,7 +792,7 @@ namespace ET
{
equipItem.mainAttribute[key] = ItemHelper.GetRandom(ConstDefine.EquipMaxRandom);
}
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
return null;
}
public static async ETTask<string> RefreshEquipAffix(this ItemComponent self, Unit unit, int index)
@ -819,7 +821,7 @@ namespace ET
level = user.Level;
}
ItemHelper.GenerateAdditionalAttribute(equipItem, level);
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
return null;
}
/// <summary>
@ -863,7 +865,7 @@ namespace ET
return ret;
equipItem.gemList[gemIndex] = 0;
await MailHelper.AddItem(unit.Id, itemId, 1, true, "拆卸", "宝石拆卸", "宝石拆卸", "系统");
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
return null;
}
}

View File

@ -0,0 +1,14 @@
using System;
namespace ET
{
public static class FixedTimeSaveComponentSystem
{
public static void Init(this FixedTimeSaveComponent self,long time,Action action)
{
if (time != 0)
TimerComponent.Instance.Remove(ref self.timerId);
self.timerId = TimerComponent.Instance.NewRepeatedTimer(time, action);
}
}
}

View File

@ -0,0 +1,77 @@
using System;
using System.Linq;
using MongoDB.Bson;
using MongoDB.Driver;
namespace ET
{
class PlayerInfoComponentStartSystem:StartSystem<PlayerInfoComponent>
{
public override void Start(PlayerInfoComponent self)
{
self.AddComponent<FixedTimeSaveComponent>().Init(10*60*1000,self.Save);
}
}
public static class PlayerInfoComponentSystem
{
public static void Save(this PlayerInfoComponent self)
{
Log.Info($"存档 「{self.unitInfoDic.Count}」");
foreach (var kv in self.unitInfoDic)
{
DBComponent.Instance.Save(Game.IdGenerater.GenerateId(),kv.Value.Values.ToList()).Coroutine();
}
}
public static void AddInfo(this PlayerInfoComponent self, long id, string type, Entity str)
{
self.unitInfoDic.TryGetDic(type, out var dic);
if (dic == null)
{
self.unitInfoDic.Add(type, id, str);
return;
}
dic[id] = str;
}
public static async ETTask<Entity> GetInfo(this PlayerInfoComponent self, long id, string type)
{
self.unitInfoDic.TryGetDic(type, out var dic);
Entity e = null;
if (dic == null)
{
e = await GetEntity(id, type);
if (e == null)
{
Log.Error($"e == null id = {id} type = {type}");
return null;
}
self.unitInfoDic.Add(type, id, e);
dic = self.unitInfoDic[type];
}
dic.TryGetValue(id, out e);
if (e == null)
{
e = await GetEntity(id, type);
if (e == null)
{
Log.Error($"e == null id = {id} type = {type}");
return null;
}
dic[id] = e;
}
return e;
}
private static async ETTask<Entity> GetEntity(long id, string type)
{
var cursor = await DBComponent.Instance.GetCollection(type).FindAsync(d => d.Id == id);
Entity e = await cursor.FirstOrDefaultAsync();
return e;
}
}
}

View File

@ -28,7 +28,7 @@ namespace ET
if (layer == 1)
{
data.currManulEquipMapLayer = 1;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
}
// await GenerateMonster(self, data, targetMapId / 100, layer);
}
@ -74,7 +74,7 @@ namespace ET
{
int layer = (int)(configId % 1000 / 100);
data.currManulEquipMapLayer = ++layer;
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
}
catch (Exception e)
{

View File

@ -104,7 +104,7 @@ namespace ET
_unit.RemoveComponent<PlayerData>();
_unit.AddComponent(data);
}
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(data);
}
catch (Exception e)
{
@ -259,10 +259,10 @@ namespace ET
default:
break;
}
UnitHelper.SaveComponenet(num).Coroutine();
UnitHelper.SaveComponenet(failNum).Coroutine();
UnitHelper.SaveComponenet(winData).Coroutine();
UnitHelper.SaveComponenet(failData).Coroutine();
UnitHelper.SaveComponenet(num);
UnitHelper.SaveComponenet(failNum);
UnitHelper.SaveComponenet(winData);
UnitHelper.SaveComponenet(failData);
ModifyData(self, winData);
ModifyData(self, failData);
if (failData.personalScord < 0) failData.personalScord = 0;

View File

@ -96,6 +96,7 @@ namespace ET
BagHelper.AddItem(unit, rewards._Id, rewards.Count, true, getSource: "签到");
}
UnitHelper.SaveComponenet(data);
return null;
}

View File

@ -165,7 +165,6 @@ namespace ET
private static void ReduceAITime(MainStoryAI self)
{
LinkedList<Unit> units = self.team.GetUnits();
using ListComponent<ETTask> listComponent = ListComponent<ETTask>.Create();
foreach (Unit item in units)
{
try
@ -192,7 +191,7 @@ namespace ET
}
}
listComponent.List.Add(UnitHelper.SaveComponenet(data));
UnitHelper.SaveComponenet(data);
}
catch (Exception e)
{
@ -200,7 +199,6 @@ namespace ET
}
}
ETTaskHelper.WaitAll(listComponent.List).Coroutine();
}
private static void Move(MainStoryAI self)
@ -375,7 +373,6 @@ namespace ET
private static void CheckVIPAIService(MainStoryAI self)
{
LinkedList<Unit> units = self.team.GetUnits();
using ListComponent<ETTask> listComponent = ListComponent<ETTask>.Create();
foreach (Unit unit in units)
{
try
@ -411,7 +408,7 @@ namespace ET
}
}
listComponent.List.Add(UnitHelper.SaveComponenet(data));
UnitHelper.SaveComponenet(data);
}
catch (Exception e)
{

View File

@ -243,7 +243,7 @@ namespace ET
}
Task task = unitTask.CreateTask(taskBase);
unitTask.RunningTaskList.Add(task);
UnitHelper.SaveComponenet(unitTask).Coroutine();
UnitHelper.SaveComponenet(unitTask);
//!更新客户端
self.SendTaskState(unit, taskBase.GiveNPCId);
@ -279,13 +279,13 @@ namespace ET
if (unitTask.CompleteTaskIdList.Remove(taskId))
{
unitTask.FinishTaskIdList.Add(taskId);
UnitHelper.SaveComponenet(unitTask).Coroutine();
UnitHelper.SaveComponenet(unitTask);
string ret = GetReward(unit, taskBase, indexList);
if (ret != null)
{
unitTask.CompleteTaskIdList.Add(taskId);
unitTask.FinishTaskIdList.Remove(taskId);
UnitHelper.SaveComponenet(unitTask).Coroutine();
UnitHelper.SaveComponenet(unitTask);
return ret;
}
return string.Empty;

View File

@ -299,7 +299,7 @@ namespace ET
self.ConsignmentDic[newConsignment.Id] = newConsignment;
self.Save(newConsignment).Coroutine();
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
}
catch (Exception e)
{
@ -382,8 +382,8 @@ namespace ET
ItemComponent.Instance.AddItem(unit, consignment.Item.ItemId, consignment.Item.Count, false, consignment.Item, getSource: consignment.Item.getSource);
consignment.Dispose();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit);
UnitHelper.Save<Bag>(unit);
}
catch (Exception e)
{

View File

@ -211,13 +211,13 @@ namespace ET
{
playerData = await DBComponent.Instance.Query<PlayerData>(id);
parentSetId = playerData.UpdateDrop(config.Dropasubset);
await UnitHelper.SaveComponenet(playerData);
UnitHelper.SaveComponenet(playerData);
}
else
{
playerData = unit.GetComponent<PlayerData>();
parentSetId = playerData.UpdateDrop(config.Dropasubset);
await UnitHelper.SaveComponenet(playerData);
UnitHelper.SaveComponenet(playerData);
}
Parentset parentSet = ParentsetCategory.Instance.Get(parentSetId);
family.ClearReward(bossId, id);

View File

@ -98,7 +98,7 @@ namespace ET
family.notice = "族长很懒,什么都没留下!";
self.FamilyDic.Add(family.name, family);
await family.CollectFamilyMemberInfo(list, null);
UserComponent.Instance.Save(user).Coroutine();
UserComponent.Instance.Save(user);
await self.Save(family);
//!创建家族Boss
@ -166,7 +166,7 @@ namespace ET
return "权限不足";
}
await self.DeleteFamily(family);
UserComponent.Instance.Save(user).Coroutine();
UserComponent.Instance.Save(user);
return null;
}
public static async ETTask<string> DeleteFamily(this FamilyComponent self, Family family)
@ -181,7 +181,7 @@ namespace ET
{
User user = await UserComponent.Instance.Query(unitId);
user.Family = "";
UserComponent.Instance.Save(user).Coroutine();
UserComponent.Instance.Save(user);
}
family.Dispose();

View File

@ -339,7 +339,7 @@ namespace ET
return "对方已有家族";
}
otherUser.Family = family.name;
UserComponent.Instance.Save(otherUser).Coroutine();
UserComponent.Instance.Save(otherUser);
family.Add(FamilyPosition.FamilyMember, otherUser.Id);
@ -389,7 +389,7 @@ namespace ET
if (user != null)
{
user.Family = "";
UserComponent.Instance.Save(user).Coroutine();
UserComponent.Instance.Save(user);
}
//!更新后的列表
await self.CollectFamilyMemberInfo(list, null);
@ -412,7 +412,7 @@ namespace ET
if (user != null)
{
user.Family = "";
UserComponent.Instance.Save(user).Coroutine();
UserComponent.Instance.Save(user);
}
}
/// <summary>
@ -436,14 +436,11 @@ namespace ET
await family.AutoTransferLeader();
}
user.Family = "";
UserComponent.Instance.Save(user).Coroutine();
if (family != null)
{
if (family.contributionDic.Count == 0)
return null;
family.contributionDic.Remove(user.Id);
await self.GetParent<FamilyComponent>().Save(family);
}
UserComponent.Instance.Save(user);
if (family.contributionDic.Count == 0)
return null;
family.contributionDic.Remove(user.Id);
await self.GetParent<FamilyComponent>().Save(family);
return null;
}
}

View File

@ -130,8 +130,8 @@ namespace ET
return (addItemRet, 0);
}
}
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<Bag>(unit);
UnitHelper.Save<NumericComponent>(unit);
//!获取更新后的邮件列表
int index = -1, count = MailCount_Per_Page;
foreach (Mail _mail in mailLib.Dic.Values)
@ -185,8 +185,8 @@ namespace ET
}
}
await self.Save(mailLib);
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<Bag>(unit);
UnitHelper.Save<NumericComponent>(unit);
//!获取更新后的邮件列表
int index = -1, count = MailCount_Per_Page;
int page = 0;

View File

@ -104,8 +104,8 @@ namespace ET
}
//!给货
BagHelper.AddItem(unit, shopBase.ItemId, count, true,getSource:"商店");
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<Bag>(unit);
UnitHelper.Save<NumericComponent>(unit);
return string.Empty;
}
public static string BuyInShop(this Shop self, Unit unit, int page, int index, int count)
@ -139,8 +139,8 @@ namespace ET
}
//!给货
BagHelper.AddItem(unit, shopBase.ItemId, count, true,getSource:"商店");
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<Bag>(unit);
UnitHelper.Save<NumericComponent>(unit);
return string.Empty;
}
@ -211,8 +211,8 @@ namespace ET
}
//!给货
BagHelper.AddItem(unit, marketBase.ItemId, count, islock,getSource:"商城");
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<Bag>(unit);
UnitHelper.Save<NumericComponent>(unit);
return string.Empty;
}
}

View File

@ -224,7 +224,7 @@ namespace ET
store.AddItem(new Item(0, item.data, count));
UnitHelper.SaveComponenet(bag).Coroutine();
UnitHelper.SaveComponenet(bag);
await self.Save(store);
//!获取更新后的列表
GetUpdatedList(store, unit.Id, page, storeList);
@ -271,7 +271,7 @@ namespace ET
}
UnitHelper.Save<Bag>(unit).Coroutine();
UnitHelper.Save<Bag>(unit);
await self.Save(store);
//!获取更新后的列表
GetUpdatedList(store, unit.Id, page, storeList);
@ -334,7 +334,7 @@ namespace ET
store.CoinCount += coin;
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit);
await self.Save(store);
return (string.Empty, store.CoinCount);
@ -359,7 +359,7 @@ namespace ET
CharacterHelper.AddMoney(unit, CharacterHelper.MoneyType.Coin, coin);
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.Save<NumericComponent>(unit);
await self.Save(store);
return (string.Empty, store.CoinCount);

View File

@ -25,7 +25,7 @@ namespace ET
/// <returns></returns>
public static async ETTask<User> Query(this GateUserComponent self, long id)
{
User player = await UserHelper.Query(id);
User player = await self.QueryUserByCache(id);
if (player == null)
{
Log.Error($"[ERROR] user == null where id = {id}");
@ -33,6 +33,14 @@ namespace ET
}
return player;
}
private static async ETTask<User> QueryUserByCache(this GateUserComponent self,long id)
{
long mapInstanceId = StartSceneConfigCategory.Instance.GetBySceneName(self.DomainZone(), SceneType.UserCache.ToString()).SceneId;
U2M_GetComponent getComponent= (U2M_GetComponent) await MessageHelper.CallActor(mapInstanceId, new M2U_GetComponent() { UserId = id, type = nameof (User) });
if (getComponent.component == null) return null;
User user = getComponent.component as User;
return user;
}
#region 登录 注册
//用户登陆
public static async ETTask<(Account, string)> Login(this GateUserComponent self, string ip, string dataStr, LoginType loginType)
@ -141,7 +149,8 @@ namespace ET
public static async ETTask<User> Save(this GateUserComponent self, User player)
{
await DBComponent.Instance.Save(player);
long mapInstanceId = StartSceneConfigCategory.Instance.GetBySceneName(self.DomainZone(), SceneType.UserCache.ToString()).SceneId;
MessageHelper.SendActor(mapInstanceId, new M2U_WriteComponent() { Id = player.Id, type = nameof (User), component =player });
return player;
}
/// <summary>

View File

@ -61,9 +61,5 @@ namespace ET
}
return await UnitHelper.Query(self.Domain, unitId);
}
public static async ETVoid Save(this MapUnitComponent self, Unit unit)
{
await DBComponent.Instance.Save(unit);
}
}
}

View File

@ -37,7 +37,7 @@ namespace ET
{
public override void Change(Pet self)
{
UnitHelper.SaveComponenet(self).Coroutine();
UnitHelper.SaveComponenet(self);
Unit unit = self.GetParent<Unit>();
M2C_SyncPet proto = new()
{

View File

@ -91,8 +91,8 @@ namespace ET
data = _data;
}
InitData(data);
await DBComponent.Instance.Save(data);
InitData(data);
UnitHelper.SaveComponenet(data);
}
catch (Exception e)
{
@ -306,13 +306,13 @@ namespace ET
self.trialAndBossLayer = self.trialCopyMostLayer * 100 + self.trialAndBossLayer % 100;
self.hasReceiveTrialCopyReword = true;
UnitHelper.SaveComponenet(self).Coroutine();
UnitHelper.SaveComponenet(self);
Unit unit = self.GetParent<Unit>();
long now = TimeHelper.ClientNow();
if (self.BattleExpSpeed > 1 && self.battleExpSpeedLeastTime < now)
{
self.BattleExpSpeed = 1;
UnitHelper.Save<PlayerData>(unit).Coroutine();
UnitHelper.Save<PlayerData>(unit);
}
try
@ -427,7 +427,7 @@ namespace ET
self.dropDic[id] = KeyValuePair.Create(key, value3);
}
UnitHelper.SaveComponenet(self).Coroutine();
UnitHelper.SaveComponenet(self);
}
catch (Exception e)
{

View File

@ -105,9 +105,9 @@ namespace ET
}
}
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(self).Coroutine();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(self);
UnitHelper.Save<NumericComponent>(unit);
}
public static void ResetFreeSkill(this UnitSkillComponent self)
@ -146,9 +146,9 @@ namespace ET
else
Log.Error($"skill == null where id = {unit.Id}");
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(self).Coroutine();
UnitHelper.Save<NumericComponent>(unit).Coroutine();
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(self);
UnitHelper.Save<NumericComponent>(unit);
}
public static void TransferJob(this UnitSkillComponent self, int job)
@ -167,8 +167,8 @@ namespace ET
PlayerData data = self.Parent.GetComponent<PlayerData>();
KeyValuePair<int, int> kv = data.SkillPointKV;
data.SkillPointKV = KeyValuePair.Create(kv.Value, kv.Value);
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(self).Coroutine();
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(self);
}
public static bool InitMonsterSkill(this UnitSkillComponent self, int skillId)
@ -312,8 +312,8 @@ namespace ET
self.SkillUnLearnedDic.Remove(skillId);
}
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(self).Coroutine();
UnitHelper.SaveComponenet(data);
UnitHelper.SaveComponenet(self);
return null;
}

View File

@ -3,6 +3,7 @@ using ET.EventType;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace ET
{
@ -28,7 +29,7 @@ namespace ET
User player = self.Get(id);
if (player == null)
{
player = await UserHelper.Query(id);
player = await self.QueryUserByCache(id);
if (player == null)
{
Log.Error($"[ERROR] user == null where id = {id}");
@ -39,10 +40,19 @@ namespace ET
return player;
}
public static async ETTask<User> Save(this UserComponent self, User player)
private static async ETTask<User> QueryUserByCache(this UserComponent self,long id)
{
await DBComponent.Instance.Save(player);
return player;
long mapInstanceId = StartSceneConfigCategory.Instance.GetBySceneName(self.DomainZone(), SceneType.UserCache.ToString()).SceneId;
U2M_GetComponent getComponent= (U2M_GetComponent) await MessageHelper.CallActor(mapInstanceId, new M2U_GetComponent() { UserId = id, type = nameof (User) });
if (getComponent.component == null) return null;
User user = getComponent.component as User;
return user;
}
public static void Save(this UserComponent self, User player)
{
long mapInstanceId = StartSceneConfigCategory.Instance.GetBySceneName(self.DomainZone(), SceneType.UserCache.ToString()).SceneId;
MessageHelper.SendActor(mapInstanceId, new M2U_WriteComponent() { Id = player.Id, type = nameof (User), component =player });
}

View File

@ -19,7 +19,7 @@ namespace ET
ushort opcode = BitConverter.ToUInt16(memoryStream.GetBuffer(), 8);
Type type = OpcodeTypeComponent.Instance.GetType(opcode);
if (opcode < MessageSerializeHelper.PbMaxOpcode)
if (opcode < MessageSerializeHelper.PbMinOpcode)
{
return ProtobufHelper.FromBytes(type, memoryStream.GetBuffer(), 10, (int)memoryStream.Length - 10);
}

View File

@ -181,7 +181,7 @@ namespace ET
#endregion
#region Save
public static async ETTask Save<T>(this DBComponent self, T entity, string collection = null) where T : Entity
{
if (entity == null)

View File

@ -14,8 +14,8 @@
data.ForbidExp = true;
NumericComponent num = unit.GetComponent<NumericComponent>();
num.Set(NumericType.Energy, value,false);
UnitHelper.SaveComponenet(num).Coroutine();
UnitHelper.SaveComponenet(data).Coroutine();
UnitHelper.SaveComponenet(num);
UnitHelper.SaveComponenet(data);
}
DelaySendSyncAttributeComponent.instance.Add(unit, NumericType.Energy, value);
await ETTask.CompletedTask;

View File

@ -41,7 +41,7 @@ namespace ET
{
num.Set(NumericType.Level, level);
}
UnitHelper.SaveComponenet(num).Coroutine();
UnitHelper.SaveComponenet(num);
//!通知客户端
DelaySendSyncAttributeComponent.instance.Add(unit, NumericType.Exp, value);

View File

@ -19,7 +19,7 @@
//!账户信息变化
User user = await UserComponent.Instance.Query(unit.Id);
user.Level = level;
UserComponent.Instance.Save(user).Coroutine();
UserComponent.Instance.Save(user);
//!属性变化
PlayerData data = unit.GetComponent<PlayerData>();
CharacterHelper.AddAutoCharacterPoint(num, data, oldLevel, level);

View File

@ -71,6 +71,9 @@ namespace ET
break;
case SceneType.GameMap:
break;
case SceneType.UserCache:
var cache=scene.AddComponent<PlayerInfoComponent>();
break;
}

View File

@ -0,0 +1,10 @@
using System.Collections.Generic;
namespace ET
{
public class PlayerInfoComponent:Entity
{
public MultiDictionary<string, long, Entity> unitInfoDic = new MultiDictionary<string, long, Entity>();
}
}

View File

@ -0,0 +1,9 @@
using System;
namespace ET
{
public class FixedTimeSaveComponent:Entity
{
public long timerId;
}
}

View File

@ -0,0 +1,64 @@
using ET;
using ProtoBuf;
using System.Collections.Generic;
namespace ET
{
[Message(InnerOpcode.M2U_WriteComponent)]
[ProtoContract]
public partial class M2U_WriteComponent:IActorMessage
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(93)]
public long ActorId { get; set; }
[ProtoMember(1)]
public long Id { get; set; }
[ProtoMember(2)]
public string type { get; set; }
[ProtoMember(3)]
public Entity component { get; set; }
}
[ResponseType(typeof(U2M_GetComponent))]
[Message(InnerOpcode.M2U_GetComponent)]
[ProtoContract]
public partial class M2U_GetComponent:IActorRequest
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(93)]
public long ActorId { get; set; }
[ProtoMember(1)]
public long UserId { get; set; }
[ProtoMember(2)]
public string type { get; set; }
}
[Message(InnerOpcode.U2M_GetComponent)]
[ProtoContract]
public partial class U2M_GetComponent:IActorResponse
{
[ProtoMember(90)]
public int RpcId { get; set; }
[ProtoMember(91)]
public int Error { get; set; }
[ProtoMember(92)]
public string Message { get; set; }
[ProtoMember(1)]
public Entity component { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace ET
{
public static partial class InnerOpcode
{
public const ushort M2U_WriteComponent = 40001;
public const ushort M2U_GetComponent = 40002;
public const ushort U2M_GetComponent = 40003;
}
}

View File

@ -3,34 +3,34 @@ using ProtoBuf;
using System.Collections.Generic;
namespace ET
{
public enum ItemType
public enum ItemType
{
NoneItem = 0,
EquipItem = 1,
GoodsItem = 2,
MaterialsItem =3,
NoneItem = 0,
EquipItem = 1,
GoodsItem = 2,
MaterialsItem =3,
}
public enum CampType //阵营
public enum CampType //阵营
{
NoneCamp = 0,
Pioneer = 1,//开拓者
Guardian = 2,//守护者
NoneCamp = 0,
Pioneer = 1,//开拓者
Guardian = 2,//守护者
}
public enum JobType //职业
public enum JobType //职业
{
UnKnown = 0,
Officer =1,
Sportsman=2,
Nurse=3,
Superman=4,
UnKnown = 0,
Officer =1,
Sportsman=2,
Nurse=3,
Superman=4,
}
public enum SexType //性别
public enum SexType //性别
{
Male=0,
Famale=1,
Male=0,
Famale=1,
}
[Message(OuterOpcode.BagMap)]
@ -299,12 +299,12 @@ namespace ET
}
//登录相关==================================
public enum LoginType //登录类型
public enum LoginType //登录类型
{
Editor = 0,// 编辑模式
Tourist = 1,//游客
WeChat = 2,//微信的 token
Voucher = 3,//登陆凭证
Editor = 0,// 编辑模式
Tourist = 1,//游客
WeChat = 2,//微信的 token
Voucher = 3,//登陆凭证
}
[ResponseType(typeof(R2C_Login))]
@ -1544,11 +1544,11 @@ namespace ET
[ProtoContract]
public partial class M2C_BattleChangeState:IActorMessage
{
public enum ChangeType
public enum ChangeType
{
None = 0,
Add = 1,
Reduce = 2,
None = 0,
Add = 1,
Reduce = 2,
}
[ProtoMember(90)]
@ -2205,11 +2205,11 @@ namespace ET
}
//=================家族===========================
public enum FamilyPosition
public enum FamilyPosition
{
FamilyLeader = 0,
FamilyDeputyLeader = 1,
FamilyMember = 2,
FamilyLeader = 0,
FamilyDeputyLeader = 1,
FamilyMember = 2,
}
[Message(OuterOpcode.FamilyMemberInfo)]
@ -3094,11 +3094,11 @@ namespace ET
}
//================商城/商店==================
public enum MarketType
public enum MarketType
{
NoneMarket = 0,
VoucherMarket = 1,
YuanBaoMarket = 2,
NoneMarket = 0,
VoucherMarket = 1,
YuanBaoMarket = 2,
}
[ResponseType(typeof(M2C_GetMarket))]
@ -3881,25 +3881,25 @@ namespace ET
}
//任务
public enum TaskTargetType
public enum TaskTargetType
{
NoneTask =0,
KillSpecialTask = 1,//击杀特定
KillAnyTask = 2,//击杀任意
CollectionTask = 3,//收集
DialogTask = 4,//对话
LevelTask= 5,//等级
SubmitTask = 6,//交物品
ChangeMapTask = 7,//通关(换地图)任务
CompleteTask = 8,//答题
NoneTask =0,
KillSpecialTask = 1,//击杀特定
KillAnyTask = 2,//击杀任意
CollectionTask = 3,//收集
DialogTask = 4,//对话
LevelTask= 5,//等级
SubmitTask = 6,//交物品
ChangeMapTask = 7,//通关(换地图)任务
CompleteTask = 8,//答题
}
public enum TaskState
public enum TaskState
{
TaskNoneState = 0,
TaskWaiting =1,
TaskRunning = 2,
TaskCompleted = 3,
TaskNoneState = 0,
TaskWaiting =1,
TaskRunning = 2,
TaskCompleted = 3,
}
[Message(OuterOpcode.TansferTask)]
@ -4084,11 +4084,11 @@ namespace ET
}
//==============主Ui=========================
public enum MainUIType
public enum MainUIType
{
NoneSlot = 0,//空
SkillSlot = 1,//技能
ItemSlot = 2,//物品
NoneSlot = 0,//空
SkillSlot = 1,//技能
ItemSlot = 2,//物品
}
[Message(OuterOpcode.MainUISlotInfo)]
@ -5014,10 +5014,10 @@ namespace ET
}
//=================邮箱======================
public enum MailState
public enum MailState
{
UnReceive = 0,
Received = 1,
UnReceive = 0,
Received = 1,
}
[Message(OuterOpcode.MailItem)]
@ -5258,24 +5258,24 @@ namespace ET
[ProtoContract]
public partial class RankingInfo
{
public enum RankingType
public enum RankingType
{
Level = 0,
Coin = 1,
Hp = 2,
Mp = 3,
Pet = 4,
Dvo = 5,
PAtk = 6,
MAtk = 7,
PCriR = 8,
MCriR = 9,
PCri = 10,
MCri = 11,
PRed = 12,
MRed= 13,
PDef= 14,
MDef= 15,
Level = 0,
Coin = 1,
Hp = 2,
Mp = 3,
Pet = 4,
Dvo = 5,
PAtk = 6,
MAtk = 7,
PCriR = 8,
MCriR = 9,
PCri = 10,
MCri = 11,
PRed = 12,
MRed= 13,
PDef= 14,
MDef= 15,
}
[ProtoMember(1)]
@ -5384,16 +5384,16 @@ namespace ET
}
//==============聊天=========================
public enum ChatType
public enum ChatType
{
NoneChat = 0,
Normal = 1,
Team = 2,
Family = 3,
Camp = 4,
World =5,
Private = 6,
System = 7,
NoneChat = 0,
Normal = 1,
Team = 2,
Family = 3,
Camp = 4,
World =5,
Private = 6,
System = 7,
}
[ResponseType(typeof(M2C_RequestChat))]
@ -5856,11 +5856,11 @@ namespace ET
[ProtoContract]
public partial class C2M_MakeMunalEquip:IActorLocationRequest
{
public enum StoneType {
Nomal = 0,
Rare = 1,
Epic = 2,
UpgradeRare = 3,
public enum StoneType {
Nomal = 0,
Rare = 1,
Epic = 2,
UpgradeRare = 3,
}
[ProtoMember(90)]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -34,13 +34,16 @@ namespace ET
{
msgOpcode.Clear();
Proto2CS("ET", "../Proto/InnerMessage.proto", serverMessagePath, "InnerOpcode", 10000);
GenerateOpcode("ET", "InnerOpcode", serverMessagePath);
GenerateOpcode("ET","InnerOpcode", "InnerOpcode", serverMessagePath);
Proto2CS("ET", "../Proto/InnerBsonMessage.proto", serverMessagePath, "InnerOpcode", 40000);
GenerateOpcode("ET", "InnerBsonOpcode","InnerOpcode", serverMessagePath);
Proto2CS("ET", "../Proto/OuterMessage.proto", serverMessagePath, "OuterOpcode", 20000);
GenerateOpcode("ET", "OuterOpcode", serverMessagePath);
GenerateOpcode("ET","OuterOpcode", "OuterOpcode", serverMessagePath);
Proto2CS("ET", "../Proto/OuterMessage.proto", clientMessagePath, "OuterOpcode", 20000);
GenerateOpcode("ET", "OuterOpcode", clientMessagePath);
GenerateOpcode("ET", "OuterOpcode","OuterOpcode", clientMessagePath);
}
@ -209,7 +212,7 @@ namespace ET
sw.Write(sb.ToString());
}
private static void GenerateOpcode(string ns, string outputFileName, string outputPath)
private static void GenerateOpcode(string ns, string outputFileName,string outputClassName, string outputPath)
{
if (!Directory.Exists(outputPath))
{
@ -218,7 +221,7 @@ namespace ET
StringBuilder sb = new StringBuilder();
sb.AppendLine($"namespace {ns}");
sb.AppendLine("{");
sb.AppendLine($"\tpublic static partial class {outputFileName}");
sb.AppendLine($"\tpublic static partial class {outputClassName}");
sb.AppendLine("\t{");
foreach (OpcodeInfo info in msgOpcode)
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@ -30,10 +30,11 @@ namespace ET
{
try
{
Game.EventSystem.Publish_Sync(new ET.EventType.SetHudCharacter_ChangeHp
Game.EventSystem.Publish_Sync(new ET.EventType.ShowHpBar()
{
unit = unit
});
}
catch (Exception e)
{

View File

@ -30,10 +30,6 @@ namespace ET
long targetId = message.TargetIdList[i];
Unit targetUnit = zoneScene.GetComponent<UnitComponent>().Get(targetId);
ClientUnitCharacter character = ClientUnitCharacterComponent.Instance.Get(targetId);
Game.EventSystem.Publish_Sync(new ET.EventType.SetHudCharacter_ChangeHp
{
unit = targetUnit,
});
Game.EventSystem.Publish_Sync(new ET.EventType.ShowHpBar
{
zoneScene = zoneScene,

View File

@ -26,7 +26,7 @@ namespace ET
return "女";
}
}
public static string GetLevelString(Unit unit,int fixedLevel =0)
public static string GetLevelString(Entity unit,int fixedLevel =0)
{
try
{

View File

@ -4,20 +4,6 @@ namespace ET
{
public static class ItemHelper
{
public static float GetRealMainValue(float oldValue, byte level)
{
return (float) (oldValue*Math.Pow(mainAddCoe, level));
}
private const float mainAddCoe = 1.1f;
private const float reduceCoe = 0.8f;
private const float reduceCoe1 = 0.6f;
public static float GetRealViceValue(float oldValue, Quality quality) => quality switch
{
var qual when qual >= Quality.Legendary => oldValue,
var qual when qual >= Quality.Rare => oldValue * reduceCoe,
var qual when qual <= Quality.UnCommon => oldValue * (reduceCoe * reduceCoe1),
_ => throw new ArgumentOutOfRangeException(nameof (quality), quality, null)
};
}
}

View File

@ -199,10 +199,6 @@ namespace ET
{
public int ping;
}
public struct ChangeCoin
{
public long coin;
}
public struct ChangeGem
{
public long gem;
@ -422,67 +418,6 @@ namespace ET
public float duration;
public Scene zoneScene;
}
public struct UpdateHeadInfo_ChangeHp
{
public Unit unit;
public float old;
public float value;
public Scene zoneScene;
}
public struct UpdateHeadInfo_ChangeMaxHp
{
public Unit unit;
public float old;
public float duration;
public float value;
public Scene zoneScene;
}
public struct UpdateHeadInfo_ChangeMp
{
public Unit unit;
public float old;
public float value;
public Scene zoneScene;
}
public struct UpdateHeadInfo_ChangeMaxMp
{
public Unit unit;
public float old;
public float duration;
public float value;
public Scene zoneScene;
}
public struct UpdateHeadInfo_ChangeLevel
{
public Scene zoneScene;
public Unit unit;
public int old;
public float duration;
public int value;
}
public struct UpdateHeadInfo_ChangeExp
{
public Unit unit;
public float old;
public float value;
public Scene zoneScene;
}
public struct UpdateHeadInfo_ChangeMaxExp
{
public Unit unit;
public int level;
public Scene zoneScene;
}
public struct SetHudCharacter_ChangeHp
{
public Unit unit;
public Scene zoneScene;
}
public struct SetHudCharacter_ChangeLevel
{
public Unit unit;
public int level;
}
public struct InitHeadInfo
{
public Scene zoneScene;

View File

@ -3,34 +3,34 @@ using ProtoBuf;
using System.Collections.Generic;
namespace ET
{
public enum ItemType
public enum ItemType
{
NoneItem = 0,
EquipItem = 1,
GoodsItem = 2,
MaterialsItem =3,
NoneItem = 0,
EquipItem = 1,
GoodsItem = 2,
MaterialsItem =3,
}
public enum CampType //阵营
public enum CampType //阵营
{
NoneCamp = 0,
Pioneer = 1,//开拓者
Guardian = 2,//守护者
NoneCamp = 0,
Pioneer = 1,//开拓者
Guardian = 2,//守护者
}
public enum JobType //职业
public enum JobType //职业
{
UnKnown = 0,
Officer =1,
Sportsman=2,
Nurse=3,
Superman=4,
UnKnown = 0,
Officer =1,
Sportsman=2,
Nurse=3,
Superman=4,
}
public enum SexType //性别
public enum SexType //性别
{
Male=0,
Famale=1,
Male=0,
Famale=1,
}
[Message(OuterOpcode.BagMap)]
@ -299,12 +299,12 @@ namespace ET
}
//登录相关==================================
public enum LoginType //登录类型
public enum LoginType //登录类型
{
Editor = 0,// 编辑模式
Tourist = 1,//游客
WeChat = 2,//微信的 token
Voucher = 3,//登陆凭证
Editor = 0,// 编辑模式
Tourist = 1,//游客
WeChat = 2,//微信的 token
Voucher = 3,//登陆凭证
}
[ResponseType(typeof(R2C_Login))]
@ -1544,11 +1544,11 @@ namespace ET
[ProtoContract]
public partial class M2C_BattleChangeState:IActorMessage
{
public enum ChangeType
public enum ChangeType
{
None = 0,
Add = 1,
Reduce = 2,
None = 0,
Add = 1,
Reduce = 2,
}
[ProtoMember(90)]
@ -2205,11 +2205,11 @@ namespace ET
}
//=================家族===========================
public enum FamilyPosition
public enum FamilyPosition
{
FamilyLeader = 0,
FamilyDeputyLeader = 1,
FamilyMember = 2,
FamilyLeader = 0,
FamilyDeputyLeader = 1,
FamilyMember = 2,
}
[Message(OuterOpcode.FamilyMemberInfo)]
@ -3094,11 +3094,11 @@ namespace ET
}
//================商城/商店==================
public enum MarketType
public enum MarketType
{
NoneMarket = 0,
VoucherMarket = 1,
YuanBaoMarket = 2,
NoneMarket = 0,
VoucherMarket = 1,
YuanBaoMarket = 2,
}
[ResponseType(typeof(M2C_GetMarket))]
@ -3881,25 +3881,25 @@ namespace ET
}
//任务
public enum TaskTargetType
public enum TaskTargetType
{
NoneTask =0,
KillSpecialTask = 1,//击杀特定
KillAnyTask = 2,//击杀任意
CollectionTask = 3,//收集
DialogTask = 4,//对话
LevelTask= 5,//等级
SubmitTask = 6,//交物品
ChangeMapTask = 7,//通关(换地图)任务
CompleteTask = 8,//答题
NoneTask =0,
KillSpecialTask = 1,//击杀特定
KillAnyTask = 2,//击杀任意
CollectionTask = 3,//收集
DialogTask = 4,//对话
LevelTask= 5,//等级
SubmitTask = 6,//交物品
ChangeMapTask = 7,//通关(换地图)任务
CompleteTask = 8,//答题
}
public enum TaskState
public enum TaskState
{
TaskNoneState = 0,
TaskWaiting =1,
TaskRunning = 2,
TaskCompleted = 3,
TaskNoneState = 0,
TaskWaiting =1,
TaskRunning = 2,
TaskCompleted = 3,
}
[Message(OuterOpcode.TansferTask)]
@ -4084,11 +4084,11 @@ namespace ET
}
//==============主Ui=========================
public enum MainUIType
public enum MainUIType
{
NoneSlot = 0,//空
SkillSlot = 1,//技能
ItemSlot = 2,//物品
NoneSlot = 0,//空
SkillSlot = 1,//技能
ItemSlot = 2,//物品
}
[Message(OuterOpcode.MainUISlotInfo)]
@ -5014,10 +5014,10 @@ namespace ET
}
//=================邮箱======================
public enum MailState
public enum MailState
{
UnReceive = 0,
Received = 1,
UnReceive = 0,
Received = 1,
}
[Message(OuterOpcode.MailItem)]
@ -5258,24 +5258,24 @@ namespace ET
[ProtoContract]
public partial class RankingInfo
{
public enum RankingType
public enum RankingType
{
Level = 0,
Coin = 1,
Hp = 2,
Mp = 3,
Pet = 4,
Dvo = 5,
PAtk = 6,
MAtk = 7,
PCriR = 8,
MCriR = 9,
PCri = 10,
MCri = 11,
PRed = 12,
MRed= 13,
PDef= 14,
MDef= 15,
Level = 0,
Coin = 1,
Hp = 2,
Mp = 3,
Pet = 4,
Dvo = 5,
PAtk = 6,
MAtk = 7,
PCriR = 8,
MCriR = 9,
PCri = 10,
MCri = 11,
PRed = 12,
MRed= 13,
PDef= 14,
MDef= 15,
}
[ProtoMember(1)]
@ -5384,16 +5384,16 @@ namespace ET
}
//==============聊天=========================
public enum ChatType
public enum ChatType
{
NoneChat = 0,
Normal = 1,
Team = 2,
Family = 3,
Camp = 4,
World =5,
Private = 6,
System = 7,
NoneChat = 0,
Normal = 1,
Team = 2,
Family = 3,
Camp = 4,
World =5,
Private = 6,
System = 7,
}
[ResponseType(typeof(M2C_RequestChat))]
@ -5856,11 +5856,11 @@ namespace ET
[ProtoContract]
public partial class C2M_MakeMunalEquip:IActorLocationRequest
{
public enum StoneType {
Nomal = 0,
Rare = 1,
Epic = 2,
UpgradeRare = 3,
public enum StoneType {
Nomal = 0,
Rare = 1,
Epic = 2,
UpgradeRare = 3,
}
[ProtoMember(90)]

View File

@ -1,30 +0,0 @@
using ET;
namespace ET
{
/// <summary>
/// 监视hp数值变化改变血条值
/// </summary>
[NumericWatcher(NumericType.Hp)]
public class NumericWatcher_Hp : INumericWatcher
{
public async ETTask Run(Entity entity, float old, float value)
{
Log.Info($"@{entity.Id}改变 Hp:{old} -> {value}");
Unit unit = entity.As<Unit>();
Game.EventSystem.Publish_Sync(new ET.EventType.SetHudCharacter_ChangeHp
{
zoneScene=entity.ZoneScene(),
unit = unit,
});
Game.EventSystem.Publish_Sync(new ET.EventType.UpdateHeadInfo_ChangeHp
{
zoneScene = entity.ZoneScene(),
unit = unit,
old = old,
value = value
});
await ETTask.CompletedTask;
}
}
}

View File

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 4afa5a4329c75704386b810063e9af1a
timeCreated: 1506412332
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,38 +0,0 @@
using ET;
namespace ET
{
/// <summary>
/// 监视hp数值变化改变血条值
/// </summary>
[NumericWatcher(NumericType.Level)]
public class NumericWatcher_Level : INumericWatcher
{
public async ETTask Run(Entity entity, float old, float value)
{
Log.Info($"@{entity.Id}改变 Level:{old} -> {value}");
Unit unit = entity.As<Unit>();
Game.EventSystem.Publish_Sync(new ET.EventType.SetHudCharacter_ChangeLevel
{
unit = unit,
level = (int)value
});
Game.EventSystem.Publish_Sync(new ET.EventType.UpdateHeadInfo_ChangeLevel
{
zoneScene = entity.ZoneScene(),
unit = unit,
old = (int)old,
value = (int)value,
duration = 0.6f,
});
Game.EventSystem.Publish_Sync(new ET.EventType.UpdateHeadInfo_ChangeMaxExp
{
zoneScene = entity.ZoneScene(),
unit = unit,
level = (int)value,
});
await ETTask.CompletedTask;
}
}
}

View File

@ -52,9 +52,7 @@ namespace ET
Center();
if (maxHp == 0)
return;
fui.m_progress.value = Hp;
fui.m_progress.max = MaxHp;
fui.m_progress.titleType = titleType;
this.fui.m_pbHp.SetMaxShield(Hp,0,MaxHp);
}
catch (Exception e)
{
@ -139,7 +137,7 @@ namespace ET
fui.m_label.m_imgLevelBG.color = color;
fui.m_label.m_txtName.color = color;
}
public void ChangeToLevel(Unit unit)
public void ChangeToLevel(Entity unit)
{
fui.m_label.m_txtLevel.text = $"{CharacterHelper.GetLevelString(unit)}";
}
@ -154,31 +152,19 @@ namespace ET
Hp = hp;
MaxHp = maxHp;
if (!isVisible) return;
fui.m_progress.max = MaxHp;
fui.m_progress.value = Hp;
}
public void ChangeHp(int changeHPValue)
{
Hp += changeHPValue;
if (Hp > MaxHp)
Hp = MaxHp;
if (Hp < 0)
Hp = 0;
if (!isVisible) return;
fui.m_progress.value = Hp;
if (maxHp <= 0) return;
this.fui.m_pbHp.SetHpAndShield(Hp,0,this.MaxHp);
}
public void ShowHpBar(Unit unit)
{
NumericComponent num = unit.GetComponent<NumericComponent>();
fui.m_progress.visible = isVisible = true;
fui.m_pbHp.self.visible = isVisible = true;
RefreshHp(num);
}
public void HideHpBar()
{
fui.m_progress.visible = isVisible = false;
fui.m_pbHp.self.visible = isVisible = false;
}
}
}

View File

@ -32,13 +32,15 @@ namespace ET
private readonly int sortingOrder = 100;
public void Init(Unit unit)
{
if (PreQue.Count == 0)
{
GameObject hud = new GameObject("Hud");
GComponent c = hud.Add3DUI(FUI_HeadTitleInfo.UIPackageName, FUI_HeadTitleInfo.UIResName, Camera.main, sortingOrder);
this.PreQue.Enqueue(c);
}
GComponent gComponent = this.PreQue.Dequeue();
// if (PreQue.Count == 0)
// {
// GameObject hud = new GameObject("Hud");
// GComponent c = hud.Add3DUI(FUI_HeadTitleInfo.UIPackageName, FUI_HeadTitleInfo.UIResName, Camera.main, sortingOrder);
// this.PreQue.Enqueue(c);
// }
// GComponent gComponent = this.PreQue.Dequeue();
GameObject hud = new GameObject("Hud");
GComponent gComponent = hud.Add3DUI(FUI_HeadTitleInfo.UIPackageName, FUI_HeadTitleInfo.UIResName, Camera.main, sortingOrder);
FUI_HeadTitleInfo fui = FUI_HeadTitleInfo.GetFormPool(FUIComponent.Instance, gComponent);
fui.Name = fui.Id.ToString();
unit.AddComponent(fui);
@ -61,10 +63,10 @@ namespace ET
Log.Error($"fui == null");
return;
}
this.PreQue.Enqueue(fui.self);
Transform go = fui.self.container.cachedTransform.parent.parent;
go.SetParent(UnityRoot.Instance.ObjPoolParent);
go.gameObject.SetActive(false);
// this.PreQue.Enqueue(fui.self);
// Transform go = fui.self.container.cachedTransform.parent.parent;
// go.SetParent(UnityRoot.Instance.ObjPoolParent);
// go.gameObject.SetActive(false);
unit.RemoveComponent(fui);
unit.RemoveComponent<HudCharacter>();
}

View File

@ -10,26 +10,7 @@ namespace ET
{
public override async ETTask Run(ChangeSkin args)
{
long id = args.Id;
int skinId = args.skinId;
var zoneScene = args.zoneScene;
Unit unit = zoneScene.GetComponent<UnitComponent>().Get(id);
if (!unit)
{
Log.Error($"unit is invalid where id = {id}");
return;
}
SkinBase skinBase =SkinBaseCategory.Instance.Get(skinId);
if (skinBase == null)
{
Log.Error($"没有skinId = {skinId}");
return;
}
UnitView unitView = unit.GetComponent<UnitView>();
if (unitView)
{
await unitView.ChangeSkin(skinBase.PrfabId);
}
await ETTask.CompletedTask;
}
}

View File

@ -14,23 +14,4 @@ namespace ET
hud.Init(args, args.progressTitleType);
}
}
public class SetHudCharacter_ChangeHpEvent : AEvent_Sync<SetHudCharacter_ChangeHp>
{
public override void Run(SetHudCharacter_ChangeHp args)
{
Unit unit = args.unit;
NumericComponent num = unit.GetComponent<NumericComponent>();
HudCharacter hud = unit.GetComponent<HudCharacter>();
hud.RefreshHp(num);
}
}
public class SetHudCharacter_ChangeLevelEvent : AEvent_Sync<SetHudCharacter_ChangeLevel>
{
public override void Run(SetHudCharacter_ChangeLevel args)
{
Unit unit = args.unit;
HudCharacter hud = unit.GetComponent<HudCharacter>();
hud.ChangeToLevel(unit);
}
}
}

View File

@ -1,21 +0,0 @@
using ET.EventType;
using ET;
using System;
using System.Collections.Generic;
namespace ET
{
public class ChangeCoinEvent : AEvent_Sync<ChangeCoin>
{
public override void Run(ChangeCoin args)
{
long coin = args.coin;
if (!(FUIComponent.Instance.Get(FUIPackage.Bag_BagUI) is FUI_BagUI bagUI))
return;
(long gold, int sliver, int cupper) = TabHelper.GetCoinFormat(coin);
bagUI.m_txtGold.text = gold + string.Empty;
bagUI.m_txtSliver.text = sliver + string.Empty;
bagUI.m_txtCoin.text = cupper + string.Empty;
}
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: b541ea15c8fc54b41822bdf693a05ce3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More