11111
This commit is contained in:
691
Project/Achievement/Achievement.nut
Normal file
691
Project/Achievement/Achievement.nut
Normal file
@@ -0,0 +1,691 @@
|
||||
/*
|
||||
文件名:Achievement.nut
|
||||
路径:Project/Achievement/Achievement.nut
|
||||
创建日期:2025-02-23 08:37
|
||||
文件用途:成就系统
|
||||
*/
|
||||
|
||||
|
||||
class Yosin_DragButton extends LenheartNewUI_CommonUi {
|
||||
State = 0;
|
||||
BaseIdx = 29;
|
||||
DHeight = null; // 改为高度
|
||||
Path = "interface/lenheartwindowcommon.img";
|
||||
Idx = 172;
|
||||
FillHeight = 2; // 改为填充高度
|
||||
FirstHeight = 7; // 改为首节高度
|
||||
Width = 9; // 固定宽度,垂直按钮宽度通常是固定的
|
||||
Visible = true;
|
||||
DeBugMode = false;
|
||||
|
||||
BasePos = null;
|
||||
MoveFlag = false;
|
||||
//鼠标相对位置
|
||||
M_Xpos = null;
|
||||
M_Ypos = null;
|
||||
B_X = null;
|
||||
B_Y = null;
|
||||
Move_Value = 0;
|
||||
Max_Move_Value = 0;
|
||||
|
||||
CurrentMovePosY = 0;
|
||||
|
||||
constructor(X, Y, H) {
|
||||
this.DHeight = H;
|
||||
LenheartNewUI_CommonUi.constructor(X, Y, Width, H + 7 * 2); // 宽度固定,高度动态
|
||||
|
||||
BasePos = {
|
||||
x = X,
|
||||
y = Y
|
||||
}
|
||||
}
|
||||
|
||||
function SetFrame(gPath, gIdx) {
|
||||
if (gPath) Path = gPath;
|
||||
Idx = gIdx;
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
//不可用
|
||||
if (State == 8) {
|
||||
L_sq_Draw3Image_Vertical(X + 1, Y, this.DHeight, Path, Idx + 9, FillHeight, FirstHeight);
|
||||
} else {
|
||||
//按下
|
||||
if (isLBDown) {
|
||||
L_sq_Draw3Image_Vertical(X, Y + 1, this.DHeight, Path, Idx + 3, FillHeight, FirstHeight);
|
||||
}
|
||||
//悬停
|
||||
else if (isInRect) {
|
||||
L_sq_Draw3Image_Vertical(X, Y, this.DHeight, Path, Idx + 3, FillHeight, FirstHeight);
|
||||
}
|
||||
//普通
|
||||
else {
|
||||
L_sq_Draw3Image_Vertical(X, Y, this.DHeight, Path, Idx, FillHeight, FirstHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//鼠标左键按下回调
|
||||
function OnMouseLbDown(MousePos_X, MousePos_Y) {
|
||||
LenheartNewUI_CommonUi.OnMouseLbDown(MousePos_X, MousePos_Y);
|
||||
|
||||
if (isInRect) {
|
||||
MoveFlag = true;
|
||||
M_Xpos = MousePos_X; //原始鼠标位置数据
|
||||
M_Ypos = MousePos_Y;
|
||||
B_X = X; //原始窗口位置
|
||||
B_Y = Y;
|
||||
}
|
||||
}
|
||||
|
||||
//鼠标事件回调
|
||||
function OnMouseProc(Flag, MousePos_X, MousePos_Y) {
|
||||
LenheartNewUI_CommonUi.OnMouseProc(Flag, MousePos_X, MousePos_Y);
|
||||
|
||||
//移动
|
||||
if (MoveFlag) {
|
||||
Move_Value = MousePos_Y - M_Ypos + CurrentMovePosY;
|
||||
print(Move_Value);
|
||||
if ( Move_Value <= (Max_Move_Value - Height + BasePos.y)) {
|
||||
Y = (Move_Value);
|
||||
Localtion_Y = (BasePos.y + Move_Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//鼠标左键弹起回调
|
||||
function OnMouseLbUp(MousePos_X, MousePos_Y) {
|
||||
LenheartNewUI_CommonUi.OnMouseLbUp(MousePos_X, MousePos_Y);
|
||||
MoveFlag = false;
|
||||
CurrentMovePosY = Move_Value; //记录当前移动位置
|
||||
}
|
||||
|
||||
//设置最大移动值
|
||||
function SetMaxMoveValue(Value) {
|
||||
Max_Move_Value = Value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// class Yosin_DragButton extends LenheartNewUI_CommonUi {
|
||||
// //路径
|
||||
// Path = "";
|
||||
// //索引
|
||||
// Idx = 0;
|
||||
// //方向
|
||||
// Direction = false;
|
||||
|
||||
// //按钮
|
||||
// Button = null;
|
||||
|
||||
// //变动位置回调函数
|
||||
// OnChange = null;
|
||||
|
||||
// //鼠标相对位置
|
||||
// M_Xpos = null;
|
||||
// M_Ypos = null;
|
||||
// //未移动时的初始坐标
|
||||
// BasePos = null;
|
||||
// //移动Flag
|
||||
// MoveFlag = false;
|
||||
// //最大移动值
|
||||
// Max_Move_Value = 0;
|
||||
// //移动值
|
||||
// Move_Value = 0;
|
||||
// //侦测值
|
||||
// Detect_Value = 0;
|
||||
|
||||
// B_X = null;
|
||||
// B_Y = null;
|
||||
|
||||
// Visible = true;
|
||||
// DeBugMode = false;
|
||||
|
||||
// constructor(X, Y, S_H, H) {
|
||||
// Childrens = [];
|
||||
// this.Path = Path;
|
||||
// this.Idx = Idx;
|
||||
// LenheartNewUI_CommonUi.constructor(X, Y, 9, H);
|
||||
|
||||
// Button = LenheartNewUI_VerticalButton(X, Y, S_H);
|
||||
// Button.SetFrame("interface/lenheartwindowcommon.img", 184);
|
||||
// AddChild(Button);
|
||||
|
||||
|
||||
// BasePos = {
|
||||
// x = X,
|
||||
// y = Y
|
||||
// }
|
||||
// }
|
||||
|
||||
// //生成DT
|
||||
// function GenerateDt() {
|
||||
// try {
|
||||
// local CurT = L_Getmicroseconds();
|
||||
// Duration = (CurT - DurationFlag);
|
||||
// DurationFlag = CurT;
|
||||
// } catch (exception) {
|
||||
|
||||
// }
|
||||
// }
|
||||
|
||||
// function DeBug(obj) {
|
||||
// sq_DrawBox(X, Y, Width, Height, 0xffffffff);
|
||||
// }
|
||||
|
||||
// function Show(obj) {
|
||||
// LenheartNewUI_Windows.Show(obj);
|
||||
// }
|
||||
|
||||
// //同步坐标
|
||||
// function SyncPos(X, Y) {
|
||||
// this.X = X;
|
||||
// this.Y = Y;
|
||||
// foreach(Window in Childrens) {
|
||||
// Window.SyncPos(X, Y);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// //鼠标事件回调
|
||||
// function OnMouseProc(Flag, MousePos_X, MousePos_Y) {
|
||||
// LenheartNewUI_CommonUi.OnMouseProc(Flag, MousePos_X, MousePos_Y);
|
||||
|
||||
// if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Parent.X + Button.Localtion_X , Parent.Y + Button.Localtion_Y, Width, Height)){
|
||||
// isInRect = true;
|
||||
// }
|
||||
// else isInRect = false;
|
||||
|
||||
|
||||
// foreach(Window in Childrens) {
|
||||
// Window.OnMouseProc(Flag, MousePos_X, MousePos_Y);
|
||||
// }
|
||||
// //移动
|
||||
// if (MoveFlag) {
|
||||
// //左键拖动
|
||||
// if (Direction) {
|
||||
// Move_Value = B_X + (MousePos_X - M_Xpos);
|
||||
// if (!(Move_Value >= (0 + BasePos.x) && Move_Value <= (Max_Move_Value - Width + BasePos.x))) {
|
||||
// X = Move_Value;
|
||||
// // DragLogic((Move_Value - Localtion_X).tofloat() / (Max_Move_Value - Width + BasePos.x - Localtion_X).tofloat());
|
||||
// }
|
||||
// } else {
|
||||
// Move_Value = B_Y + (MousePos_Y - M_Ypos);
|
||||
// if (Move_Value >= (0 + BasePos.y) && Move_Value <= (Max_Move_Value - Height + BasePos.y)) {
|
||||
// Y = (Move_Value);
|
||||
// Button.Localtion_Y = (Move_Value);
|
||||
// // DragLogic((Move_Value - Localtion_Y).tofloat() / (Max_Move_Value - Height + BasePos.y - Localtion_Y).tofloat());
|
||||
// }
|
||||
// }
|
||||
|
||||
// SyncPos(X, Y);
|
||||
// }
|
||||
// }
|
||||
// //鼠标左键按下回调
|
||||
// function OnMouseLbDown(MousePos_X, MousePos_Y) {
|
||||
// LenheartNewUI_CommonUi.OnMouseLbDown(MousePos_X, MousePos_Y);
|
||||
// foreach(Window in Childrens) {
|
||||
// Window.OnMouseLbDown(MousePos_X, MousePos_Y);
|
||||
// }
|
||||
|
||||
// if (isInRect) {
|
||||
// MoveFlag = true;
|
||||
// M_Xpos = MousePos_X; //原始鼠标位置数据
|
||||
// M_Ypos = MousePos_Y;
|
||||
// B_X = X; //原始窗口位置
|
||||
// B_Y = Y;
|
||||
// }
|
||||
// }
|
||||
// //鼠标左键弹起回调
|
||||
// function OnMouseLbUp(MousePos_X, MousePos_Y) {
|
||||
// LenheartNewUI_CommonUi.OnMouseLbUp(MousePos_X, MousePos_Y);
|
||||
// foreach(Window in Childrens) {
|
||||
// Window.OnMouseLbUp(MousePos_X, MousePos_Y);
|
||||
// }
|
||||
|
||||
// MoveFlag = false;
|
||||
// }
|
||||
// //鼠标右键按下回调
|
||||
// function OnMouseRbDown(MousePos_X, MousePos_Y) {
|
||||
// LenheartNewUI_CommonUi.OnMouseRbDown(MousePos_X, MousePos_Y);
|
||||
// foreach(Window in Childrens) {
|
||||
// Window.OnMouseRbDown(MousePos_X, MousePos_Y);
|
||||
// }
|
||||
// }
|
||||
// //鼠标右键弹起回调
|
||||
// function OnMouseRbUp(MousePos_X, MousePos_Y) {
|
||||
// LenheartNewUI_CommonUi.OnMouseRbUp(MousePos_X, MousePos_Y);
|
||||
// foreach(Window in Childrens) {
|
||||
// Window.OnMouseRbUp(MousePos_X, MousePos_Y);
|
||||
// }
|
||||
// }
|
||||
// //鼠标滚轮时间回调
|
||||
// function OnMouseWheel(Flag, MousePos_X, MousePos_Y) {
|
||||
// LenheartNewUI_CommonUi.OnMouseWheel(Flag, MousePos_X, MousePos_Y);
|
||||
// foreach(Window in Childrens) {
|
||||
// Window.OnMouseWheel(Flag, MousePos_X, MousePos_Y);
|
||||
// }
|
||||
// }
|
||||
|
||||
// //设置最大移动值
|
||||
// function SetMaxMoveValue(Value) {
|
||||
// Max_Move_Value = Value;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
class AchievementC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
// NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
// Visible = false;
|
||||
|
||||
EtcInfo = null;
|
||||
|
||||
WindowImg = Rindro_Image("achievement/main.img");
|
||||
WindowBackGroundImg = Rindro_Image("achievement/mainbackground.img");
|
||||
|
||||
ButtonInfo = null;
|
||||
Info = null;
|
||||
Data = null;
|
||||
|
||||
IsOther = false;
|
||||
OtherName = null;
|
||||
|
||||
Page = 1;
|
||||
|
||||
//滚轮值
|
||||
ScrollValue = 0;
|
||||
ScrollValueMax = 500;
|
||||
|
||||
EventWindow = null;
|
||||
|
||||
//查询成就回包
|
||||
function OnQueryAchievementBack(Chunk) {
|
||||
local Jso = Json.Decode(Chunk);
|
||||
if (Jso.rawin("click")) {
|
||||
IsOther = true;
|
||||
} else IsOther = false;
|
||||
Data = {};
|
||||
foreach(ValueObject in Jso.Achievement) {
|
||||
Data.rawset(ValueObject.id, ValueObject);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function OnQueryAchievementBack2(Chunk) {
|
||||
local Jso = Json.Decode(Chunk);
|
||||
EventWindow = EventList_Obj.AddEvent("AchievementEvent1", 682, null);
|
||||
EventWindow.MainButton.ShowName = Jso.VipInfo;
|
||||
}
|
||||
|
||||
function OnQueryAchievementBack3(Chunk) {
|
||||
local Jso = Json.Decode(Chunk);
|
||||
EventWindow = EventList_Obj.AddEvent("人物属性加成", 433, null);
|
||||
EventWindow.MainButton.OnClick = function(B_obj) {
|
||||
local T = {
|
||||
op = 20091601,
|
||||
}
|
||||
SendPackEx(T);
|
||||
}.bindenv(this);
|
||||
}
|
||||
|
||||
//查询成就
|
||||
function QueryAchievement() {
|
||||
local T = {
|
||||
op = 20091001,
|
||||
cjid = Page,
|
||||
cid2 = OtherName ? OtherName : "-1"
|
||||
}
|
||||
SendPackEx(T);
|
||||
}
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
InitButtonConfig();
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
Pack_Control.rawset(20091002, OnQueryAchievementBack.bindenv(this));
|
||||
Pack_Control.rawset(20092002, OnQueryAchievementBack2.bindenv(this));
|
||||
Pack_Control.rawset(20091010, OnQueryAchievementBack3.bindenv(this));
|
||||
|
||||
InitConfig();
|
||||
InitAchievement();
|
||||
QueryAchievement();
|
||||
|
||||
|
||||
|
||||
EventWindow = EventList_Obj.AddEvent("人物属性加成", 433, null);
|
||||
EventWindow.MainButton.OnClick = function(B_obj) {
|
||||
local T = {
|
||||
op = 20091601,
|
||||
}
|
||||
SendPackEx(T);
|
||||
}.bindenv(this);
|
||||
}
|
||||
|
||||
function InitAchievement() {
|
||||
Childrens = [];
|
||||
ScrollValueMax = 0;
|
||||
RegisterWidget();
|
||||
|
||||
|
||||
if (Info.len() > Page) {
|
||||
//绘制成就
|
||||
foreach(InfoObj in Info[Page]) {
|
||||
if (InfoObj.Pos.y - 320 > ScrollValueMax) ScrollValueMax = InfoObj.Pos.y - 320;
|
||||
DrawAItem(InfoObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function InitButtonConfig() {
|
||||
local AchieData = R_Utils.GetScriptFileReader("etc/th_plugin/control.etc");
|
||||
if (AchieData) {
|
||||
local DataArr = [];
|
||||
if (AchieData.Size >= 7) {
|
||||
//创建Blob对象
|
||||
local IOBUF = Sq_Point2Blob(L_sq_P2I(AchieData.Buffer.C_Object), AchieData.Size);
|
||||
local IO = BlobEx(IOBUF.readblob(IOBUF.len()));
|
||||
//以5为单步从第二位开始遍历字节
|
||||
local i = 2;
|
||||
while (true) {
|
||||
if (i< AchieData.Size && AchieData.Size - i >= 5) {
|
||||
local str = Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
//城镇编号
|
||||
if (str == "[info]") {
|
||||
local Data = {};
|
||||
while (true) {
|
||||
local Ret = Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
if (Ret == "[/info]") {
|
||||
DataArr.append(Data);
|
||||
break;
|
||||
}
|
||||
if (Ret == "[icon]") {
|
||||
Data.Icon <- {};
|
||||
Data.Icon.Path <- Rindro_Script.UnpackData(IO, i).tolower();
|
||||
i += 5;
|
||||
Data.Icon.Idx <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
}
|
||||
if (Ret == "[pos]") {
|
||||
Data.Pos <- {};
|
||||
Data.Pos.x <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
Data.Pos.y <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
}
|
||||
if (Ret == "[size]") {
|
||||
Data.Size <- {};
|
||||
Data.Size.x <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
Data.Size.y <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else break;
|
||||
}
|
||||
}
|
||||
ButtonInfo = DataArr;
|
||||
}
|
||||
}
|
||||
|
||||
function InitConfig() {
|
||||
Info = [];
|
||||
local PageLst = R_Utils.GetLstArr("etc/th_plugin/info.lst", "etc/");
|
||||
foreach(Index, Path in PageLst) {
|
||||
local AchieData = R_Utils.GetScriptFileReader(Path);
|
||||
if (AchieData) {
|
||||
local DataArr = {};
|
||||
if (AchieData.Size >= 7) {
|
||||
//创建Blob对象
|
||||
local IOBUF = Sq_Point2Blob(L_sq_P2I(AchieData.Buffer.C_Object), AchieData.Size);
|
||||
local IO = BlobEx(IOBUF.readblob(IOBUF.len()));
|
||||
//以5为单步从第二位开始遍历字节
|
||||
local i = 2;
|
||||
while (true) {
|
||||
if (i< AchieData.Size && AchieData.Size - i >= 5) {
|
||||
local str = Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
//城镇编号
|
||||
if (str == "[info]") {
|
||||
local Data = {};
|
||||
while (true) {
|
||||
local Ret = Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
if (Ret == "[/info]") {
|
||||
DataArr.rawset(Data.Id, Data);
|
||||
break;
|
||||
}
|
||||
if (Ret == "[id]") {
|
||||
Data.Id <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
}
|
||||
if (Ret == "[icon]") {
|
||||
Data.Icon <- {};
|
||||
Data.Icon.Path <- Rindro_Script.UnpackData(IO, i).tolower();
|
||||
i += 5;
|
||||
Data.Icon.Idx <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
}
|
||||
if (Ret == "[pos]") {
|
||||
Data.Pos <- {};
|
||||
Data.Pos.x <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
Data.Pos.y <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
}
|
||||
if (Ret == "[size]") {
|
||||
Data.Size <- {};
|
||||
Data.Size.x <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
Data.Size.y <- Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
}
|
||||
if (Ret == "[str]") {
|
||||
Data.Str <- [];
|
||||
while (true) {
|
||||
local strbuffer = Rindro_Script.UnpackData(IO, i);
|
||||
i += 5;
|
||||
strbuffer = Sq_ConvertWideChar(strbuffer, "big5")
|
||||
if (strbuffer == "[/str]") break;
|
||||
Data.Str.append(strbuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else break;
|
||||
}
|
||||
}
|
||||
Info.append(DataArr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function RegisterWidget() {
|
||||
//类型按钮
|
||||
for (local i = 0; i< ButtonInfo.len(); i++) {
|
||||
local Config = ButtonInfo[i];
|
||||
local TypeButton = LenheartNewUI_BaseButton(Config.Pos.x, Config.Pos.y, Config.Size.x, Config.Size.y, Config.Icon.Path, Config.Icon.Idx);
|
||||
TypeButton.Data = i;
|
||||
TypeButton.OnClickEx = function(Button) {
|
||||
Page = Button.Data;
|
||||
InitAchievement();
|
||||
QueryAchievement();
|
||||
}.bindenv(this);
|
||||
Childrens.append(TypeButton);
|
||||
}
|
||||
|
||||
|
||||
// local TestButton = Yosin_DragButton(50, 120, 10);
|
||||
// TestButton.SetFrame("interface/lenheartwindowcommon.img", 184);
|
||||
// TestButton.SetMaxMoveValue(400);
|
||||
// AddChild(TestButton);
|
||||
// Childrens.append(TestButton);
|
||||
}
|
||||
|
||||
//绘制主界面
|
||||
function DrawMain(obj) {
|
||||
WindowBackGroundImg.DrawPng(0 + Page, X, Y);
|
||||
WindowImg.DrawPng(19, X + EtcInfo.closebutton_pos[0], Y + EtcInfo.closebutton_pos[1]); //关闭按钮图标
|
||||
}
|
||||
|
||||
function DrawInfo() {
|
||||
if (Info.len() > Page) {
|
||||
//绘制成就
|
||||
foreach(InfoObj in Info[Page]) {
|
||||
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + InfoObj.Pos.x, Y + InfoObj.Pos.y - ScrollValue, InfoObj.Size.x, InfoObj.Size.y)) {
|
||||
|
||||
for (local i = 0; i< InfoObj.Str.len(); i += 2) {
|
||||
local OffsetRate = InfoObj.Str.len() / 2;
|
||||
local StrBuffer = format(InfoObj.Str[i], Data[InfoObj.Id].num);
|
||||
local StrBuffer2 = InfoObj.Str[i + 1];
|
||||
|
||||
L_sq_DrawWindow(IMouse.GetXPos() + 32, IMouse.GetYPos() + 60 - (OffsetRate * 44) + (i / 2 * 44), 144, 24, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
|
||||
L_sq_DrawCode(StrBuffer, IMouse.GetXPos() + 42, IMouse.GetYPos() + 70 - (OffsetRate * 44) + (i / 2 * 44), (Data[InfoObj.Id].achievement > (i / 2)) ? 0xFFedd568 : 0xFF969696, 1, 1);
|
||||
L_sq_DrawCode(StrBuffer2, IMouse.GetXPos() + 42, IMouse.GetYPos() + 88 - (OffsetRate * 44) + (i / 2 * 44), (Data[InfoObj.Id].achievement > (i / 2)) ? 0xFFedd568 : 0xFF969696, 1, 1);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
setClip(X + EtcInfo.clicp_pos[0], Y + EtcInfo.clicp_pos[1], X + EtcInfo.clicp_pos[2], Y + EtcInfo.clicp_pos[3]);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
releaseClip(); //裁切结束
|
||||
DrawInfo();
|
||||
}
|
||||
|
||||
function DrawAItem(InfoObj) {
|
||||
local Button = LenheartNewUI_BaseButton(InfoObj.Pos.x, InfoObj.Pos.y, InfoObj.Size.x, InfoObj.Size.y, InfoObj.Icon.Path, InfoObj.Icon.Idx);
|
||||
Button.Data = InfoObj;
|
||||
Button.SetCallBackFunc(function(Button) {
|
||||
local InfoObj = Button.Data;
|
||||
Button.Localtion_X = InfoObj.Pos.x;
|
||||
Button.Localtion_Y = InfoObj.Pos.y - ScrollValue;
|
||||
}.bindenv(this));
|
||||
Button.OnClickEx = function(Button) {
|
||||
if (IsOther) return;
|
||||
local T = {
|
||||
op = 20091005,
|
||||
cjid = Page,
|
||||
id = Button.Data.Id
|
||||
}
|
||||
SendPackEx(T);
|
||||
}.bindenv(this);
|
||||
Childrens.append(Button);
|
||||
}
|
||||
|
||||
RegisFlag = false;
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y);
|
||||
|
||||
|
||||
local RootTab = getroottable();
|
||||
if (RootTab.rawin("L_PlayerEach_Obj") && RegisFlag == false) {
|
||||
RegisFlag = true;
|
||||
RootTab["L_PlayerEach_Obj"].AddEachForCommon("查看收集信息", 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 = 58;
|
||||
ApplyEngagementButton.Str = "查看收集信息";
|
||||
ApplyEngagementButton.OnClick = function(Button) {
|
||||
if (L_Sq_GetPlayerEachName().len() <= 0 || L_Sq_GetPlayerEachName() == L_Sq_GetObjectName(sq_GetMyMasterCharacter())) {
|
||||
|
||||
} else {
|
||||
OtherName = L_Sq_GetPlayerEachName();
|
||||
Visible = true;
|
||||
InitAchievement();
|
||||
QueryAchievement();
|
||||
}
|
||||
Button.Parent.CloseAllEach();
|
||||
}.bindenv(this);
|
||||
ApplyEngagementButton.SetCallBackFunc(function(Button) {})
|
||||
SThis.AddChild(ApplyEngagementButton);
|
||||
}.bindenv(this));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//override
|
||||
//鼠标滚轮事件回调
|
||||
function OnMouseWheel(Flag, MousePos_X, MousePos_Y) {
|
||||
|
||||
|
||||
if (Flag) {
|
||||
if (ScrollValue > 0) ScrollValue -= 35;
|
||||
}
|
||||
if (!Flag) {
|
||||
if (ScrollValue< ScrollValueMax) ScrollValue += 35;
|
||||
}
|
||||
|
||||
//调用原生方法
|
||||
LenheartNewUI_Windows.OnMouseWheel(Flag, MousePos_X, MousePos_Y);
|
||||
}
|
||||
|
||||
//override
|
||||
//鼠标左键按下回调
|
||||
function OnMouseLbDown(MousePos_X, MousePos_Y) {
|
||||
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + EtcInfo.closebutton_pos[0], Y + EtcInfo.closebutton_pos[1], EtcInfo.closebutton_pos[2], EtcInfo.closebutton_pos[3])) {
|
||||
CloseWindow();
|
||||
}
|
||||
|
||||
LenheartNewUI_Windows.OnMouseLbDown(MousePos_X, MousePos_Y);
|
||||
}
|
||||
|
||||
function OpenCallBack() {
|
||||
Visible = true;
|
||||
IsOther = false;
|
||||
OtherName = null;
|
||||
InitAchievement();
|
||||
QueryAchievement();
|
||||
}
|
||||
}
|
||||
|
||||
L_Windows_List <- [];
|
||||
getroottable().rawdelete("LenheartPluginsInitFlag");
|
||||
getroottable().rawdelete("EventList_Obj")
|
||||
getroottable().rawdelete("Achievement_Obj");
|
||||
|
||||
function Lenheart_Achievement_Fun(obj) {
|
||||
local RootTab = getroottable();
|
||||
if (!RootTab.rawin("Achievement_Obj")) {
|
||||
RootTab.rawset("Achievement_Obj", true);
|
||||
|
||||
local Info = Rindro_Script.GetFileData("etc/th_plugin/etc.etc", function(DataTable, Data) {
|
||||
while (!Data.Eof()) {
|
||||
local Str = Data.Get();
|
||||
if (Str == "[window pos]") {
|
||||
DataTable.window_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get(), Data.Get()];
|
||||
} else if (Str == "[clicp pos]") {
|
||||
DataTable.clicp_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get()];
|
||||
} else if (Str == "[closebutton pos]") {
|
||||
DataTable.closebutton_pos <- [Data.Get(), Data.Get(), Data.Get(), Data.Get()];
|
||||
}
|
||||
}
|
||||
}.bindenv(this));
|
||||
local window_Info = Info.window_pos;
|
||||
|
||||
local Win = LenheartNewUI_CreateWindow(AchievementC, "成就系统窗口", window_Info[0], window_Info[1], window_Info[2], window_Info[3], window_Info[4]);
|
||||
Win.EtcInfo = Info;
|
||||
EventList_Obj.AddEvent("成就系统", 118, Win);
|
||||
}
|
||||
}
|
||||
|
||||
getroottable()["LenheartFuncTab"].rawset("AchievementFuncN", Lenheart_Achievement_Fun);
|
||||
Reference in New Issue
Block a user