Advertisement
Guest User

Untitled

a guest
Mar 7th, 2014
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. using DOL.GS;
  2. using DOL.GS.PacketHandler;
  3. using DOL.Events;
  4. using DOL.GS.Scripts;
  5. using System;
  6. using System.Collections.Generic;
  7. using DOL.Database;
  8. public class StatTemplateManager
  9. {
  10. [GameServerStartedEvent]
  11. public static void OnServerStart(DOLEvent e, object sender, EventArgs arguments)
  12. {
  13. GameEventMgr.AddHandler(GamePlayerEvent.GameEntered, new DOLEventHandler(GameEntered));
  14. GameEventMgr.AddHandler(GamePlayerEvent.RegionChanged, new DOLEventHandler(RegionChanged));
  15. }
  16.  
  17. public static void GameEntered(DOLEvent e, object sender, EventArgs arguments)
  18. {
  19. GamePlayer player = sender as GamePlayer;
  20. if (player == null)
  21. {
  22. return;
  23. }
  24. GivePlayerFreeStats(player);
  25. }
  26. private static void RegionChanged(DOLEvent e, object sender, EventArgs arguments)
  27. {
  28. GamePlayer player = sender as GamePlayer;
  29. if (player == null)
  30. {
  31. return;
  32. }
  33. GivePlayerFreeStats(player);
  34. }
  35. public static void GivePlayerFreeStats(GamePlayer player)
  36. {
  37. player.RefreshItemBonuses();
  38. player.ItemBonus[(int)eProperty.MaxHealth] += 500;
  39. player.ItemBonus[(int)eProperty.AllFocusLevels] += 500;
  40. player.ItemBonus[(int)eProperty.MaxHealthCapBonus] += 500;
  41. player.ItemBonus[(int)eProperty.MaxHealth] += 300;
  42. player.ItemBonus[(int)eProperty.MeleeDamage] += 10;
  43. player.ItemBonus[(int)eProperty.MeleeSpeed] += 10;
  44. player.ItemBonus[(int)eProperty.SpellRange] += 30;
  45. player.ItemBonus[(int)eProperty.ArmorFactor] += 30;
  46. player.ItemBonus[(int)eProperty.SpellRange] += 30;
  47. player.ItemBonus[(int)eProperty.Acuity] += 100;
  48. player.ItemBonus[(int)eProperty.MaxHealthCapBonus] += 300;
  49. SetItemBonuses(player, 31, 101, 30);
  50. foreach (GameInventoryItem item in player.Inventory.EquippedItems)
  51. {
  52. item.OnEquipped(player);
  53. }
  54. }
  55. public static void SetItemBonuses(GamePlayer player, int resists, int stats, int statsovercap)
  56. {
  57. for (int stat = (int)eProperty.Stat_First; stat <= (int)eProperty.Stat_Last; stat++)
  58. {
  59. player.ItemBonus[stat] += stats;
  60. }
  61. for (int statcap = (int)eProperty.StatCapBonus_First; statcap <= (int)eProperty.StatCapBonus_Last; statcap++)
  62. {
  63. player.ItemBonus[statcap] += statsovercap;
  64. }
  65. for (int resist = (int)eProperty.Resist_First; resist <= (int)eProperty.Resist_Last; resist++)
  66. {
  67. player.ItemBonus[resist] += resists;
  68. }
  69. for (int skill = (int)eProperty.Skill_First; skill <= (int)eProperty.Skill_Last; skill++)
  70. {
  71. player.ItemBonus[skill] += 15;
  72. }
  73.  
  74.  
  75. player.Out.SendCharStatsUpdate();
  76. player.Out.SendCharResistsUpdate();
  77. player.Out.SendUpdateWeaponAndArmorStats();
  78. player.Out.SendUpdateMaxSpeed();
  79. player.Out.SendEncumberance();
  80. player.Out.SendUpdatePlayerSkills();
  81. player.UpdatePlayerStatus();
  82.  
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement