恢复体力

back_recharge
gaojie 2019-04-16 17:34:32 +08:00
parent befccd4e38
commit fc76607c69
3 changed files with 30 additions and 12 deletions

View File

@ -1,3 +1,3 @@
Id BornItem SpeedFormula InitialEnergy EnergyRecoverSpeed ActionPowerRormula Speed HeroNumlimit EquipNumlimit WorldTalking BornPosition Id BornItem SpeedFormula InitialEnergy EnergyRecoverSpeed ActionPowerRormula Speed HeroNumlimit EquipNumlimit WorldTalking BornPosition
int mut,int#int,2 mut,float#float,1 int mut,int#int,1 mut,int#int,1 mut,int#int,1 int int int mut,int#int,1 int mut,int#int,2 mut,float#float,1 int mut,int#int,1 mut,int#int,1 mut,int#int,1 int int int mut,int#int,1
1 10008#1|10013#1|10023#1|1503#8 0#0#0.3164#0 100 60#1 0#0#1#0 70#100 999 9999 1 08#19 1 10008#1|10013#1|10023#1|1503#8|2#60 0#0#0.3164#0 100 60#1 0#0#1#0 70#100 999 9999 1 08#19

View File

@ -212,20 +212,35 @@ public class MapManager extends MongoBase {
if (itemMap.containsKey(Global.STAMINA)) { if (itemMap.containsKey(Global.STAMINA)) {
itemNum = itemMap.get(Global.STAMINA).getItemNum(); itemNum = itemMap.get(Global.STAMINA).getItemNum();
} }
MapManager mapManager = user.getMapManager(); Item item = user.getItemManager().getItemMap().get(Global.STAMINA);
int lastUpdateEnergyTime = mapManager.getLastUpdateEnergyTime(); int updateTime = (int)(System.currentTimeMillis()/1000);
if(itemNum < playerInfoManager.getMaxStamina()){ int lastUpdateEnergyTime = item.getEndingTime();
int updateTime = (int)(System.currentTimeMillis()/1000); if ((updateTime -lastUpdateEnergyTime)/60 >= 1){
int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed(); if(itemNum < playerInfoManager.getMaxStamina()){
int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0]; int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed();
if(addValue != 0){ int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0];
int curEnergy = MathUtils.setBetweenWithMax(itemNum + addValue,0,SGameSetting.getGameSetting().getInitialEnergy()); if(addValue != 0){
ItemUtil.drop(user, StringUtil.parseFiledInt2( Global.STAMINA+"#"+curEnergy)); int curEnergy = MathUtils.setBetweenWithMax(itemNum + addValue,0,SGameSetting.getGameSetting().getInitialEnergy());
mapManager.setLastUpdateEnergyTime(updateTime); item.setItemNum(curEnergy>playerInfoManager.getMaxStamina()?playerInfoManager.getMaxStamina():curEnergy);
setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime);
}
}else {
setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime);
} }
} }
} }
private static void setLastUpdateEnergyTime(Item item, int updateTime, int lastUpdateEnergyTime) throws Exception {
int time = lastUpdateEnergyTime + ((updateTime -lastUpdateEnergyTime)/60 )* 60;
item.setEndingTime(time);
}
public static void main(String [] args){
int lastUpdateEnergyTime = 1552170600;
int nowTime = 1552170735;
int time = lastUpdateEnergyTime + ((nowTime -lastUpdateEnergyTime)/60 )* 60;
System.out.println(time);
}
public void setLastUpdateEnergyTime(int lastUpdateEnergyTime) { public void setLastUpdateEnergyTime(int lastUpdateEnergyTime) {
updateString("lastUpdateEnergyTime", lastUpdateEnergyTime); updateString("lastUpdateEnergyTime", lastUpdateEnergyTime);
this.lastUpdateEnergyTime = lastUpdateEnergyTime; this.lastUpdateEnergyTime = lastUpdateEnergyTime;

View File

@ -396,12 +396,15 @@ public class ItemUtil {
} }
public static List<CommonProto.Item > getAllItem(User user){ public static List<CommonProto.Item > getAllItem(User user) throws Exception {
List<CommonProto.Item > itemList = new ArrayList<>(); List<CommonProto.Item > itemList = new ArrayList<>();
ItemManager itemManager = user.getItemManager(); ItemManager itemManager = user.getItemManager();
Map<Integer, Item> itemMap = itemManager.getItemMap(); Map<Integer, Item> itemMap = itemManager.getItemMap();
if (itemMap.size() !=0 ){ if (itemMap.size() !=0 ){
for (Map.Entry<Integer, Item> entry :itemMap.entrySet()){ for (Map.Entry<Integer, Item> entry :itemMap.entrySet()){
if (entry.getKey() ==Global.STAMINA){
MapManager.getEnergy(user);
}
itemList.add(CBean2Proto.getItem(entry.getValue(),-1)); itemList.add(CBean2Proto.getItem(entry.getValue(),-1));
} }
} }