This commit is contained in:
2024-09-27 14:04:23 +08:00
parent 39d60b284e
commit b2133d8463
25 changed files with 1170 additions and 128 deletions

View File

@@ -357,41 +357,43 @@ class RinDro_Anton extends Rindro_BaseToolClass {
//绘制通关副本动画
function DrawPlayAni(obj) {
if (!DrawPlayAniMark || !DrawPlayAniT) return;
local Offset = 0;
if (getroottable().Rindro_Scr_Width > 800) Offset = ((getroottable().Rindro_Scr_Width - 800) / 2);
local Ct = Clock() - DrawPlayAniT;
switch (DrawPlayAniMark) {
case 1: //通关擎天A
case 2: //通关擎天B
case 13: //通关擎天B
local Ani = T_DrawDynamicAni(obj, "common/anton/title/04_clear_back.ani", 0, 180, "安图恩通关擎天A" + DrawPlayAniT);
local Ani = T_DrawDynamicAni(obj, "common/anton/title/04_clear_back.ani", 0 + Offset, 180, "安图恩通关擎天A" + DrawPlayAniT);
local str = "擎天之柱A";
if (DrawPlayAniMark == 2) str = "擎天之柱B"
if (DrawPlayAniMark == 13) str = "黑色火山"
if (Ct >= 350 && Ct <= 1400) L_sq_DrawCode(str, 236 + 158 - LenheartTextClass.GetStringLength(str) / 2, 244, sq_RGBA(255, 146, 0, 250), 0, 1);
if (Ct >= 350 && Ct <= 1400) L_sq_DrawCode(str, 236 + Offset + 158 - LenheartTextClass.GetStringLength(str) / 2, 244, sq_RGBA(255, 146, 0, 250), 0, 1);
break;
case 5:
T_DrawDynamicAni(obj, "common/anton/title/00_start_back.ani", 430, 210 + 26, "安图恩阻截开始" + DrawPlayAniT);
T_DrawDynamicAni(obj, "common/anton/title/00_start_back.ani", 430 + Offset, 210 + 26, "安图恩阻截开始" + DrawPlayAniT);
break;
case 6:
T_DrawDynamicAni(obj, "common/anton/title/02_success_back.ani", 430, 210 + 26, "安图恩阻截成功" + DrawPlayAniT);
T_DrawDynamicAni(obj, "common/anton/title/02_success_back.ani", 430 + Offset, 210 + 26, "安图恩阻截成功" + DrawPlayAniT);
break;
case 7:
T_DrawDynamicAni(obj, "common/anton/title/01_fail_back.ani", 430, 210 + 26, "安图恩阻截失败" + DrawPlayAniT);
T_DrawDynamicAni(obj, "common/anton/title/01_fail_back.ani", 430 + Offset, 210 + 26, "安图恩阻截失败" + DrawPlayAniT);
break;
case 8:
T_DrawDynamicAni(obj, "common/anton/title/00_start_back_1.ani", 430, 210 + 26, "安图恩灭杀开始" + DrawPlayAniT);
T_DrawDynamicAni(obj, "common/anton/title/00_start_back_1.ani", 430 + Offset, 210 + 26, "安图恩灭杀开始" + DrawPlayAniT);
break;
case 9:
T_DrawDynamicAni(obj, "common/anton/title/02_success_back_1.ani", 430, 210 + 26, "安图恩灭杀成功" + DrawPlayAniT);
T_DrawDynamicAni(obj, "common/anton/title/02_success_back_1.ani", 430 + Offset, 210 + 26, "安图恩灭杀成功" + DrawPlayAniT);
break;
case 10:
T_DrawDynamicAni(obj, "common/anton/title/01_fail_back_1.ani", 430, 210 + 26, "安图恩灭杀失败" + DrawPlayAniT);
T_DrawDynamicAni(obj, "common/anton/title/01_fail_back_1.ani", 430 + Offset, 210 + 26, "安图恩灭杀失败" + DrawPlayAniT);
break;
case 11:
case 12:
T_DrawDynamicAni(obj, "common/anton/title/03_warning_back.ani", 0, 210 + 26, "安图恩火山警告" + DrawPlayAniT);
T_DrawDynamicAni(obj, "common/anton/title/03_warning_back.ani", 0 + Offset, 210 + 26, "安图恩火山警告" + DrawPlayAniT);
local str = "火山能量即将过载,请立即前往压制!!!";
if (DrawPlayAniMark == 12) str = "震颤的大地已经复活,请立即前往压制!!!"
if (Ct >= 350 && Ct <= 1600) L_sq_DrawCode(str, 236 + 158 - LenheartTextClass.GetStringLength(str) / 2, 320, sq_RGBA(255, 50, 50, 250), 0, 1);
if (Ct >= 350 && Ct <= 1600) L_sq_DrawCode(str, 236 + Offset + 158 - LenheartTextClass.GetStringLength(str) / 2, 320, sq_RGBA(255, 50, 50, 250), 0, 1);
break;
default:
break;

View File

@@ -800,7 +800,7 @@ class Rindro_AntonFightSituationC extends LenheartNewUI_Windows {
LenheartNewUI_Windows.SyncPos(X, Y);
MapEventTest(obj);
if (SelectDgnMarkFlag) {
L_sq_WA(0x1b46898, 47);
R_Mouse.SetType(151);
}
@@ -810,7 +810,7 @@ class Rindro_AntonFightSituationC extends LenheartNewUI_Windows {
function OnMouseLbUp(MousePos_X, MousePos_Y) {
if (SelectDgnMarkFlag != 0) {
SelectDgnMarkFlag = 0;
L_sq_WA(0x1b46898, 0);
R_Mouse.SetType(0);
foreach(d_obj in DgnList) {
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X + d_obj.X, Y + d_obj.Y, 71, 71)) {
local T = {

View File

@@ -93,7 +93,7 @@ class Rindro_AntonPartyFormation extends LenheartNewUI_Windows {
}
if (PartyMarkFlag != -1) {
L_sq_WA(0x1b46898, 47);
R_Mouse.SetType(151);
}
}
@@ -114,7 +114,7 @@ class Rindro_AntonPartyFormation extends LenheartNewUI_Windows {
//还原编队的鼠标指针
if (this.PartyMarkFlag != -1) {
this.PartyMarkFlag = -1;
L_sq_WA(0x1b46898, 0);
R_Mouse.SetType(0);
}
LenheartNewUI_Windows.OnMouseLbUp(MousePos_X, MousePos_Y);
}

View File

@@ -86,14 +86,14 @@ class Rindro_AntonPartyInfoMemberC extends LenheartNewUI_CommonUi {
}
SendPackEx(T);
win.PartyMarkFlag = -1;
L_sq_WA(0x1b46898, 0);
R_Mouse.SetType(0);
win.ResetFocus();
return;
}
//点了其他队伍成员要还原编队状态
else {
win.PartyMarkFlag = -1;
L_sq_WA(0x1b46898, 0);
R_Mouse.SetType(0);
}
}

View File

@@ -363,8 +363,8 @@ class Rindro_Anton_RewardC extends LenheartNewUI_Windows {
}
//绘制物品边框
if (OpenRealXrate >= 0.6) {
local Rarity = AllItemInfoObject[CardInfo.item].Rarity;
local Name = AllItemInfoObject[CardInfo.item].Name;
local Rarity = Rindro_ItemInfoObject[CardInfo.item].Rarity;
local Name = Rindro_ItemInfoObject[CardInfo.item].Name;
L_sq_DrawImg("interface2/raid/anton/reward/anton_reward.img", 5 + Rarity, X + 156 + (160 * i), Y + 378, 1, sq_RGBA(255, 255, 255, CradAlphaOffset), OpenRealXrate, 1.0);
//绘制物品
@@ -459,7 +459,7 @@ class Rindro_Anton_RewardC extends LenheartNewUI_Windows {
//奖励对象
local CardInfo = TeamReward[i];
if (CardInfo.Flag && CardInfo.item != -1) {
local Rarity = AllItemInfoObject[CardInfo.item].Rarity;
local Rarity = Rindro_ItemInfoObject[CardInfo.item].Rarity;
//物品出现光
if (!CardInfo.grade) {
if (Rarity <= 2) { //低于紫色闪紫光

View File

@@ -354,7 +354,7 @@ function Lenheart_AradPass_Fun(obj) {
if (!RootTab.rawin("AradPass_Obj")) {
RootTab.rawset("AradPass_Obj", true);
local Win = LenheartNewUI_CreateWindow(AradPassC, "阿拉德战令窗口", ((getroottable().Rindro_Scr_Width - 558) / 2).tointeger(), 46, 558, 484, 15);
EventList_Obj.AddEvent("阿拉德战令", 928, Win,"interface2/hud/information_button/information_button_cn.img");
EventList_Obj.AddEvent("阿拉德战令", 928, Win, "interface2/hud/information_button/information_button_cn.img");
}
}

View File

@@ -380,6 +380,23 @@ class AradPass_QuestC extends LenheartNewUI_Windows {
DrawTop(obj);
}
//override
//鼠标滚轮事件回调
function OnMouseWheel(Flag, MousePos_X, MousePos_Y) {
if (Flag) {
if (QuestWheelNow > 0) QuestWheelNow--;
}
if (!Flag) {
if (QuestWheelNow< QuestWheelMax - 6) QuestWheelNow++;
}
//调用原生方法
LenheartNewUI_Windows.OnMouseWheel(Flag, MousePos_X, MousePos_Y);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y - 210);
@@ -392,12 +409,6 @@ class AradPass_QuestC extends LenheartNewUI_Windows {
Visible = false;
}
if (IMouse.IsWheelUp()) {
if (QuestWheelNow > 0) QuestWheelNow--;
}
if (IMouse.IsWheelDown()) {
if (QuestWheelNow< QuestWheelMax - 6) QuestWheelNow++;
}
foreach(Pos, winobj in QuestItemList[Page]) {
if (Pos >= QuestWheelNow && Pos <= QuestWheelNow + 5) {

View File

@@ -11,6 +11,7 @@ class LenheartNewUI_CollectionBox_BaseButton extends LenheartNewUI_CommonUi {
Path = null;
Idx = null;
SetFlag = null;
SetIndex = null;
constructor(X, Y, W, H, Path, Idx) {
@@ -65,7 +66,7 @@ class CollectionBoxC extends LenheartNewUI_Windows {
// NoWindow = true;
//是否可见
// Visible = false;
Visible = false;
//盒子按钮集合
BoxButton = null;
@@ -76,16 +77,45 @@ class CollectionBoxC extends LenheartNewUI_Windows {
//当前页面
Page = null;
//
//滚轮偏移
ScrollPos = 0;
//页面滚轮偏移
PageScrollPos = 0;
//悬停的宝珠
HoverItem = null;
//镶嵌成功音效包
function AudioCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
local Type = Jso.Type;
local obj = sq_getMyCharacter();
switch (Type) {
case 1:
obj.sq_PlaySound("TRADE_OK");
break;
case 2:
obj.sq_PlaySound("ICON_DROP_TO_QUICKSLOT");
break;
case 3:
obj.sq_PlaySound("GAMBLE_RESULT_GOOD");
break;
}
}
//基础配置包
function GetInfoCallBack(Chunk) {
Info = Json.Decode(Chunk).info;
local Jso = Json.Decode(Chunk);
local ZlibStrBuf = Json.Decode(L_sq_Dezlib(Jso.ZipS));
Info = ZlibStrBuf.info;
foreach(Key, Aobj in Info) {
if (!Page) Page = Key;
local StrBuf1 = L_sq_GetStringDrawArray(Aobj.attribute.Atts, 300);
Aobj.attribute.AttsS <- StrBuf1[0] + "...";
Aobj.attribute.Atts <- StrBuf1;
local StrBuf1 = L_sq_GetStringDrawArray(Aobj.attS, 300);
Aobj.AttsS <- StrBuf1[0] + "...";
Aobj.attS <- StrBuf1;
}
InitBoxButton();
@@ -98,11 +128,6 @@ class CollectionBoxC extends LenheartNewUI_Windows {
};
SendPackEx(T);
}
//收集箱收集信息
function GetCollectInfoCallBack(Chunk) {
// Info = Json.Decode(Chunk).info;
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
@@ -113,9 +138,10 @@ class CollectionBoxC extends LenheartNewUI_Windows {
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
Pack_Control.rawset(20077028, GetInfoCallBack.bindenv(this));
Pack_Control.rawset(20077010, AudioCallBack.bindenv(this));
Pack_Control.rawset(20077004, GetCollectInfoCallBack.bindenv(this));
GetCollectInfo();
}
//初始化按钮
@@ -135,12 +161,15 @@ class CollectionBoxC extends LenheartNewUI_Windows {
//关闭按钮
local ButtonBuf = LenheartNewUI_CollectionBox_BaseButton(8, 95 + (RealPos * 72), 102, 70, InfoObj.img, 1);
ButtonBuf.SetFlag = Pos;
ButtonBuf.SetIndex = RealPos;
ButtonBuf.OnClick = function(ButtonObj) {
Page = ButtonObj.SetFlag;
}.bindenv(this);
ButtonBuf.SetCallBackFunc(function(ButtonObj) {
});
ButtonObj.Localtion_Y = 95 + ((ButtonObj.SetIndex - ScrollPos) * 72);
if (ButtonObj.Localtion_Y< 95 || ButtonObj.Localtion_Y > 311) ButtonObj.Localtion_X = -9000;
else ButtonObj.Localtion_X = 8;
}.bindenv(this));
Childrens.append(ButtonBuf);
RealPos++;
}
@@ -164,17 +193,43 @@ class CollectionBoxC extends LenheartNewUI_Windows {
L_sq_DrawImg("interface2/collectbox/collectboxbtn.img", 0, X, Y);
//背景
L_sq_DrawImg(Info[Page].img, 0, X + 7, Y + 26);
//绘制窗口名称
L_sq_DrawCode("我的收集箱", X + 160, Y + 8, sq_RGBA(255, 177, 0, 250), 0, 1);
//绘制收集箱名称
L_sq_DrawCode(Info[Page].name, X + 208 - LenheartTextClass.GetStringLength(Info[Page].name) / 2, Y + 40, sq_RGBA(255, 177, 0, 250), 0, 1);
//绘制收集箱信息缩略
L_sq_DrawCode(Info[Page].attribute.AttsS, X + 228 - LenheartTextClass.GetStringLength(Info[Page].attribute.AttsS) / 2, Y + 40 + 20, sq_RGBA(255, 242, 0, 250), 0, 1);
L_sq_DrawCode(Info[Page].AttsS, X + 228 - LenheartTextClass.GetStringLength(Info[Page].AttsS) / 2, Y + 40 + 20, sq_RGBA(255, 242, 0, 250), 0, 1);
HoverItem = null;
setClip(X + 95, Y + 95, X + 348, Y + 375); //开始裁切
//绘制宝珠
foreach(pos, value in Info[Page].itemIds) {
//绘制格子
L_sq_DrawImg(Info[Page].img, 5, X + value.x, Y + value.y + PageScrollPos);
//绘制宝珠
DrawItemEx(X + value.x + Info[Page].Xp, Y + value.y + Info[Page].Yp + PageScrollPos, value.id, 1);
//判断是否拥有
if (!value.isTure) {
//遮挡
L_sq_DrawImg("interface/windowcommon.img", 157, X + value.x + Info[Page].Xp, Y + value.y + Info[Page].Yp + PageScrollPos);
L_sq_DrawImg("interface/windowcommon.img", 157, X + value.x + Info[Page].Xp, Y + value.y + Info[Page].Yp + PageScrollPos);
L_sq_DrawImg("interface/windowcommon.img", 157, X + value.x + Info[Page].Xp, Y + value.y + Info[Page].Yp + PageScrollPos);
}
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + value.x + Info[Page].Xp, Y + value.y + Info[Page].Yp + PageScrollPos, 29, 29)) {
HoverItem = value;
}
}
releaseClip(); //裁切结束
}
function TopShow(obj) {
if (!Info) return;
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 86, Y + 53, 272, 15)) {
local StrArr = Info[Page].attribute.Atts;
local Str = Info[Page].attribute.AttsS;
local StrArr = Info[Page].attS;
local Str = Info[Page].AttsS;
L_sq_DrawWindow(IMouse.GetXPos() - 140 + LenheartTextClass.GetStringLength(Str) / 2, IMouse.GetYPos() - 36, 0 + LenheartTextClass.GetStringLength(Str), 0 + (14 * StrArr.len()), "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
local Xpos = LenheartTextClass.GetStringLength(Str) / 2;
@@ -184,6 +239,23 @@ class CollectionBoxC extends LenheartNewUI_Windows {
}
}
//override
function DrawItemInfo() {
if (MousePosFlag != 2) return;
if (ItemInfoDrawS) {
if (!ItemObject) {
local ItemId = ItemInfoDrawS.ItemId;
if (Rindro_ItemInfoObject.rawin(ItemId)) {
ItemObject = ItemInfoClass(Rindro_ItemInfoObject[ItemId]);
}
}
ItemObject.Show(ItemInfoDrawS.X, ItemInfoDrawS.Y - ItemObject.PageLength);
} else {
ItemObject = null;
}
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
@@ -192,6 +264,83 @@ class CollectionBoxC extends LenheartNewUI_Windows {
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
//鼠标位置Flag
MousePosFlag = 0;
//override
function OnMouseProc(Flag, MousePos_X, MousePos_Y) {
//调用原生方法
LenheartNewUI_Windows.OnMouseProc(Flag, MousePos_X, MousePos_Y);
MousePos_X -= X;
MousePos_Y -= Y;
//鼠标在栏目窗口内
if (MousePos_X >= 8 && MousePos_Y >= 95 && MousePos_X <= 110 && MousePos_Y <= 375) {
MousePosFlag = 1;
}
//鼠标在宝珠窗口内
else if (MousePos_X > 95 && MousePos_Y >= 95 && MousePos_X <= 348 && MousePos_Y <= 375) {
MousePosFlag = 2;
} else MousePosFlag = 0;
}
//override
//鼠标滚轮事件回调
function OnMouseWheel(Flag, MousePos_X, MousePos_Y) {
MousePos_X -= X;
MousePos_Y -= Y;
//左侧栏目的滚动逻辑
if (MousePosFlag == 1) {
if (Flag) {
if (ScrollPos > 0) ScrollPos -= 1;
}
if (!Flag) {
if (ScrollPos<(Info.len() - 4)) ScrollPos += 1;
}
}
//左侧栏目的滚动逻辑
if (MousePosFlag == 2) {
if (Flag) {
if (PageScrollPos< 0) PageScrollPos += 47;
}
if (!Flag) {
if (PageScrollPos > (0 - Info[Page].gl)) PageScrollPos -= 47;
}
}
//调用原生方法
LenheartNewUI_Windows.OnMouseWheel(Flag, MousePos_X, MousePos_Y);
}
//override
//鼠标左键弹起回调
function OnMouseLbUp(MousePos_X, MousePos_Y) {
//调用原生方法
LenheartNewUI_Windows.OnMouseLbUp(MousePos_X, MousePos_Y);
if (HoverItem) {
local RealOp = 20077005;
if (HoverItem.isTure) RealOp = 20077009;
local T = {
op = RealOp,
boxId = Info[Page].id,
itemId = HoverItem.id
}
SendPackEx(T);
}
}
function OpenCallBack() {
GetCollectInfo();
this.Visible = true;
ResetFocus();
}
}
@@ -201,7 +350,9 @@ function Lenheart_CollectionBox_Fun(obj) {
local RootTab = getroottable();
if (!RootTab.rawin("CollectionBox_Obj")) {
RootTab.rawset("CollectionBox_Obj", true);
LenheartNewUI_CreateWindow(CollectionBoxC, "收集箱", ((getroottable().Rindro_Scr_Width - 376) / 2).tointeger(), 64, 376, 384, 28);
local Winobj = LenheartNewUI_CreateWindow(CollectionBoxC, "收集箱窗口", ((getroottable().Rindro_Scr_Width - 376) / 2).tointeger(), 64, 376, 384, 28);
EventList_Obj.AddEvent("收集箱", 73, Winobj, "interface2/hud/information_button/information_button_cn.img");
}
}

View File

@@ -0,0 +1,223 @@
/*
文件名:HorseGuessing.nut
路径:Project/HorseGuessing/HorseGuessing.nut
创建日期:2024-09-25 20:30
文件用途:骑士马战
*/
dofile("sqr/Project/HorseGuessing/HorseGuessing_Guide.nut"); //骑士马战指引
dofile("sqr/Project/HorseGuessing/HorseGuessing_KnightInfo.nut"); //骑士马战资料
class HorseGuessingC extends LenheartNewUI_Windows {
//调试模式
//DeBugMode = true;
//不是窗口
// NoWindow = true;
//是否可见
// Visible = false;
//标题栏
Title = null;
//当前页面
Page = 0;
//页面选择器
PageSelectM = 0;
//指引页面
GuidePage = null;
//骑士资料页面
KnightInfoPage = null;
//过往战绩页面
PastRecordPage = null;
//骑手名称
RiderName = [
"伊撒尔",
"理查德",
"席恩",
"吉尔特",
"爱德华",
"罗兰",
"莱奥",
"贝奥武夫",
];
//当前选择骑手
NowSelectRider = 0;
//下注
BetItem = 0;
//剩余可下注数量
ResidueCoin = 10000;
//骑手信息
RiderInfo = null;
//获取选手具体信息
function GetRiderInfo() {
local T = {
op = 20055003,
code = NowSelectRider,
}
SendPack(T);
}
//获取选手具体信息回调包
function GetRiderInfoCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
RiderInfo = [];
for (local i = 0; i< Jso.outcome.len(); i++) {
RiderInfo.append(Jso.outcome[i]);
}
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
Title = [];
RiderInfo = [];
//读取配置文件
local Config = R_Utils.ReadScriptConfig("etc/rindro/horseguessing/horseguessing.dat", 1024, "utf8");
RiderName = Config.RiderInfo;
BetItem = Config.ItemId;
//把big的名字 转成 utf8
for (local i = 0; i< RiderName.len(); i++) {
RiderName[i] = Sq_ConvertWideChar(RiderName[i], "big5");
}
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
GuidePage = HorseGuessing_GuideC("骑士马战_指引窗口", X + 7, Y + 50, 214, 480, 0);
KnightInfoPage = HorseGuessing_KnightInfoC("骑士马战_资料窗口", X + 7, Y + 50, 214, 480, 0);
//默认构造时切换到0页
ChangePage(1);
}
function ChangePage(ToPage) {
foreach(ButtonObj in Title) {
ButtonObj.State = 0;
}
Page = ToPage;
Title[ToPage].State = 1;
RemoveChild("骑士马战_指引窗口");
RemoveChild("骑士马战_资料窗口");
RemoveChild("骑士马战_战绩窗口");
PageSelectM = ToPage;
switch (ToPage) {
case 0: {
AddChild(GuidePage);
break;
}
case 1: {
AddChild(KnightInfoPage);
break;
}
case 2:
AddChild(PastRecordPage);
break;
}
}
function RegisterWidget() {
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(750, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
this.Visible = false;
}.bindenv(this);
Childrens.append(CloseButton);
local Tabbars1 = LenheartNewUI_TabbarsText(12, 27, "指引");
Tabbars1.State = 1;
AddChild(Tabbars1);
Tabbars1.OnClick = function() {
ChangePage(0);
}.bindenv(this);
Title.append(Tabbars1);
local Tabbars2 = LenheartNewUI_TabbarsText(74, 27, "骑士资料");
AddChild(Tabbars2);
Tabbars2.OnClick = function() {
ChangePage(1);
}.bindenv(this);
Tabbars2.SetTextOffset(7, 3);
Title.append(Tabbars2);
local Tabbars3 = LenheartNewUI_TabbarsText(136, 27, "过往战绩");
AddChild(Tabbars3);
Tabbars3.OnClick = function() {
ChangePage(2);
}.bindenv(this);
Tabbars3.SetTextOffset(7, 3);
Title.append(Tabbars3);
}
function DrawInfo(obj) {
}
//绘制主界面
function DrawMain(obj) {
//绘制窗口
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 33, X, Y);
//绘制左边底槽窗口
L_sq_DrawWindow(X + 2, Y + 46, 210, 435, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
//绘制详情页
DrawInfo(obj);
//BackGround
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 0, X + 227, Y + 26);
// L_sq_DrawCode(L_sq_StringBinById(271069), X + 400, Y + 386, sq_RGBA(255, 255, 255, 250), 0, 1);
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
//主动调用子对象窗口的Proc
foreach(Object in Childrens) {
if (Object instanceof LenheartNewUI_Windows)
Object.Proc(obj);
}
}
function OpenCallBack() {
this.Visible = true;
ResetFocus();
}
}
getroottable().rawdelete("HorseGuessing_Obj");
function Lenheart_HorseGuessing_Fun(obj) {
local RootTab = getroottable();
if (!RootTab.rawin("HorseGuessing_Obj")) {
RootTab.rawset("HorseGuessing_Obj", true);
local Winobj = LenheartNewUI_CreateWindow(HorseGuessingC, "骑士马战窗口", ((getroottable().Rindro_Scr_Width - 772) / 2).tointeger(), 30, 772, 539, 28);
EventList_Obj.AddEvent("骑士马战", 106, Winobj, "interface2/yosin/eventsystemlist2.img");
}
}
getroottable()["LenheartFuncTab"].rawset("HorseGuessingFuncN", Lenheart_HorseGuessing_Fun);

View File

@@ -0,0 +1,58 @@
/*
文件名:HorseGuessing_Guide.nut
路径:Project/HorseGuessing/HorseGuessing_Guide.nut
创建日期:2024-09-25 20:50
文件用途:骑士马战指引窗口
*/
class HorseGuessing_GuideC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
//不是窗口
// NoWindow = true;
//是否可见
// Visible = false;
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
function RegisterWidget() {}
//绘制主界面
function DrawMain(obj) {
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 0, X, Y);
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X - 7, Y - 50);
if (Parent && Parent.Visible && Parent.PageSelectM == 0) {
Visible = true;
X = Parent.X + 7;
Y = Parent.Y + 50;
} else {
Visible = false;
}
}
//因为要重载LenheartNewUI_Windows的构造函数
function ResetFocus() {
}
}
getroottable().rawdelete("HorseGuessing_Obj");

View File

@@ -0,0 +1,120 @@
/*
文件名:HorseGuessing_KnightInfo.nut
路径:Project/HorseGuessing/HorseGuessing_KnightInfo.nut
创建日期:2024-09-25 21:11
文件用途:骑士信息
*/
class HorseGuessing_KnightInfoC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
//不是窗口
// NoWindow = true;
//是否可见
// Visible = false;
//输入框
InputObject = null;
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
function RegisterWidget() {
//下注按钮
local BetButton = LenheartNewUI_BaseButton(54, 654, 129, 33, "interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 22);
BetButton.OnClickSound = "BUTTON_01";
BetButton.OnClick = function() {
local T = {
op = 20055005,
code = Parent.NowSelectRider,
num = InputObject.str,
}
SendPackEx(T);
}.bindenv(this);
Childrens.append(BetButton);
InputObject = LenheartNewUI_BaseInput(80, 564, 76, 20);
AddChild(InputObject);
}
//绘制主界面
function DrawMain(obj) {
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 1, X, Y);
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", 50, X + 7, Y + 12);
//DrawParent.RiderInfo
T_DrawDynamicAni(obj, "common/horseguessing/knight" + Parent.NowSelectRider + ".ani", X + 2, Y + 130, "HorseGuessingRiderAnimotion" + Parent.NowSelectRider);
T_DrawDynamicAni(obj, "common/horseguessing/knightinfoeffect.ani", X - 1, Y - 9, "HorseGuessingRiderAnimotionEff");
//绘制名字
local RiderNameStr = Parent.RiderName[Parent.NowSelectRider];
L_sq_DrawCode(RiderNameStr, X + 111 - (LenheartTextClass.GetStringLength(RiderNameStr) / 2), Y + 116 + 18 + 146 + 3, sq_RGBA(255, 255, 255, 250), 0, 1);
//绘制下注道具
DrawItemBase(X + 74, Y + 320, Parent.BetItem, 1);
//骑手胜率信息
if (Parent.RiderInfo && Parent.RiderInfo.len() >= 5) {
L_sq_DrawCode("获胜 : " + Parent.RiderInfo[2] + "次", X + 25 + 5, Y + 56 + 17, sq_RGBA(255, 255, 255, 250), 0, 1);
L_sq_DrawCode(Parent.RiderInfo[0] + "胜" + Parent.RiderInfo[1] + "败", X + 25 + 5, Y + 56 + 17 + 19, sq_RGBA(255, 255, 255, 250), 0, 1);
local WinRate = 0;
if (Parent.RiderInfo[0] + Parent.RiderInfo[1] != 0)
WinRate = ((Parent.RiderInfo[0].tofloat() / (Parent.RiderInfo[0] + Parent.RiderInfo[1]).tofloat()) * 100.0).tointeger();
L_sq_DrawCode("胜率 : " + WinRate + "%", X + 25 + 5, Y + 56 + 17 + 19 + 15, sq_RGBA(255, 255, 255, 250), 0, 1);
if (Parent.RiderInfo[3] != 0 && Parent.RiderInfo[4] != 0) {
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", Parent.RiderInfo[3], X + 25 + 5 + 152, Y + 62);
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_info_window.img", Parent.RiderInfo[4], X + 25 + 5 + 152, Y + 62 + 36);
}
}
//绘制剩余道具数量
if (Parent.ResidueCoin != null) {
L_sq_DrawCode(Parent.ResidueCoin.tostring(), X + 128, Y + 386, sq_RGBA(255, 255, 255, 250), 0, 1);
}
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X - 7, Y - 210);
if (Parent && Parent.Visible && Parent.PageSelectM == 1) {
Visible = true;
X = Parent.X + 7;
Y = Parent.Y + 50;
} else {
Visible = false;
}
//判断如果输入的金额大于自身有的金额
if (InputObject.str.len() > 0 && InputObject.str.tointeger() > Parent.ResidueCoin) {
InputObject.SetStr(Parent.ResidueCoin.tostring());
}
}
//因为要重载LenheartNewUI_Windows的构造函数
function ResetFocus() {
}
}
getroottable().rawdelete("HorseGuessing_Obj");

View File

@@ -58,6 +58,15 @@ class HudUiC extends LenheartNewUI_Windows {
//城镇名称
L_sq_WA(0x004CA27C, 850);
//城镇过场Tips背景
L_sq_WA(0x004580FD, 400 + 133);
//城镇过场Tips文本
L_sq_WA(0x004581DD, 400 + 133);
//头顶滚动公告
L_sq_WAB(0x11FA640, 0xC3);
//物品栏
for (local i = 0; i< 6; i++) {
@@ -120,8 +129,8 @@ class HudUiC extends LenheartNewUI_Windows {
L_sq_WA(5006965, -5000); //MP文字标识 Y轴
//BUFF图标 X在C++Hook中处理
L_sq_WAB(0x4c8bf5, 534); //Buff图标Y
L_sq_WAB(0x4bf55a, 534); //Buff图标文字标识Y
L_sq_WAB(0x4c8bf5, 542); //Buff图标Y
L_sq_WAB(0x4bf55a, 542); //Buff图标文字标识Y
//技能变更类型
local SkillChanageA = L_sq_RA(0x01ADE0CC) + 0x124;
@@ -558,7 +567,18 @@ class HudUiC extends LenheartNewUI_Windows {
//绘制主界面
function DrawMain(obj) {
//绘制背景
L_sq_DrawImg("interface2/hud/hud.img", 0, 0, 526);
L_sq_DrawImg("interface2/hud/lenheartaddhud.img", 0, 347, 526);
//绘制框
for (local i = 0; i< 6; i++) {
//消耗品
L_sq_DrawImg("interface2/hud/hud.img", 200, 134 + (i * 31), 567);
//上排技能
L_sq_DrawImg("interface2/hud/hud.img", 201, 431 + (i * 31), 531);
L_sq_DrawImg("interface2/hud/hud.img", 201, 431 + (i * 31), 562);
}
//绘制疲劳底框
L_sq_DrawImg("interface2/hud/hud.img", 230, 774, 592);
//绘制血球蓝球
DrawBall(obj);
@@ -577,6 +597,7 @@ class HudUiC extends LenheartNewUI_Windows {
//绘制活动图标背景槽
DrawEventBackground(obj);
}
function Show(obj) {

View File

@@ -125,6 +125,7 @@ function Sq_DrawMiniMapUI(obj) {
getroottable().rawdelete("RepairWorldMap_Obj");
function Lenheart_RepairWorldMap_Fun(obj) {
return;
local RootTab = getroottable();
if (!RootTab.rawin("RepairWorldMap_Obj")) {
RootTab.rawset("RepairWorldMap_Obj", LenheartNewUI_CreateWindow(RepairWorldMapC, "世界地图修补", 230, 0, 30, 30, 0));

View File

@@ -50,7 +50,12 @@ class Tuguan_NewC extends LenheartNewUI_Windows {
State = 2;
}
BoxWindowName = Rindro_ItemInfoObject[BoxId].Name;
//读取物品名称
local ItemObject = L_sq_GetItem(BoxId);
local NamePointer = L_sq_RA(ItemObject + 0x20);
local Name = NativePointer(L_sq_I2P(NamePointer)).readUnicodeString();
BoxWindowName = Name;
Visible = true;
//初始化完成
InitState = true;
@@ -201,7 +206,7 @@ class Tuguan_NewC extends LenheartNewUI_Windows {
local ItemId = RewardObj[i][z]["itemid"];
local ItemCount = RewardObj[i][z]["num"];
//绘制物品
L_Sq_DrawItem((X - 195) + 198 + 30 + 9 + ((ofs % 4) * 86) + (z * 34) + 3, Y + 62 + 9 + ((ofs / 4) * 50) + 3, ItemId, ItemCount, 0, 0, 0);
DrawItemEx((X - 195) + 198 + 30 + 9 + ((ofs % 4) * 86) + (z * 34) + 3, Y + 62 + 9 + ((ofs / 4) * 50) + 3, ItemId, ItemCount);
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, (X - 195) + 198 + 30 + 9 + ((ofs % 4) * 86) + (z * 34) + 3, Y + 62 + 9 + ((ofs / 4) * 50) + 3, 24, 24)) {
ItemInfoDrawS = {};
ItemInfoDrawS.X <- (X - 195) + 198 + 30 + 9 + ((ofs % 4) * 86) + (z * 34) + 3;