You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
4.9 KiB
136 lines
4.9 KiB
using System; |
|
using System.Collections.Generic; |
|
|
|
namespace ET |
|
{ |
|
[FriendClass(typeof (Unit))] |
|
public static class CheatHelper |
|
{ |
|
public static async ETTask<int> AddItem(Unit unit, int id, int type, uint num) |
|
{ |
|
try |
|
{ |
|
C2M_Cheat msg = new C2M_Cheat() { Type = type, Id = id, Num = num }; |
|
M2C_Cheat resp = await unit.ZoneScene().GetComponent<SessionComponent>().Session.Call(msg) as M2C_Cheat; |
|
if (resp.Error == ErrorCode.ERR_Success) |
|
{ |
|
if (type == 1) |
|
{ |
|
StoreComponent storeComponent = unit.GetComponent<StoreComponent>(); |
|
if (num >= 0) |
|
{ |
|
storeComponent.Add(id, num); |
|
} |
|
else |
|
{ |
|
storeComponent.Remove(id, (int) Math.Abs(num)); |
|
} |
|
} |
|
else if (type == 2) |
|
{ |
|
if (id == NumericType.Water) |
|
{ |
|
unit.Water += num; |
|
} |
|
else if (id == NumericType.Food) |
|
{ |
|
unit.Food += num; |
|
} |
|
else if (id == NumericType.SilverTael) |
|
{ |
|
if (num >= 0) |
|
{ |
|
unit.SilverTael += (int) Math.Abs(num); |
|
} |
|
else |
|
{ |
|
unit.SilverTael -= (int) Math.Abs(num); |
|
} |
|
} |
|
else if (id == NumericType.GoldIngot) |
|
{ |
|
if (num >= 0) |
|
{ |
|
unit.GoldIngot += (int) Math.Abs(num); |
|
} |
|
else |
|
{ |
|
unit.GoldIngot -= (int) Math.Abs(num); |
|
} |
|
} |
|
else if (id == NumericType.Season) |
|
{ |
|
if (num >= 0) |
|
{ |
|
unit.Season += (int) Math.Abs(num); |
|
} |
|
else |
|
{ |
|
unit.Season -= (int) Math.Abs(num); |
|
} |
|
} |
|
else if (id == NumericType.Scale) |
|
{ |
|
if (num >= 0) |
|
{ |
|
unit.Scale += (int) Math.Abs(num); |
|
} |
|
else |
|
{ |
|
unit.Scale -= (int) Math.Abs(num); |
|
} |
|
} |
|
else if (id == NumericType.Prosperity) |
|
{ |
|
if (num >= 0) |
|
{ |
|
unit.Prosperity += (int) Math.Abs(num); |
|
} |
|
else |
|
{ |
|
unit.Prosperity -= (int) Math.Abs(num); |
|
} |
|
} |
|
else if (id == NumericType.Time) |
|
{ |
|
unit.GameTime = (int) num; |
|
} |
|
} |
|
} |
|
else |
|
{ |
|
Log.Error(resp.Error.ToString()); |
|
} |
|
|
|
return resp.Error; |
|
} |
|
catch (Exception e) |
|
{ |
|
Log.Error(e.ToString()); |
|
throw; |
|
} |
|
} |
|
|
|
public static async ETTask<int> AddItemList(Unit unit, List<int> configIds, List<int> nums) |
|
{ |
|
try |
|
{ |
|
C2M_CheatItemList msg = new C2M_CheatItemList() { ConfigIds = configIds, Nums = nums }; |
|
M2C_CheatItemList resp = await unit.ZoneScene().GetComponent<SessionComponent>().Session.Call(msg) as M2C_CheatItemList; |
|
if (resp.Error == ErrorCode.ERR_Success) |
|
{ |
|
for (int i = 0; i < configIds.Count; i++) |
|
{ |
|
unit.GetComponent<StoreComponent>().Add(configIds[i], nums[i]); |
|
} |
|
} |
|
return resp.Error; |
|
} |
|
catch (Exception e) |
|
{ |
|
Log.Error(e.ToString()); |
|
throw; |
|
} |
|
} |
|
} |
|
} |