Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using DOL.GS;
- using DOL.GS.PacketHandler;
- using DOL.Events;
- using DOL.GS.Scripts;
- using System;
- using System.Collections.Generic;
- using DOL.Database;
- public class StatTemplateManager
- {
- [GameServerStartedEvent]
- public static void OnServerStart(DOLEvent e, object sender, EventArgs arguments)
- {
- GameEventMgr.AddHandler(GamePlayerEvent.GameEntered, new DOLEventHandler(GameEntered));
- GameEventMgr.AddHandler(GamePlayerEvent.RegionChanged, new DOLEventHandler(RegionChanged));
- }
- public static void GameEntered(DOLEvent e, object sender, EventArgs arguments)
- {
- GamePlayer player = sender as GamePlayer;
- if (player == null)
- {
- return;
- }
- GivePlayerFreeStats(player);
- }
- private static void RegionChanged(DOLEvent e, object sender, EventArgs arguments)
- {
- GamePlayer player = sender as GamePlayer;
- if (player == null)
- {
- return;
- }
- GivePlayerFreeStats(player);
- }
- public static void GivePlayerFreeStats(GamePlayer player)
- {
- player.RefreshItemBonuses();
- player.ItemBonus[(int)eProperty.MaxHealth] += 500;
- player.ItemBonus[(int)eProperty.AllFocusLevels] += 500;
- player.ItemBonus[(int)eProperty.MaxHealthCapBonus] += 500;
- player.ItemBonus[(int)eProperty.MaxHealth] += 300;
- player.ItemBonus[(int)eProperty.MeleeDamage] += 10;
- player.ItemBonus[(int)eProperty.MeleeSpeed] += 10;
- player.ItemBonus[(int)eProperty.SpellRange] += 30;
- player.ItemBonus[(int)eProperty.ArmorFactor] += 30;
- player.ItemBonus[(int)eProperty.SpellRange] += 30;
- player.ItemBonus[(int)eProperty.Acuity] += 100;
- player.ItemBonus[(int)eProperty.MaxHealthCapBonus] += 300;
- SetItemBonuses(player, 31, 101, 30);
- foreach (GameInventoryItem item in player.Inventory.EquippedItems)
- {
- item.OnEquipped(player);
- }
- }
- public static void SetItemBonuses(GamePlayer player, int resists, int stats, int statsovercap)
- {
- for (int stat = (int)eProperty.Stat_First; stat <= (int)eProperty.Stat_Last; stat++)
- {
- player.ItemBonus[stat] += stats;
- }
- for (int statcap = (int)eProperty.StatCapBonus_First; statcap <= (int)eProperty.StatCapBonus_Last; statcap++)
- {
- player.ItemBonus[statcap] += statsovercap;
- }
- for (int resist = (int)eProperty.Resist_First; resist <= (int)eProperty.Resist_Last; resist++)
- {
- player.ItemBonus[resist] += resists;
- }
- for (int skill = (int)eProperty.Skill_First; skill <= (int)eProperty.Skill_Last; skill++)
- {
- player.ItemBonus[skill] += 15;
- }
- player.Out.SendCharStatsUpdate();
- player.Out.SendCharResistsUpdate();
- player.Out.SendUpdateWeaponAndArmorStats();
- player.Out.SendUpdateMaxSpeed();
- player.Out.SendEncumberance();
- player.Out.SendUpdatePlayerSkills();
- player.UpdatePlayerStatus();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement