hell_house.lua 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. hell_house_a = {
  2. on_start = function(self)
  3. 0x0000 0x12 PushAddress(0x0000)
  4. 0x0003 0x02 LoadValue(0x2060)
  5. 0x0006 0x01 LoadValue(0x4060)
  6. 0x0009 0x80 FilterValueByMask()
  7. 0x000a 0x83 CountActiveBits()
  8. 0x000b 0x02 LoadValue(0x2050)
  9. 0x000e 0x01 LoadValue(0x4060)
  10. 0x0011 0x80 FilterValueByMask()
  11. 0x0012 0x40 CompareEqual()
  12. 0x0013 0x90 StoreValue()
  13. 0x0014 0x12 PushAddress(0x0000)
  14. 0x0017 0x02 LoadValue(0x0000)
  15. 0x001a 0x02 LoadValue(0x4120)
  16. 0x001d 0x80 FilterValueByMask()
  17. 0x001e 0x60 PushImmediate(0x2d)
  18. 0x0020 0x40 CompareEqual()
  19. 0x0021 0x90 StoreValue()
  20. 0x0022 0x73 FinishScript()
  21. return 0;
  22. end;
  23. on_action = function(self)
  24. 0x0000 SetRandomOpponentToAttack();
  25. 0x0008 JumpIfRandomNot(1/0x03)(0x0019);
  26. 0x0010 0x60 PushImmediate(0x20)
  27. 0x0012 0x61 PushImmediate(0x013c)
  28. 0x0015 0x92 RunCommand()
  29. 0x0016 0x72 JumpTo(0x001f)
  30. 0x0019 0x60 PushImmediate(0x20)
  31. 0x001b 0x61 PushImmediate(0x013d)
  32. 0x001e 0x92 RunCommand()
  33. 0x001f 0x73 FinishScript()
  34. return 0;
  35. end;
  36. on_counter = function(self)
  37. 0x0000 0x02 LoadValue(0x2060)
  38. 0x0003 0x03 LoadValue(0x4160)
  39. 0x0006 0x80 FilterValueByMask()
  40. 0x0007 0x02 LoadValue(0x2060)
  41. 0x000a 0x03 LoadValue(0x4180)
  42. 0x000d 0x80 FilterValueByMask()
  43. 0x000e 0x60 PushImmediate(0x04)
  44. 0x0010 0x33 MathDiv()
  45. 0x0011 0x60 PushImmediate(0x03)
  46. 0x0013 0x32 MathMul()
  47. 0x0014 0x43 CompareLessEqual()
  48. 0x0015 0x70 JumpIfFalse(0x0098)
  49. 0x0018 JumpIfRandomNot(1/0x02)(0x0098);
  50. set_all_enemies_as_target();
  51. battle:run_command(Battle.MONSTER_ACTION, 318);
  52. [800f83e0 + self_id * 0x68 + 0x4 + b(0)] = bit(0);
  53. [800f83e0 + self_id * 0x68 + 0x4 + b(3)] = bit(0);
  54. [800f83e0 + hell_house_b_id * 0x68 + 0x4 + b(0)] = bit(1);
  55. [800f83e0 + hell_house_b_id * 0x68 + 0x4 + b(2)] = bit(1);
  56. [800f83e0 + hell_house_b_id * 0x68 + 0x4 + b(3)] = bit(1);
  57. [800f83e0 + hell_house_b_id * 0x68 + 0x4 + b(4)] = bit(1);
  58. 0x0069 0x02 LoadValue(0x0000)
  59. 0x006c 0x02 LoadValue(0x2060)
  60. 0x006f 0x94 unknown()
  61. [800f83e0 + self_id * 0x68 + 0x4 + b(0)] = bit(0);
  62. [800f83e0 + self_id * 0x68 + 0x4 + b(2)] = bit(0);
  63. [800f83e0 + self_id * 0x68 + 0x4 + b(3)] = bit(0);
  64. [800f83e0 + self_id * 0x68 + 0x4 + b(4)] = bit(0);
  65. end;
  66. return 0;
  67. end;
  68. on_death = function(self)
  69. 0x0000 0x12 PushAddress(0x0000)
  70. 0x0003 0x10 PushAddress(0x4020)
  71. 0x0006 0x80 FilterValueByMask()
  72. 0x0007 0x60 PushImmediate(0x00)
  73. 0x0009 0x90 StoreValue()
  74. 0x000a 0x12 PushAddress(0x0000)
  75. 0x000d 0x10 PushAddress(0x4023)
  76. 0x0010 0x80 FilterValueByMask()
  77. 0x0011 0x60 PushImmediate(0x00)
  78. 0x0013 0x90 StoreValue()
  79. 0x0014 0x12 PushAddress(0x0000)
  80. 0x0017 0x10 PushAddress(0x4022)
  81. 0x001a 0x80 FilterValueByMask()
  82. 0x001b 0x60 PushImmediate(0x00)
  83. 0x001d 0x90 StoreValue()
  84. 0x001e 0x12 PushAddress(0x0000)
  85. 0x0021 0x10 PushAddress(0x4024)
  86. 0x0024 0x80 FilterValueByMask()
  87. 0x0025 0x60 PushImmediate(0x00)
  88. 0x0027 0x90 StoreValue()
  89. 0x0028 0x73 FinishScript()
  90. return 0;
  91. end;
  92. };