Advertisement
xThomas

Suno Hydros Balance RMS XS Script 1.0

Dec 18th, 2021 (edited)
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. /*
  2. suno hydra dm balance ideas
  3. XS script by xThomas
  4. Created: Dec 16, 2021
  5. Modified: Dec 17, 2021
  6.  
  7. Version: 1.0
  8. You can include XS scripts in a random map script
  9. just add this line to it at the top somewhere
  10. #includeXS suno_hydro_1.0.xs
  11.  
  12. If you're making your own xs script and want them to transfer in lobbys, place them in your profile folder:
  13. C:\Users\%USERNAME%\Games\Age of Empires 2 DE\<your numbers>\resources\_common\xs
  14.  
  15. */
  16.  
  17. void squires(int player = 1) {
  18. int infantryClass = 6;
  19. int spear = 93;
  20. int militia = 74;
  21. int condotierro = 882;
  22. xsEffectAmount(cMulAttribute, spear, cMovementSpeed, 1.1, player);
  23. xsEffectAmount(cMulAttribute, militia, cMovementSpeed, 1.1, player);
  24. xsEffectAmount(cMulAttribute, condotierro, cMovementSpeed, 1.1, player);
  25. }
  26.  
  27. void plateMailArmor(int player = 1) {
  28. int spear = 93;
  29. int militia = 74;
  30. int huskarl_c = 41;
  31. int huskarl_b = 759;
  32. int condotierro = 882;
  33.  
  34. int spear_melee_armor = 1024 + 3;
  35. int militia_melee_armor = 1024 + 4;
  36. int huskarl_melee_armor = 1024 + 3;
  37. int condotierro_melee_armor = 1024 + 4;
  38. xsEffectAmount(cSetAttribute, spear, cArmor, spear_melee_armor, player);
  39. xsEffectAmount(cSetAttribute, militia, cArmor, militia_melee_armor, player);
  40. xsEffectAmount(cSetAttribute, huskarl_c, cArmor, huskarl_melee_armor, player);
  41. xsEffectAmount(cSetAttribute, huskarl_b, cArmor, huskarl_melee_armor, player);
  42. xsEffectAmount(cSetAttribute, condotierro, cArmor, condotierro_melee_armor, player);
  43.  
  44. int spear_piercearmor = 768 + 4;
  45. int militia_piercearmor = 768 + 5;
  46. int huskarl_piercearmor = 768 + 12;
  47. int condotierro_piercearmor = 768 + 4;
  48. xsEffectAmount(cSetAttribute, spear, cArmor, spear_piercearmor, player);
  49. xsEffectAmount(cSetAttribute, militia, cArmor, militia_piercearmor, player);
  50. xsEffectAmount(cSetAttribute, huskarl_c, cArmor, huskarl_piercearmor, player);
  51. xsEffectAmount(cSetAttribute, huskarl_b, cArmor, huskarl_piercearmor, player);
  52. xsEffectAmount(cSetAttribute, condotierro, cArmor, condotierro_piercearmor, player);
  53. }
  54.  
  55. void upgradeSiegeRam(int player = 1) {
  56. // xsChatData("TEST: Enable Siege Ram for player %d", player);
  57. // fakebram = 35;
  58. int realbram = 1258;
  59. int siegeram = 548;
  60. xsEffectAmount(cUpgradeUnit, realbram, siegeram, 0, player);
  61. return;
  62. }
  63.  
  64. void upgradeHalberdier(int player = 1) {
  65. // xsChatData("TEST: Enable HALB for player %d", player);
  66. int spear = 93;
  67. int halb = 359;
  68. xsEffectAmount(cUpgradeUnit, spear, halb, 0, player);
  69. return;
  70. }
  71.  
  72. void researchTreadmillCrane(int player = 1) {
  73. // xsChatData("Enable TreadmillCrane for player %d", player);
  74. xsEffectAmount(cMulAttribute, 118, 13, 1.2, player);
  75. xsEffectAmount(cMulAttribute, 212, 13, 1.2, player);
  76. return;
  77. }
  78.  
  79. void researchBombardCannon(int player = 1) {
  80. // xsChatData("Enable Bombard Cannon for player %d", player);
  81. xsEffectAmount(cEnableObject, 36, cAttributeEnable, 0, player);
  82. return;
  83. }
  84.  
  85. void byzantineBloodlines(int player = 1) {
  86. int knt = 38;
  87. int cataphract = 40;
  88. int scout = 448;
  89. int camel = 329;
  90. int horsearch = 39;
  91. xsEffectAmount(cSetAttribute, knt, cHitpoints, 180, player);
  92. xsEffectAmount(cSetAttribute, cataphract, cHitpoints, 170, player);
  93. xsEffectAmount(cSetAttribute, scout, cHitpoints, 95, player);
  94. xsEffectAmount(cSetAttribute, camel, cHitpoints, 140, player);
  95. xsEffectAmount(cSetAttribute, horsearch, cHitpoints, 80, player);
  96. }
  97.  
  98. void thumbRing(int player = 1) {
  99. int archerClass = 0;
  100. int cavArcherClass = 36;
  101. int archer = 4;
  102. int cavarcher = 39;
  103. int heavycavalryarcher = 474;
  104. // WARNING: cav archer not tested
  105. xsEffectAmount(cSetAttribute, archerClass, cAccuracyPercent, 100, player);
  106. xsEffectAmount(cSetAttribute, cavArcherClass, cAccuracyPercent, 100, player);
  107. xsEffectAmount(cMulAttribute, archer, cAttackReloadTime, 0.85, player);
  108. xsEffectAmount(cMulAttribute, cavarcher, cAttackReloadTime, 0.9, player);
  109.  
  110. }
  111.  
  112. void main() {
  113. int p = 0;
  114. int max = xsGetNumPlayers();
  115. while(p < max) {
  116. p++;
  117. int c = xsGetPlayerCivilization(p);
  118. switch(c) {
  119. case cBritons : {
  120. xsChatData("Britons got Treadmill");
  121. researchTreadmillCrane(p);
  122. }
  123. case cGoths : {
  124. xsChatData("Goths got last armor, siege ram");
  125. plateMailArmor(p);
  126. upgradeSiegeRam(p);
  127. }
  128. case cByzantines : {
  129. xsChatData("Byzantines got Treadmill,Bloodlines");
  130. researchTreadmillCrane(p);
  131. byzantineBloodlines(p);
  132. }
  133. case cVikings : {
  134. xsChatData("Vikings got Thumb Ring");
  135. thumbRing(p);
  136. }
  137. case cItalians : {
  138. xsChatData("Italians got Halb");
  139. upgradeHalberdier(p);
  140. }
  141. case cPortuguese : {
  142. xsChatData("Portuguese got Siege Ram,Squires");
  143. upgradeSiegeRam(p);
  144. squires(p);
  145. }
  146. case cEthiopians : {
  147. xsChatData("Ethiopians got Treadmill");
  148. researchTreadmillCrane(p);
  149. }
  150. case cKhmer : {
  151. xsChatData("Khmer got Bombard cannon");
  152. researchBombardCannon(p);
  153. }
  154. case cMalay : {
  155. xsChatData("Malay got Treadmill,Siege Ram");
  156. researchTreadmillCrane(p);
  157. upgradeSiegeRam(p);
  158. }
  159. }
  160. }
  161. }
  162.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement