| 
									
										
										
										
											2024-09-16 17:05:26 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:ItemClass.nut | 
					
						
							|  |  |  | 路径:BaseClass/ItemClass/ItemClass.nut | 
					
						
							|  |  |  | 创建日期:2024-04-18	15:10 | 
					
						
							|  |  |  | 文件用途:Item类 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | class Item extends Base_C_Object { | 
					
						
							|  |  |  |     Attribute = null; | 
					
						
							|  |  |  |     IsEmpty = false; | 
					
						
							|  |  |  |     constructor(CObject) { | 
					
						
							|  |  |  |         base.constructor(CObject); | 
					
						
							|  |  |  |         Attribute = Sq_Point2Blob(CObject, 62); | 
					
						
							|  |  |  |         if (GetIndex() == 0) IsEmpty = true; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function Output() { | 
					
						
							|  |  |  |         local Str = "["; | 
					
						
							|  |  |  |         foreach(Value in Attribute) { | 
					
						
							|  |  |  |             Str = format("%s%02X", Str, Value); | 
					
						
							|  |  |  |             Str += ","; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         Str += "]"; | 
					
						
							|  |  |  |         print(Str); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //获取类型 | 
					
						
							|  |  |  |     function GetType() { | 
					
						
							|  |  |  |         Attribute.seek(1); | 
					
						
							|  |  |  |         local Type = Attribute.readn('c'); | 
					
						
							|  |  |  |         switch (Type) { | 
					
						
							|  |  |  |             case 1: | 
					
						
							|  |  |  |                 return "装备"; | 
					
						
							|  |  |  |             case 2: | 
					
						
							|  |  |  |                 return "消耗品"; | 
					
						
							|  |  |  |             case 3: | 
					
						
							|  |  |  |                 return "材料"; | 
					
						
							|  |  |  |             case 4: | 
					
						
							|  |  |  |                 return "任务材料"; | 
					
						
							|  |  |  |             case 10: | 
					
						
							|  |  |  |                 return "副职业材料"; | 
					
						
							|  |  |  |             default: | 
					
						
							|  |  |  |                 return "未知类型"; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //获取编号 | 
					
						
							|  |  |  |     function GetIndex() { | 
					
						
							|  |  |  |         Attribute.seek(2); | 
					
						
							|  |  |  |         return Attribute.readn('i'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     //设置编号 | 
					
						
							|  |  |  |     function SetIndex(Index) { | 
					
						
							|  |  |  |         Attribute.seek(2); | 
					
						
							|  |  |  |         Attribute.writen(Index, 'i'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //获取强化等级 | 
					
						
							|  |  |  |     function GetUpgrade() { | 
					
						
							|  |  |  |         Attribute.seek(6); | 
					
						
							|  |  |  |         return Attribute.readn('c'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     //设置强化等级 | 
					
						
							|  |  |  |     function SetUpgrade(Level) { | 
					
						
							|  |  |  |         Attribute.seek(6); | 
					
						
							|  |  |  |         Attribute.writen(Level, 'c'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //获取 品级 或 数量 如果是装备就是品级 如果是其他就是数量 | 
					
						
							|  |  |  |     function GetAdd_Info() { | 
					
						
							|  |  |  |         Attribute.seek(7); | 
					
						
							|  |  |  |         return Attribute.readn('i'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     //设置 品级 或 数量 如果是装备就是品级 如果是其他就是数量 | 
					
						
							|  |  |  |     function SetAdd_Info(Value) { | 
					
						
							|  |  |  |         Attribute.seek(7); | 
					
						
							|  |  |  |         Attribute.writen(Value, 'i'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //获取耐久度 | 
					
						
							|  |  |  |     function GetDurable() { | 
					
						
							|  |  |  |         Attribute.seek(11); | 
					
						
							|  |  |  |         return Attribute.readn('c'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     //设置耐久度 | 
					
						
							|  |  |  |     function SetDurable(Value) { | 
					
						
							|  |  |  |         Attribute.seek(11); | 
					
						
							|  |  |  |         Attribute.writen(Value, 'c'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //获取增幅属性 | 
					
						
							|  |  |  |     function GetAmplification() { | 
					
						
							|  |  |  |         Attribute.seek(17); | 
					
						
							|  |  |  |         return Attribute.readn('w'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     //设置增幅属性 | 
					
						
							|  |  |  |     function SetAmplification(Value) { | 
					
						
							|  |  |  |         Attribute.seek(17); | 
					
						
							|  |  |  |         Attribute.writen(Value, 'w'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //获取锻造属性 | 
					
						
							|  |  |  |     function GetForging() { | 
					
						
							|  |  |  |         Attribute.seek(51); | 
					
						
							|  |  |  |         return Attribute.readn('c'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     //设置锻造属性 | 
					
						
							|  |  |  |     function SetForging(Value) { | 
					
						
							|  |  |  |         Attribute.seek(51); | 
					
						
							|  |  |  |         Attribute.writen(Value, 'c'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //获取附魔属性 | 
					
						
							|  |  |  |     function GetEnchanting() { | 
					
						
							|  |  |  |         Attribute.seek(13); | 
					
						
							|  |  |  |         return Attribute.readn('i'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     //设置附魔属性 | 
					
						
							|  |  |  |     function SetEnchanting(Value) { | 
					
						
							|  |  |  |         Attribute.seek(13); | 
					
						
							|  |  |  |         Attribute.writen(Value, 'i'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //刷写装备数据 | 
					
						
							|  |  |  |     function Flush() { | 
					
						
							|  |  |  |         Sq_WriteBlobToAddress(C_Object, Attribute); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-11 23:56:27 +08:00
										 |  |  |     //检查是否为空 | 
					
						
							|  |  |  |     // function IsEmpty() { | 
					
						
							|  |  |  |     //     return Sq_CallFunc(S_Ptr("0x811ED66"), "int", ["pointer"], this.C_Object); | 
					
						
							|  |  |  |     // } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-16 17:05:26 +08:00
										 |  |  |     //删除道具 | 
					
						
							|  |  |  |     function Delete() { | 
					
						
							|  |  |  |         Sq_Inven_RemoveItem(C_Object); | 
					
						
							|  |  |  |         this = null; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |