forked from SoDOff-Project/sodoff
fix farms issues
spoof levels
This commit is contained in:
parent
a96a256c11
commit
ffd7fd9a20
@ -64,7 +64,8 @@ methods = [
|
|||||||
'GetUserRoomList',
|
'GetUserRoomList',
|
||||||
'GetUserActivityByUserID',
|
'GetUserActivityByUserID',
|
||||||
'SetNextItemState',
|
'SetNextItemState',
|
||||||
'SetUserRoom'
|
'SetUserRoom',
|
||||||
|
'GetUserGameCurrency'
|
||||||
]
|
]
|
||||||
|
|
||||||
def routable(path):
|
def routable(path):
|
||||||
|
@ -55,10 +55,22 @@ public class AchievementController : Controller {
|
|||||||
UserAchievementInfo = new UserAchievementInfo[]{
|
UserAchievementInfo = new UserAchievementInfo[]{
|
||||||
new UserAchievementInfo {
|
new UserAchievementInfo {
|
||||||
UserID = Guid.Parse(userId),
|
UserID = Guid.Parse(userId),
|
||||||
AchievementPointTotal = 0,
|
AchievementPointTotal = 5000,
|
||||||
RankID = 1,
|
RankID = 30,
|
||||||
PointTypeID = 1
|
PointTypeID = 1
|
||||||
}
|
},
|
||||||
|
new UserAchievementInfo {
|
||||||
|
UserID = Guid.Parse(userId),
|
||||||
|
AchievementPointTotal = 5000,
|
||||||
|
RankID = 30,
|
||||||
|
PointTypeID = 9
|
||||||
|
},
|
||||||
|
new UserAchievementInfo {
|
||||||
|
UserID = Guid.Parse(userId),
|
||||||
|
AchievementPointTotal = 5000,
|
||||||
|
RankID = 30,
|
||||||
|
PointTypeID = 10
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -767,6 +767,19 @@ public class ContentController : Controller {
|
|||||||
return Ok(roomService.NextItemState(item, request.OverrideStateCriteria));
|
return Ok(roomService.NextItemState(item, request.OverrideStateCriteria));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Produces("application/xml")]
|
||||||
|
[Route("ContentWebService.asmx/GetUserGameCurrency")]
|
||||||
|
public IActionResult GetUserGameCurrency([FromForm] string userId) {
|
||||||
|
// TODO: This is a placeholder
|
||||||
|
return Ok(new UserGameCurrency {
|
||||||
|
CashCurrency = 1000,
|
||||||
|
GameCurrency = 1000,
|
||||||
|
UserGameCurrencyID = 0,
|
||||||
|
UserID = Guid.Parse(userId)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private RaisedPetData GetRaisedPetDataFromDragon (Dragon dragon) {
|
private RaisedPetData GetRaisedPetDataFromDragon (Dragon dragon) {
|
||||||
RaisedPetData data = XmlUtil.DeserializeXml<RaisedPetData>(dragon.RaisedPetData);
|
RaisedPetData data = XmlUtil.DeserializeXml<RaisedPetData>(dragon.RaisedPetData);
|
||||||
data.RaisedPetID = dragon.Id;
|
data.RaisedPetID = dragon.Id;
|
||||||
|
@ -141,12 +141,24 @@ public class ProfileController : Controller {
|
|||||||
RankID = 0, // placeholder
|
RankID = 0, // placeholder
|
||||||
AchievementInfo = null, // placeholder
|
AchievementInfo = null, // placeholder
|
||||||
Achievements = new UserAchievementInfo[] {
|
Achievements = new UserAchievementInfo[] {
|
||||||
new UserAchievementInfo {
|
new UserAchievementInfo {
|
||||||
UserID = Guid.Parse(viking.Id),
|
UserID = Guid.Parse(viking.Id),
|
||||||
AchievementPointTotal = 0, // placeholder
|
AchievementPointTotal = 5000,
|
||||||
RankID = 1, // placeholder
|
RankID = 30,
|
||||||
PointTypeID = 1 // placeholder
|
PointTypeID = 1
|
||||||
}
|
},
|
||||||
|
new UserAchievementInfo {
|
||||||
|
UserID = Guid.Parse(viking.Id),
|
||||||
|
AchievementPointTotal = 5000,
|
||||||
|
RankID = 30,
|
||||||
|
PointTypeID = 9
|
||||||
|
},
|
||||||
|
new UserAchievementInfo {
|
||||||
|
UserID = Guid.Parse(viking.Id),
|
||||||
|
AchievementPointTotal = 5000,
|
||||||
|
RankID = 30,
|
||||||
|
PointTypeID = 10
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -111,7 +111,28 @@ public class RoomService {
|
|||||||
};
|
};
|
||||||
UserItemPosition pos = XmlUtil.DeserializeXml<UserItemPosition>(item.RoomItemData);
|
UserItemPosition pos = XmlUtil.DeserializeXml<UserItemPosition>(item.RoomItemData);
|
||||||
|
|
||||||
int nextStateID = GetNextStateID(pos, speedup);
|
AchievementReward[]? rewards;
|
||||||
|
int nextStateID = GetNextStateID(pos, speedup, out rewards);
|
||||||
|
|
||||||
|
if (rewards != null) {
|
||||||
|
response.Rewards = rewards;
|
||||||
|
foreach (var reward in rewards) {
|
||||||
|
if (reward.PointTypeID == 6) {
|
||||||
|
// TODO: This is not a pretty solution. Use inventory service in the future
|
||||||
|
InventoryItem? ii = item.Room.Viking.Inventory.InventoryItems.FirstOrDefault(x => x.ItemId == reward.ItemID);
|
||||||
|
if (ii is null) {
|
||||||
|
ii = new InventoryItem {
|
||||||
|
ItemId = reward.ItemID,
|
||||||
|
Quantity = 0
|
||||||
|
};
|
||||||
|
item.Room.Viking.Inventory.InventoryItems.Add(ii);
|
||||||
|
}
|
||||||
|
ii.Quantity += (int)reward.Amount!;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ctx.SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
DateTime stateChange = DateTime.Now;
|
DateTime stateChange = DateTime.Now;
|
||||||
if (nextStateID == -1) {
|
if (nextStateID == -1) {
|
||||||
nextStateID = pos.UserItemState.ItemStateID;
|
nextStateID = pos.UserItemState.ItemStateID;
|
||||||
@ -137,11 +158,14 @@ public class RoomService {
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int GetNextStateID(UserItemPosition pos, bool speedup) {
|
private int GetNextStateID(UserItemPosition pos, bool speedup, out AchievementReward[]? rewards) {
|
||||||
|
rewards = null;
|
||||||
if (pos.UserItemState == null)
|
if (pos.UserItemState == null)
|
||||||
return pos.Item.ItemStates.Find(x => x.Order == 1)!.ItemStateID;
|
return pos.Item.ItemStates.Find(x => x.Order == 1)!.ItemStateID;
|
||||||
|
|
||||||
ItemState currState = pos.Item.ItemStates.Find(x => x.ItemStateID == pos.UserItemState.ItemStateID)!;
|
ItemState currState = pos.Item.ItemStates.Find(x => x.ItemStateID == pos.UserItemState.ItemStateID)!;
|
||||||
|
rewards = currState.Rewards;
|
||||||
|
|
||||||
if (speedup)
|
if (speedup)
|
||||||
return ((ItemStateCriteriaSpeedUpItem)currState.Rule.Criterias.Find(x => x.Type == ItemStateCriteriaType.SpeedUpItem)!).EndStateID;
|
return ((ItemStateCriteriaSpeedUpItem)currState.Rule.Criterias.Find(x => x.Type == ItemStateCriteriaType.SpeedUpItem)!).EndStateID;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user