Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. Vào includes của pawno
  2. Đường dẫn: \pawno\include\YSI\y_als
  3. Tìm cái impl.inc
  4. Bật lên xong tìm đến dòng
  5. #define ALS_DO_PlayerTakeDamage<%0> %0<PlayerTakeDamage,iifi>(more:playerid,more:issuerid,Float:amount,end:weaponid)
  6. thay thành
  7. #define ALS_DO_PlayerTakeDamage<%0> %0<PlayerTakeDamage,iifii>(more:playerid,more:issuerid,Float:amount,more:weaponid,end:bodypart)
  8.  
  9. Tìm tiếp dòng này: #define ALS_DO_PlayerGiveDamage<%0> %0<PlayerGiveDamage,iifi>(more:playerid,more:damagedid,Float:amount,end:weaponid)
  10. Thay nó thành:
  11. #define ALS_DO_PlayerGiveDamage<%0> %0<PlayerGiveDamage,iifii>(more:playerid,more:damagedid,Float:amount,more:weaponid,end:bodypart)
  12.  
  13. Sửa xong thoát ra, tìm cũng giống vậy nhưng đường dẫn khác
  14. \pawno\include\YSI\y_hooks
  15. Bật lên rồi tìm đến dòng này:
  16. public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
  17. thay nó thành
  18. public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
  19.  
  20. Tìm tiếp P:2("Hooks_OnPlayerTakeDamage called: %d, %d, %f, %d", playerid, issuerid, Float:amount, weaponid);
  21. Thay thành P:2("Hooks_OnPlayerTakeDamage called: %d, %d, %f, %d, %d", playerid, issuerid, Float:amount, weaponid, bodypart);
  22.  
  23. Rồi tìm đến đoạn code này:
  24. while (start++ != end)
  25. {
  26. #emit PUSH.S weaponid
  27. #emit PUSH.S amount
  28. #emit PUSH.S issuerid
  29. #emit PUSH.S playerid
  30. #emit PUSH.C 16
  31. #emit CONST.alt YSI_g_sCallbackAddresses
  32. #emit LOAD.S.pri start
  33. //#emit INC.pri
  34. //#emit STOR.S.pri start
  35. #emit LIDX
  36. #emit MOVE.alt
  37. #emit LCTRL 6
  38. #emit ADD.C 24
  39. #emit PUSH.pri
  40. #emit MOVE.pri
  41. #emit SCTRL 6
  42. #emit MOVE.alt
  43. #emit CONST.pri 0xFFFFFFFE
  44. #emit AND
  45. #emit PUSH.pri
  46. #emit LOAD.S.pri ret
  47. #emit AND
  48. #emit POP.alt
  49. #emit OR
  50. #emit STOR.S.pri ret
  51. if (ret < 0) return ret + 1;
  52. }
  53.  
  54. thay nó thành while (start++ != end)
  55. {
  56. #emit PUSH.S bodypart
  57. #emit PUSH.S weaponid
  58. #emit PUSH.S amount
  59. #emit PUSH.S issuerid
  60. #emit PUSH.S playerid
  61. #emit PUSH.C 16
  62. #emit CONST.alt YSI_g_sCallbackAddresses
  63. #emit LOAD.S.pri start
  64. //#emit INC.pri
  65. //#emit STOR.S.pri start
  66. #emit LIDX
  67. #emit MOVE.alt
  68. #emit LCTRL 6
  69. #emit ADD.C 24
  70. #emit PUSH.pri
  71. #emit MOVE.pri
  72. #emit SCTRL 6
  73. #emit MOVE.alt
  74. #emit CONST.pri 0xFFFFFFFE
  75. #emit AND
  76. #emit PUSH.pri
  77. #emit LOAD.S.pri ret
  78. #emit AND
  79. #emit POP.alt
  80. #emit OR
  81. #emit STOR.S.pri ret
  82. if (ret < 0) return ret + 1;
  83. }
  84.  
  85. Tìm tiếp: public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
  86. Thay thành: public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
  87.  
  88. Tìm tiếp P:2("Hooks_OnPlayerGiveDamage called: %d, %d, %f, %d", playerid, damagedid, Float:amount, weaponid);
  89. Thay thành: P:2("Hooks_OnPlayerGiveDamage called: %d, %d, %f, %d, %d", playerid, damagedid, Float:amount, weaponid, bodypart);
  90.  
  91. Rồi tìm tiếp đoạn code này:
  92. while (start++ != end)
  93. {
  94. #emit PUSH.S weaponid
  95. #emit PUSH.S amount
  96. #emit PUSH.S damagedid
  97. #emit PUSH.S playerid
  98. #emit PUSH.C 16
  99. #emit CONST.alt YSI_g_sCallbackAddresses
  100. #emit LOAD.S.pri start
  101. //#emit INC.pri
  102. //#emit STOR.S.pri start
  103. #emit LIDX
  104. #emit MOVE.alt
  105. #emit LCTRL 6
  106. #emit ADD.C 24
  107. #emit PUSH.pri
  108. #emit MOVE.pri
  109. #emit SCTRL 6
  110. #emit MOVE.alt
  111. #emit CONST.pri 0xFFFFFFFE
  112. #emit AND
  113. #emit PUSH.pri
  114. #emit LOAD.S.pri ret
  115. #emit AND
  116. #emit POP.alt
  117. #emit OR
  118. #emit STOR.S.pri ret
  119. if (ret < 0) return ret + 1;
  120. }
  121. Thay nó thành
  122. while (start++ != end)
  123. {
  124. #emit PUSH.S bodypart
  125. #emit PUSH.S weaponid
  126. #emit PUSH.S amount
  127. #emit PUSH.S damagedid
  128. #emit PUSH.S playerid
  129. #emit PUSH.C 16
  130. #emit CONST.alt YSI_g_sCallbackAddresses
  131. #emit LOAD.S.pri start
  132. //#emit INC.pri
  133. //#emit STOR.S.pri start
  134. #emit LIDX
  135. #emit MOVE.alt
  136. #emit LCTRL 6
  137. #emit ADD.C 24
  138. #emit PUSH.pri
  139. #emit MOVE.pri
  140. #emit SCTRL 6
  141. #emit MOVE.alt
  142. #emit CONST.pri 0xFFFFFFFE
  143. #emit AND
  144. #emit PUSH.pri
  145. #emit LOAD.S.pri ret
  146. #emit AND
  147. #emit POP.alt
  148. #emit OR
  149. #emit STOR.S.pri ret
  150. if (ret < 0) return ret + 1;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement