mirror of
https://github.com/SoDOff-Project/sodoff.git
synced 2025-10-11 08:18:49 -07:00
fix farms issues
spoof levels
This commit is contained in:
parent
a96a256c11
commit
ffd7fd9a20
@ -64,7 +64,8 @@ methods = [
|
||||
'GetUserRoomList',
|
||||
'GetUserActivityByUserID',
|
||||
'SetNextItemState',
|
||||
'SetUserRoom'
|
||||
'SetUserRoom',
|
||||
'GetUserGameCurrency'
|
||||
]
|
||||
|
||||
def routable(path):
|
||||
|
@ -55,10 +55,22 @@ public class AchievementController : Controller {
|
||||
UserAchievementInfo = new UserAchievementInfo[]{
|
||||
new UserAchievementInfo {
|
||||
UserID = Guid.Parse(userId),
|
||||
AchievementPointTotal = 0,
|
||||
RankID = 1,
|
||||
AchievementPointTotal = 5000,
|
||||
RankID = 30,
|
||||
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));
|
||||
}
|
||||
|
||||
[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) {
|
||||
RaisedPetData data = XmlUtil.DeserializeXml<RaisedPetData>(dragon.RaisedPetData);
|
||||
data.RaisedPetID = dragon.Id;
|
||||
|
@ -141,12 +141,24 @@ public class ProfileController : Controller {
|
||||
RankID = 0, // placeholder
|
||||
AchievementInfo = null, // placeholder
|
||||
Achievements = new UserAchievementInfo[] {
|
||||
new UserAchievementInfo {
|
||||
UserID = Guid.Parse(viking.Id),
|
||||
AchievementPointTotal = 0, // placeholder
|
||||
RankID = 1, // placeholder
|
||||
PointTypeID = 1 // placeholder
|
||||
}
|
||||
new UserAchievementInfo {
|
||||
UserID = Guid.Parse(viking.Id),
|
||||
AchievementPointTotal = 5000,
|
||||
RankID = 30,
|
||||
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);
|
||||
|
||||
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;
|
||||
if (nextStateID == -1) {
|
||||
nextStateID = pos.UserItemState.ItemStateID;
|
||||
@ -137,11 +158,14 @@ public class RoomService {
|
||||
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)
|
||||
return pos.Item.ItemStates.Find(x => x.Order == 1)!.ItemStateID;
|
||||
|
||||
ItemState currState = pos.Item.ItemStates.Find(x => x.ItemStateID == pos.UserItemState.ItemStateID)!;
|
||||
rewards = currState.Rewards;
|
||||
|
||||
if (speedup)
|
||||
return ((ItemStateCriteriaSpeedUpItem)currState.Rule.Criterias.Find(x => x.Type == ItemStateCriteriaType.SpeedUpItem)!).EndStateID;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user