恢复体力

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
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)) {
itemNum = itemMap.get(Global.STAMINA).getItemNum();
}
MapManager mapManager = user.getMapManager();
int lastUpdateEnergyTime = mapManager.getLastUpdateEnergyTime();
if(itemNum < playerInfoManager.getMaxStamina()){
int updateTime = (int)(System.currentTimeMillis()/1000);
int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed();
int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0];
if(addValue != 0){
int curEnergy = MathUtils.setBetweenWithMax(itemNum + addValue,0,SGameSetting.getGameSetting().getInitialEnergy());
ItemUtil.drop(user, StringUtil.parseFiledInt2( Global.STAMINA+"#"+curEnergy));
mapManager.setLastUpdateEnergyTime(updateTime);
Item item = user.getItemManager().getItemMap().get(Global.STAMINA);
int updateTime = (int)(System.currentTimeMillis()/1000);
int lastUpdateEnergyTime = item.getEndingTime();
if ((updateTime -lastUpdateEnergyTime)/60 >= 1){
if(itemNum < playerInfoManager.getMaxStamina()){
int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed();
int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0];
if(addValue != 0){
int curEnergy = MathUtils.setBetweenWithMax(itemNum + addValue,0,SGameSetting.getGameSetting().getInitialEnergy());
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) {
updateString("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<>();
ItemManager itemManager = user.getItemManager();
Map<Integer, Item> itemMap = itemManager.getItemMap();
if (itemMap.size() !=0 ){
for (Map.Entry<Integer, Item> entry :itemMap.entrySet()){
if (entry.getKey() ==Global.STAMINA){
MapManager.getEnergy(user);
}
itemList.add(CBean2Proto.getItem(entry.getValue(),-1));
}
}