Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. /*
  2. * DAWN OF LIGHT - The first free open source DAoC server emulator
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation; either version 2
  7. * of the License, or (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, write to the Free Software
  16. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  17. *
  18. */
  19. using System;
  20. using DOL.Events;
  21. using DOL.GS.PacketHandler;
  22. using DOL.Language;
  23.  
  24. namespace DOL.GS.GameEvents
  25. {
  26. /// <summary>
  27. /// Spams everyone online with player enter/exit messages
  28. /// </summary>
  29. public class CustomEnterExit
  30. {
  31. /// <summary>
  32. /// Event handler fired when server is started
  33. /// </summary>
  34. [GameServerStartedEvent]
  35. public static void OnServerStart(DOLEvent e, object sender, EventArgs arguments)
  36. {
  37. GameEventMgr.AddHandler(GamePlayerEvent.GameEntered, new DOLEventHandler(PlayerEntered));
  38. }
  39.  
  40. /// <summary>
  41. /// Event handler fired when server is stopped
  42. /// </summary>
  43. [GameServerStoppedEvent]
  44. public static void OnServerStop(DOLEvent e, object sender, EventArgs arguments)
  45. {
  46. GameEventMgr.RemoveHandler(GamePlayerEvent.GameEntered, new DOLEventHandler(PlayerEntered));
  47. }
  48.  
  49. /// <summary>
  50. /// Event handler fired when players enters the game
  51. /// </summary>
  52. /// <param name="e"></param>
  53. /// <param name="sender"></param>
  54. /// <param name="arguments"></param>
  55. private static void PlayerEntered(DOLEvent e, object sender, EventArgs arguments)
  56. {
  57. GamePlayer player = sender as GamePlayer;
  58. if (player == null) return;
  59.  
  60.  
  61.  
  62. if (player.RealmLevel >= 0 && player.RealmLevel < 20) // rr = 1l0 - 2l9..
  63. {
  64. SetItemBonuses(player, 24, 90, 15); // 24% resists, 90/90..
  65. }
  66. else if (player.RealmLevel >= 20 && player.RealmLevel < 30) // rr3l0 - rr3l9
  67. {
  68. SetItemBonuses(player, 19, 75, 0); // 19% resists, 75/75..
  69. }
  70. else if (player.RealmLevel >= 30 && player.RealmLevel < 40) // rr4l0 - rr4l9
  71. {
  72. SetItemBonuses(player, 15, 60, -15); // 15% resists, 60/60.
  73. }
  74. else if (player.RealmLevel >= 40 && player.RealmLevel < 50) // rr5l0 - rr5l9
  75. {
  76. SetItemBonuses(player, 10, 50, -25); // 10% resists, 50/50.
  77. }
  78. else if (player.RealmLevel >= 50 && player.RealmLevel < 60) // rr6l0 - rr7l0
  79. {
  80. SetItemBonuses(player, 8, 40, -35); // 8% resists, 40/40..
  81. }
  82. else if (player.RealmLevel >= 60 && player.RealmLevel <= 120) // rr7l0 - rr13
  83. {
  84. SetItemBonuses(player, 5, 25, -50); // 5% resists, 25/25..
  85. }
  86. }
  87. public static void SetItemBonuses(GamePlayer player, int resists, int stats, int statsovercap)
  88. {
  89. for (int stat = (int)eProperty.Stat_First; stat <= (int)eProperty.Stat_Last; stat++)
  90. {
  91. player.ItemBonus[stat] += stats;
  92. }
  93. for (int statcap = (int)eProperty.StatCapBonus_First; statcap <= (int)eProperty.StatCapBonus_Last; statcap++)
  94. {
  95. player.ItemBonus[statcap] += statsovercap;
  96. }
  97. for (int resist = (int)eProperty.Resist_First; resist <= (int)eProperty.Resist_Last; resist++)
  98. {
  99. player.ItemBonus[resist] += resists;
  100. }
  101. for (int skill = (int)eProperty.Skill_First; skill <= (int)eProperty.Skill_Last; skill++)
  102. {
  103. player.ItemBonus[skill] += 15;
  104. }
  105.  
  106. player.Out.SendCharStatsUpdate();
  107. player.Out.SendCharResistsUpdate();
  108. player.Out.SendUpdateWeaponAndArmorStats();
  109. player.Out.SendUpdateMaxSpeed();
  110. player.Out.SendEncumberance();
  111. player.Out.SendUpdatePlayerSkills();
  112. player.UpdatePlayerStatus();
  113.  
  114. }
  115. }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement