V-ItemClass.asm
上传用户:santakups8
上传日期:2021-03-23
资源大小:544k
文件大小:9k
源码类别:

模拟服务器

开发平台:

Asm

  1. ;EasyCodeName=Module1,1
  2. ;-----------------------------------------------------------------------------------
  3. ;    VeMU
  4. ;    Its a package that allows the user to set his own server of the game
  5. ;    "MuOnline", this is not an emulator since i am not "emulating"
  6. ;    what the actual games does, i am "creating" a method for set a Server
  7. ;    of this Game.
  8. ;
  9. ;    Copyright (C) 2010  FelipeYa馿z
  10. ;
  11. ;    This program is free software: you can redistribute it and/or modify
  12. ;    it under the terms of the GNU General Public License as published by
  13. ;    the Free Software Foundation, either version 3 of the License, or
  14. ;    (at your option) any later version.
  15. ;
  16. ;    This program is distributed in the hope that it will be useful,
  17. ;    but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. ;    GNU General Public License for more details.
  20. ;
  21. ;    You should have received a copy of the GNU General Public License
  22. ;    along with this program.  If not, see http://www.gnu.org/licenses/.
  23. ;-----------------------------------------------------------------------------------
  24. ;-----------------------------------------------------------------------------------
  25. ;                        -----------------
  26. ;                             Coded     /
  27. ;                              By      /
  28. ;                           -={FeN$x)=-
  29. ;                         /  Felipe Y.  
  30. ;                        /               
  31. ;                        -----------------
  32. ; Programming Lang: ASM
  33. ; Country: Chile
  34. ;              My respect for all those who lost their lifes
  35. ;              In the earthquake of my country...
  36. ;              Let god take their spirits home...
  37. ;-----------------------------------------------------------------------------------
  38. ;////////////////////////////////////////////////////////////////////////////////////
  39. ;                      VALKYRIE PROJECT
  40. ;                        ITEM CLASS !
  41. ;////////////////////////////////////////////////////////////////////////////////////
  42. V_CItem_FillStruct Proto :Dword, :Dword, :Dword, :Dword, :Dword, :Dword, :Dword, :Dword
  43. V_CItem_RetnpStruct Proto :Dword, :Dword
  44. V_CItem_GetRealItemID Proto :Dword, :Dword
  45. V_CItem_GetItemLevel Proto :Dword, :Dword
  46. V_CItem_GetItemDurability Proto :Dword, :Dword
  47. V_CItem_IsItemValid Proto :Dword, :Dword
  48. V_CItem_GetSize Proto :Dword, :Dword
  49. ;-----------------------------------------------------------------
  50. ; Structure that contain most of the item options
  51. ;-----------------------------------------------------------------
  52. ItemStruct Struct
  53. Item_Number Word ?
  54. Item_Serial Byte ?
  55. Item_Width Byte ?
  56. Item_Height Byte ?
  57. Item_Type Byte ?
  58. Item_Index Byte ?
  59. Item_Level Byte ?
  60. Item_Slot Byte ?
  61. Item_Class Byte ?
  62. Item_TwoHand Byte ?
  63. Item_AttackSpeed Byte ?
  64. Item_WalkSpeed Byte ?
  65. Item_DamageMin Word ?
  66. Item_DamageMax Word ?
  67. Item_SuccesfulBlocking Byte ?
  68. Item_Defense Byte ?
  69. Item_MagicDefense Byte ?
  70. Item_Speed Byte ?
  71. Item_DamageMinOrigin Word ?
  72. Item_DefenseOrigin Word ?
  73. Item_MagicPower Word ?
  74. Item_Durability Real4 ?
  75. Item_DurabilitySmall Dword ?
  76. Item_BaseDurability Real4 ?
  77. Item_SpecialNum Byte 5 Dup(?)
  78. Item_Special Byte 8 Dup(?)
  79. Item_SpecialValue Byte 8 Dup(?)
  80. Item_ReqStr Word ?
  81. Item_ReqDex Word ?
  82. Item_ReqEner Word ?
  83. Item_ReqVit Word ?
  84. Item_ReqLevel Word ?
  85. Item_ReqLeaderShip Word ?
  86. Item_LeaderShip Word ?
  87. Item_ReqClass Byte 6 Dup(?) ;Summoner support
  88. Item_Resistance Byte 7 Dup(?)
  89. Item_Value DWord ? ;Dont know what for but is used
  90. Item_SellMoney DWord ?
  91. Item_BuyMoney DWord ?
  92. Item_PShopValue DWord ?
  93. Item_Exist Dword ?
  94. Item_OldSellMoney DWord ?
  95. Item_OldBuyMoney DWord ?
  96. Item_Option1 Byte ?
  97. Item_Option2 Byte ?
  98. Item_Option3 Byte ?
  99. Item_NewOption Byte ?
  100. Item_DurabilityState Real4 4 Dup(?) ;Last 4 bytes seems to be unused for now
  101. Item_CurrentDurabilityState Real4 ?
  102. Item_SkillChange Byte ?
  103. Item_QuestItem Byte ?
  104. Item_SetOption Byte ?
  105. Item_SetAddStat Byte ?
  106. Item_IsValidItem Byte ?
  107. Item_SkillResistance Byte 7 Dup(?)
  108. Item_IsLoadPetItemInfo DWord ?
  109. Item_PetItemLevel DWord ?
  110. Item_PetItemExp DWord ?
  111. Item_JewelOfHarmonyOption Byte ?
  112. Item_JewelOfHarmonyStr Word ?
  113. Item_JewelOfHarmonyDex Word ?
  114. Item_Option380 Byte ?
  115. ItemStruct EndS
  116. ;////////////////////////////////////////////////////////////////////////////////////
  117. ;                          ITEM SCRIPT CLASS
  118. ;               From here below, its the ItemScript Class
  119. ;
  120. ;////////////////////////////////////////////////////////////////////////////////////
  121. ;;---------------------------------------
  122. ;;The limit of index for each type
  123. ;;Example Sword Type have 31 index limit
  124. ;;---------------------------------------
  125. ;        REMOVED FROM NOW
  126. ;ITEM_INDEX_FOR_TYPES Struct
  127. ; vSword       Byte 31 ;Max limit of index for this type of item
  128. ; vAxes        Byte 8  ;Max limit of index for this type of item
  129. ; vMaces       Byte 15 ;Max limit of index for this type of item
  130. ; vSpears      Byte 10 ;Max limit of index for this type of item
  131. ; vBows        Byte 22 ;Max limit of index for this type of item
  132. ; vStaffs      Byte 22 ;Max limit of index for this type of item
  133. ; vShields     Byte 16 ;Max limit of index for this type of item
  134. ; vHelms       Byte 44 ;Max limit of index for this type of item
  135. ; vArmors      Byte 44 ;Max limit of index for this type of item
  136. ; vPants       Byte 44 ;Max limit of index for this type of item
  137. ; vGloves      Byte 44 ;Max limit of index for this type of item
  138. ; vBoots       Byte 44 ;Max limit of index for this type of item
  139. ; vAccessories Byte 43 ;Max limit of index for this type of item
  140. ; vMiscellaneous Byte 65 ;Max limit of index for this type of item
  141. ; vSpecials      Byte 98 ;Max limit of index for this type of item
  142. ; vScrolls       Byte 7 ;Max limit of index for this type of item
  143. ;ITEM_INDEX_FOR_TYPES EndS
  144. ;----------------------------------
  145. ; DONT EDIT THIS ORDER
  146. ;----------------------------------
  147. ITEM_UNIVERSAL_VARIABLES struct
  148.  ItemSlot Dword ?
  149.  vWidth Byte ?
  150.  vHeight Byte ?
  151.  Serial Byte ?
  152.  SkillType Dword ?
  153.  OptionFlag Byte ?
  154.  DropFlag Byte ?
  155. ITEM_UNIVERSAL_VARIABLES EndS
  156. ;----------------------------------
  157. ; DONT EDIT THIS ORDER
  158. ;----------------------------------
  159. ITEM_DAMAGE_VARIABLES Struct
  160.  DamageMin Byte ?
  161.  DamageMax Byte ?
  162.  AttackSpeed Byte ?
  163.  MagicPower Dword ?
  164. ITEM_DAMAGE_VARIABLES EndS
  165. ;----------------------------------
  166. ; DONT EDIT THIS ORDER
  167. ;----------------------------------
  168. ITEM_REQUIREMENTS_VARIABLES Struct
  169.  ReqLevel Word ?
  170.  ReqStrenght Word ?
  171.  ReqDex Word ?
  172.  ReqEnergy Word ?
  173.  ReqVitality Word ?
  174.  ReqLeaderShip Dword ?
  175. ITEM_REQUIREMENTS_VARIABLES EndS
  176. ;----------------------------------
  177. ; DONT EDIT THIS ORDER
  178. ;----------------------------------
  179. ITEM_DEFENSE_VARIABLES Struct
  180.  Resistance Byte 7 Dup(?)
  181.  SuccesfulBlocking Byte ?
  182.  Defense Byte ?
  183.  MagicDefense Byte ?
  184.  Durability Byte ?
  185.  DefenceDurability Byte ?
  186.  MagicDurability Byte ?
  187.  ResistanceType Byte ?
  188. ITEM_DEFENSE_VARIABLES EndS
  189. ;----------------------------------
  190. ; DONT EDIT THIS ORDER
  191. ;----------------------------------
  192. ITEM_SPECIAL_VARIABLES Struct
  193.  Level Byte ?
  194.  SetAttribute Byte ?
  195.  Speed Byte ?
  196.  WalkSpeed Byte ?
  197.  TwoHand Byte ?
  198.  ItemValue Word ? ;Dont know what for
  199.  BuyMoney Dword ?
  200.  SellMoney Dword ?
  201.  RepairMoney Real4 ?
  202.  AllRepairMoney Real4 ?
  203.  ;QuestItem Byte ?
  204. ITEM_SPECIAL_VARIABLES EndS
  205. ;----------------------------------
  206. ; DONT EDIT THIS ORDER
  207. ;----------------------------------
  208. ITEM_CLASS_VARIABLES Struct
  209.   ReqClass Byte 6 Dup(?) ;Summoner support
  210. ITEM_CLASS_VARIABLES EndS
  211. ;----------------------------------------
  212. ; ITEM_ATTRIBUTE STRUCT !
  213. ; Main struct for V_CItem_LoadItemScript
  214. ;----------------------------------------
  215. ITEM_ATTRIBUTE_STRUCT struct
  216.  ItemType Byte ?
  217.  ItemIndex Byte ?
  218.  ItemName CHAR 32 Dup(?)
  219.  UniversalVars   ITEM_UNIVERSAL_VARIABLES <?>
  220.  SpecialVars     ITEM_SPECIAL_VARIABLES <?>
  221.  DamageVars      ITEM_DAMAGE_VARIABLES <?>
  222.  DefenseVars     ITEM_DEFENSE_VARIABLES <?>
  223.  ReqVars         ITEM_REQUIREMENTS_VARIABLES  <?>
  224.  ClassVars       ITEM_CLASS_VARIABLES <?>
  225. ITEM_ATTRIBUTE_STRUCT EndS
  226. ;////////////////////////////////////////////////////////////////////////////////////
  227. ;                             ITEM DATA DEFINITIONS !
  228. ;               From here below, its constants and data definitions
  229. ;                         For all kind of Item procedures
  230. ;////////////////////////////////////////////////////////////////////////////////////
  231. .Const
  232. TRADEINV_SIZE  equ 32
  233. WAREHOUSE_SIZE equ 120
  234. INVENTORY_SIZE equ 108
  235. MAX_ITEM_TYPES equ 20
  236. MAX_ITEM_INDEX equ 200
  237. MAX_ITEMS equ MAX_ITEM_TYPES * MAX_ITEM_INDEX
  238. .Data?
  239. pObjItemAttributes DB MAX_ITEMS * SizeOf ITEM_ATTRIBUTE_STRUCT Dup(?) ;This is how WZ should do it
  240. pTempTradeInv  DB (MAX_OBJ_ID - START_OBJ_PLAYERID) * SizeOf ItemStruct * TRADEINV_SIZE Dup(?)
  241. pTempWareHouse DB (MAX_OBJ_ID - START_OBJ_PLAYERID) * SizeOf ItemStruct * WAREHOUSE_SIZE Dup(?)
  242. ;pTempInventory DB (MAX_OBJ_ID - START_OBJ_PLAYERID) * SizeOf ItemStruct * INVENTORY_SIZE Dup(?) ;REMOVE IT HAVE NO REAL USAGE
  243. pInventory1 DB (MAX_OBJ_ID - START_OBJ_PLAYERID) * SizeOf ItemStruct * INVENTORY_SIZE Dup(?)
  244. pInventory2 DB (MAX_OBJ_ID - START_OBJ_PLAYERID) * SizeOf ItemStruct * INVENTORY_SIZE Dup(?)
  245. .Data
  246. TotalItemsLoaded DD ?