Beispiel #1
0
 private void ExpGain(RPGInfo rpgInfo, int experience, BasePlayer player)
 {
     var steamId = RPGHelper.SteamId(player);
     if (IsNight())
         experience *= 2;
     if (rpgInfo.AddExperience(experience, RequiredExperience(rpgInfo.Level)))
     {
         NotifyLevelUp(player, rpgInfo);
         PlayerLastPercentChange[steamId] = 0;
     }
     else
     {
         var currentPercent = CurrentPercent(rpgInfo);
         if (!PlayerLastPercentChange.ContainsKey(steamId))
             PlayerLastPercentChange.Add(steamId, currentPercent);
         var lastPercent = PlayerLastPercentChange[steamId];
         var requiredPercentChange = rpgInfo.Preferences.ShowXPMessagePercent;
         float percentChange = currentPercent - lastPercent;
         if (percentChange < requiredPercentChange) return;
         ChatMessage(player, XPProgression(rpgInfo));
         PlayerLastPercentChange[steamId] = currentPercent;
     }
 }
Beispiel #2
0
 public void LevelUpPlayer(RPGInfo rpgInfo, int desiredLevel)
 {
     var levelsToUp = desiredLevel - rpgInfo.Level;
     for (int i = 0; i < levelsToUp; i++)
     {
         long requiredXP = RequiredExperience(rpgInfo.Level);
         rpgInfo.AddExperience(requiredXP, requiredXP);
     }
 }