毁梦装备继承
This commit is contained in:
parent
58c11ab741
commit
5fca6f4dbb
|
|
@ -389,6 +389,19 @@
|
|||
},
|
||||
"imgPath": "WorldBoss"
|
||||
},
|
||||
"毁梦装备继承": {
|
||||
"Private": true,
|
||||
"Enabled": false,
|
||||
"Script": [
|
||||
"Project/SpecialCustomization/HM_Inherit.nut"
|
||||
],
|
||||
"info": {
|
||||
"ProjectAuthor": "官方 (期限:月)",
|
||||
"ProjectVersion": "1.0.0",
|
||||
"ProjectDescribe": "毁梦装备继承",
|
||||
"ImageMini": "http://49.234.27.222:8651/dps/download2/Image:chengjiu.png"
|
||||
}
|
||||
},
|
||||
"仓库锁": {
|
||||
"Private": true,
|
||||
"Enabled": false,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,232 @@
|
|||
/*
|
||||
文件名:HM_Inherit.nut
|
||||
路径:Project/SpecialCustomization/HM_Inherit.nut
|
||||
创建日期:2026-02-02 19:24
|
||||
文件用途:毁梦继承
|
||||
*/
|
||||
|
||||
|
||||
class HM_InheritC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
// NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
|
||||
Img = Rindro_Image("interface2/ui/newitemtool/soulweapon.img");
|
||||
|
||||
//装备
|
||||
Item = null;
|
||||
Item2 = null;
|
||||
//装备槽位
|
||||
ItemSlot = null;
|
||||
//灵魂槽位
|
||||
ItemSlot2 = null;
|
||||
//注册的NPC列表
|
||||
NPC = null;
|
||||
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
RegNpc();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
|
||||
DiscardItemCallBackFunc.rawset("HM_InheritC", DiscardItem.bindenv(this));
|
||||
|
||||
//成功回包
|
||||
Pack_Control.rawset(21013002, function(Chunk) {
|
||||
//清空
|
||||
Item = null;
|
||||
Item2 = null;
|
||||
ItemSlot.RemoveItem();
|
||||
ItemSlot2.RemoveItem();
|
||||
}.bindenv(this));
|
||||
}
|
||||
|
||||
function RegisterWidget() {
|
||||
//关闭按钮
|
||||
local CloseButton = LenheartNewUI_BaseButton(274, 4, 11, 12, "interface/lenheartwindowcommon.img", 276);
|
||||
CloseButton.OnClick = function() {
|
||||
this.Visible = false;
|
||||
}.bindenv(this);
|
||||
Childrens.append(CloseButton);
|
||||
|
||||
//确认按钮
|
||||
local CrossoverButton = LenheartNewUI_ButtonText(109, 260, 15, "确认继承");
|
||||
CrossoverButton.DWidth = 18;
|
||||
CrossoverButton.Width = 74;
|
||||
CrossoverButton.SetTextOffset(-4, 1);
|
||||
CrossoverButton.OnClickEx = function(Btn) {
|
||||
if (!Btn.Visible) return;
|
||||
SendPackEx({
|
||||
op = 21013001,
|
||||
item = Item,
|
||||
item2 = Item2
|
||||
});
|
||||
}.bindenv(this);
|
||||
CrossoverButton.SetCallBackFunc(function(Btn) {
|
||||
if (ItemSlot.ItemObject && ItemSlot2.ItemObject) {
|
||||
Btn.State = 0;
|
||||
} else {
|
||||
Btn.State = 8;
|
||||
}
|
||||
}.bindenv(this));
|
||||
AddChild(CrossoverButton);
|
||||
|
||||
ItemSlot = LenheartNewUI_ItemSlot(66, 97);
|
||||
ItemSlot.SetRemoveCallBack(function(obj) {
|
||||
Item = null;
|
||||
}.bindenv(this));
|
||||
AddChild(ItemSlot);
|
||||
|
||||
ItemSlot2 = LenheartNewUI_ItemSlot(197, 97);
|
||||
ItemSlot2.SetRemoveCallBack(function(obj) {
|
||||
Item2 = null;
|
||||
}.bindenv(this));
|
||||
AddChild(ItemSlot2);
|
||||
}
|
||||
|
||||
//绘制主界面
|
||||
function DrawMain(obj) {
|
||||
//背景框
|
||||
DrawNineBox(X, Y, 292, 292, "interface/lenheartwindowcommon.img", 213);
|
||||
//标题
|
||||
DrawWindowTitle(293);
|
||||
//绘制标题名
|
||||
L_sq_DrawCode("武器装备继承", X + 110, Y + 5, sq_RGBA(230, 200, 155, 255), 0, 1);
|
||||
|
||||
Img.DrawPng(1, X + 8, Y + 32);
|
||||
Img.DrawPng(3, X + 8, Y + 32);
|
||||
|
||||
for (local i = 0; i< 5; i++) {
|
||||
Img.DrawPng(2, X + 31 + 51 * i, Y + 195);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
}
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y);
|
||||
}
|
||||
|
||||
function DiscardItem(ItemAddress) {
|
||||
local MousePos_X = IMouse.GetXPos();
|
||||
local MousePos_Y = IMouse.GetYPos();
|
||||
if (!sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X, Y, Width, Height)) return true;
|
||||
local SlotPos = 0;
|
||||
|
||||
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, ItemSlot.X, ItemSlot.Y, ItemSlot.Width, ItemSlot.Height)) {
|
||||
SlotPos = 1;
|
||||
} else if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, ItemSlot2.X, ItemSlot2.Y, ItemSlot2.Width, ItemSlot2.Height)) {
|
||||
SlotPos = 2;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
if (!Visible) return true;
|
||||
else {
|
||||
local ItemBuf = FindItemPosByForeachInven(ItemAddress, SlotPos);
|
||||
if (ItemBuf) {
|
||||
local ItemObject = Rindro_Item();
|
||||
ItemObject.LoadByAddress(ItemBuf.ItemAddress);
|
||||
if (SlotPos == 1) {
|
||||
ItemSlot.SetItem(ItemObject);
|
||||
Item = ItemBuf;
|
||||
} else if (SlotPos == 2) {
|
||||
ItemSlot2.SetItem(ItemObject);
|
||||
Item2 = ItemBuf;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//遍历背包查找Item
|
||||
function FindItemPosByForeachInven(FindAddress, SlotPos) {
|
||||
local Inven = L_sq_RA(0x1A5FB24);
|
||||
local InvenAdd = L_sq_RA(Inven + 56);
|
||||
InvenAdd += 36;
|
||||
//0是装备 2是任务材料
|
||||
local z = 0;
|
||||
for (local i = 0; i< 56; i++) {
|
||||
local ItemAdd = L_sq_RA(InvenAdd + ((i + (z * 56)) * 4));
|
||||
if (ItemAdd == FindAddress) {
|
||||
local NamePointer = L_sq_RA(FindAddress + 0x20);
|
||||
local rRarity = L_sq_RA(FindAddress + 0xF4);
|
||||
local rItemId = L_sq_RA(FindAddress + 0x1c);
|
||||
|
||||
return {
|
||||
Type = z,
|
||||
Pos = i,
|
||||
Vis = false,
|
||||
Count = MemoryTool.DecodeMemoryData(FindAddress + 0x1A4),
|
||||
ItemId = rItemId,
|
||||
ItemAddress = FindAddress,
|
||||
Name = NativePointer(L_sq_I2P(NamePointer)).readUnicodeString(),
|
||||
Rarity = rRarity,
|
||||
};
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function RegNpc() {
|
||||
local EachManager = Lenheart_Get_EachObj();
|
||||
EachManager.AddEachForNpc(2, function(SThis) {
|
||||
//关闭按钮
|
||||
local ApplyEngagementButton = LenheartNewUI_Each_BaseButton(0, 0, 100, 21, "interface2/popup_menu/popup_back.img", 3);
|
||||
ApplyEngagementButton.Icon = "interface2/popup_menu/popup_icon_cn.img";
|
||||
ApplyEngagementButton.IconIdx = 53;
|
||||
ApplyEngagementButton.Str = "装备继承";
|
||||
ApplyEngagementButton.Data = SThis.NPC_Index;
|
||||
ApplyEngagementButton.OnClick = function(Button) {
|
||||
|
||||
InitWindow();
|
||||
//打开背包
|
||||
L_sq_Open_ExWindow(0x1ADE090, 0, 0, 1);
|
||||
Button.Parent.CloseAllEach();
|
||||
Button.Parent.CloseWindow();
|
||||
ResetFocus();
|
||||
R_Utils.PlaySound("WINDOW_SHOW");
|
||||
}.bindenv(this);
|
||||
ApplyEngagementButton.SetCallBackFunc(function(Button) {})
|
||||
SThis.AddChild(ApplyEngagementButton);
|
||||
}.bindenv(this));
|
||||
}
|
||||
|
||||
function InitWindow() {
|
||||
Visible = true;
|
||||
//清空
|
||||
Item = null;
|
||||
Item2 = null;
|
||||
ItemSlot.RemoveItem();
|
||||
ItemSlot2.RemoveItem();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
L_Windows_List <- [];
|
||||
getroottable().rawdelete("LenheartPluginsInitFlag");
|
||||
getroottable().rawdelete("EventList_Obj")
|
||||
getroottable().rawdelete("HM_Inherit_Obj");
|
||||
getroottable().rawdelete("L_Each_Obj");
|
||||
|
||||
function Lenheart_HM_Inherit_Fun(obj) {
|
||||
local RootTab = getroottable();
|
||||
if (!RootTab.rawin("HM_Inherit_Obj")) {
|
||||
RootTab.rawset("HM_Inherit_Obj", true);
|
||||
LenheartNewUI_CreateWindow(HM_InheritC, "装备继承", ((getroottable().Rindro_Scr_Width - 700) / 2).tointeger(), 160, 292, 290, 28);
|
||||
}
|
||||
}
|
||||
|
||||
getroottable()["LenheartFuncTab"].rawset("HM_InheritFuncN", Lenheart_HM_Inherit_Fun);
|
||||
Loading…
Reference in New Issue