测试超时空

This commit is contained in:
Lenheart 2026-01-09 23:23:07 +08:00
parent 0d3e7994bc
commit e61fdb1cea
20 changed files with 45 additions and 3252 deletions

View File

@ -1,190 +0,0 @@
/*
文件名:FiendFightLogic.nut
路径:Plugins/Fiendwar/FiendFightLogic.nut
创建日期:2024-05-27 19:18
文件用途:超时空战斗逻辑
*/
class FiendFightLogicC {
//进入BOSS房间发包告诉服务端的Flag
IsBossActiveMsgPackFlag = false;
constructor() {
//注册回调包
Pack_Control.rawset(20063030, SetCharacterDamageRate.bindenv(this));
Pack_Control.rawset(20063600, CreatePassiveObjectById.bindenv(this));
Pack_Control.rawset(20063602, GetBossHp.bindenv(this));
Pack_Control.rawset(20063604, SetBossHp.bindenv(this));
Pack_Control.rawset(20063608, CheckMonsterIsV.bindenv(this));
}
//检测怪物是否存在
function CheckMonsterIsV(Chunk) {
if (!IsBossActiveMsgPackFlag) return;
local Jso = Json.Decode(Chunk);
local Idx = Jso.id;
local ObjectBuf = GetObjectByIndex(Idx);
if (!ObjectBuf) {
local T = {
op = 20063609,
id = Idx
}
Rindro_BaseToolClass.SendPack(T);
}
}
//设置BOSS生命值
function SetBossHp(Chunk) {
if (!IsBossActiveMsgPackFlag) return;
local Jso = Json.Decode(Chunk);
local BossObject = GetObjectByIndex(210994);
//没找到BOSS
if (!BossObject) {
local T = {
op = 20063605,
}
Rindro_BaseToolClass.SendPack(T);
} else {
BossObject.setHp(Jso.hp, null, true);
}
}
//获取BOSS生命值
function GetBossHp(Chunk) {
if (!IsBossActiveMsgPackFlag) return;
local BossObject = GetObjectByIndex(210994);
local curthp = -1;
local rmaxhp = -1;
//找到BOSS
if (BossObject) {
curthp = BossObject.getHp();
rmaxhp = BossObject.getHpMax();
}
local T = {
op = 20063603,
hp = curthp,
maxhp = rmaxhp
}
Rindro_BaseToolClass.SendPack(T);
}
//设置伤害值回调
function SetCharacterDamageRate(Chunk) {
local Jso = Json.Decode(Chunk);
local Rate = Jso.damageMarkup.tofloat() / 100.0;
//超时空伤害设置
if (getroottable().rawin("LenheartFiendModuleDamageRate")) {
getroottable()["LenheartFiendModuleDamageRate"] = Rate;
}
}
//召唤PassiveObject回调
function CreatePassiveObjectById(Chunk) {
local Jso = Json.Decode(Chunk);
local ObjectId = Jso.id;
local ZPos = Jso.z;
//确保在BOSS房间才召唤免得游戏崩溃
if (IsBossActiveMsgPackFlag) {
local obj = sq_GetMyMasterCharacter();
obj = sq_GetCNRDObjectToActiveObject(obj);
// obj.sq_SendCreatePassiveObjectPacket(ObjectId, 0, 99999990, 0, ZPos);
// sq_SendCreatePassiveObjectPacketFromPassivePos(obj, ObjectId, 0, 99999990, 0, ZPos);
sq_SendCreatePassiveObjectPacket(obj, ObjectId, 0, 99999990, 0, ZPos, obj.getDirection());
local Jso = {
op = 20063601,
id = ObjectId,
z = ZPos
}
Rindro_BaseToolClass.SendPack(Jso);
}
}
//获取指定对象
function GetObjectByIndex(Idx) {
local obj = sq_GetMyMasterCharacter();
obj = sq_GetCNRDObjectToActiveObject(obj);
local objectManager = obj.getObjectManager();
local CollisionObjectNumber = objectManager.getCollisionObjectNumber();
for (local i = 0; i< CollisionObjectNumber; i += 1) {
local object = objectManager.getCollisionObject(i);
if (object && object.isObjectType(OBJECTTYPE_ACTIVE)) {
local activeObj = sq_GetCNRDObjectToActiveObject(object);
local MonsterIndex = activeObj.getCollisionObjectIndex();
if (MonsterIndex == Idx) {
return activeObj;
}
}
}
return null;
}
//获取地图ID
function GetMapIndex() {
local stage = sq_GetGlobaludpModuleStage();
local MapIndex = sq_GetMapIndex(stage);
return MapIndex;
}
//检测是否在超时空BOSS图
function CheckBossIsActive() {
//如果在副本中
if (sq_GetCurrentModuleType() == 3) {
//在BOSS地图
if (GetMapIndex() == 24151) {
if (!IsBossActiveMsgPackFlag) {
IsBossActiveMsgPackFlag = true;
local Jso = {
op = 20063801
}
Rindro_BaseToolClass.SendPack(Jso);
return;
}
}
}
//退出副本以后设置flag 还原
else {
IsBossActiveMsgPackFlag = false;
}
}
//怪物死亡回调包
function MonsterDieCallBack(obj) {
//遍历怪物死亡
local objectManager = obj.getObjectManager();
local CollisionObjectNumber = objectManager.getCollisionObjectNumber();
for (local i = 0; i< CollisionObjectNumber; i += 1) {
local object = objectManager.getCollisionObject(i);
if (object && object.isObjectType(OBJECTTYPE_ACTIVE) && obj.isEnemy(object) && object.isInDamagableState(obj) && object.getTeam() != 0) {
local activeObj = sq_GetCNRDObjectToActiveObject(object);
if (activeObj.isDead()) {
local MonsterIndex = activeObj.getCollisionObjectIndex();
if (MonsterIndex >= 210994 && MonsterIndex <= 210999) {
local Jso = {
op = 20063503,
monster_id = MonsterIndex
}
Rindro_BaseToolClass.SendPack(Jso);
}
}
}
}
}
function Proc(obj) {
//如果进入BOSS房间需要告诉服务端
CheckBossIsActive();
//如果在和BOSS干架 要检测所有怪物的死亡
if (IsBossActiveMsgPackFlag) {
//怪物死亡检测
MonsterDieCallBack(obj);
}
}
}

View File

@ -1,328 +0,0 @@
/*
文件名:FiendReward.nut
路径:Plugins/Fiendwar/FiendReward.nut
创建日期:2024-05-13 10:03
文件用途:超时空奖励
*/
class FiendRewardC extends LenheartNewUI_Windows {
//调试模式
DeBugMode = true;
//默认显示状态需要是关闭 因为要通过收包打开
Visible = false;
//奖励信息
RewardInfo = null;
//奖励动画开始时间
AniStartFlag = null;
//收到奖励包
function RewardCallBack(Chunk) {
// Sout("收到请求加入包 : \n\n\n %L", Chunk);
local Jso = Json.Decode(Chunk);
RewardInfo = Jso;
Visible = true;
AniStartFlag = Clock();
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
Pack_Control.rawset(20063026, RewardCallBack.bindenv(this));
local T = {
op = 20063061,
}
Rindro_BaseToolClass.SendPackEx(T);
}
function RegisterWidget() {
// //关闭按钮
// local CloseButton = LenheartNewUI_BaseButton(278, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
// CloseButton.OnClick = function() {
// this.Visible = false;
// }.bindenv(this);
// Childrens.append(CloseButton);
}
AniName_Flag = 0;
AniActFlag = 0;
Ani_Title = null;
Ani_Time = null;
Ani_Time2 = null;
Ani_Card_1 = null;
Ani_Card_2 = null;
Ani_Card_Open_1 = null;
Ani_Card_Open_2 = null;
AniTimeStartFlag = 0;
AniRewardMyStartFlag = 0;
Ani_Card_All_1 = null;
Ani_Card_All_Open = null;
Ani_Card_All_Open_Gold = null;
AniRewardReloadFlag = 0;
AlphaValue = 0.0;
//绘制主界面
function DrawMain(obj) {
if (AniStartFlag) {
local ExiTime = Clock() - AniStartFlag;
//绘制背景
L_sq_DrawImg("interface2/fiendwar_kr/reward/fiend_reward.img", 0, X + 0, Y + 0, 1, sq_RGBA(255, 255, 255, 150), 1.0, 1.0);
//标题一阶段
Ani_Title = Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/reward_title_00.ani", X + 188, Y + 30, "超时空奖励标题1" + AniName_Flag);
if (sq_IsEnd(Ani_Title)) {
if (AniActFlag == 0) AniActFlag = 1;
}
//时间二阶段
if (AniActFlag >= 1) {
Ani_Time = Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/reward_time.ani", X + 55, Y + 120, "超时空奖励标题2" + AniName_Flag);
if (sq_IsEnd(Ani_Time)) {
if (AniActFlag == 1) AniActFlag = 2;
}
}
//时间三阶段
if (AniActFlag >= 2) {
Ani_Time2 = Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/reward_rank_00.ani", X + 570, Y + 90, "超时空奖励标题3" + AniName_Flag);
if (sq_IsEnd(Ani_Time2)) {
//记录一下时间
if (AniActFlag == 2) {
AniTimeStartFlag = Clock();
AniActFlag = 3;
}
}
}
//时间四阶段
if (AniActFlag >= 3) {
local al = sq_GetUniformVelocity(0, 100, Clock() - AniTimeStartFlag, 1500);
AlphaValue = al.tofloat() / 100.0;
local RealTime = RewardInfo.time;
local seconds = RealTime / 10;
local hours = seconds / 3600;
local minutes = seconds / 60;
seconds %= 60;
hours = format("%02d", hours);
seconds = format("%02d", seconds).slice(-2);
minutes = format("%02d", minutes).slice(-2);
local Offset = -6;
DrawImg("hud/fiendwartime.img", hours.slice(0, 1).tointeger(), X + 240 + Offset, Y + 139);
DrawImg("hud/fiendwartime.img", hours.slice(1).tointeger(), X + 260 + Offset, Y + 139);
DrawImg("hud/fiendwartime.img", 10, X + 286 + Offset, Y + 139);
Offset += 60;
DrawImg("hud/fiendwartime.img", minutes.slice(0, 1).tointeger(), X + 240 + Offset, Y + 139);
DrawImg("hud/fiendwartime.img", minutes.slice(1).tointeger(), X + 260 + Offset, Y + 139);
DrawImg("hud/fiendwartime.img", 10, X + 286 + Offset, Y + 139);
Offset += 60;
DrawImg("hud/fiendwartime.img", seconds.slice(0, 1).tointeger(), X + 240 + Offset, Y + 139);
DrawImg("hud/fiendwartime.img", seconds.slice(1).tointeger(), X + 260 + Offset, Y + 139);
Offset += 160;
local DieCount = RewardInfo.deathsNum;
local DrawDieStr = format("%02d", DieCount);
DrawImg("hud/fiendwartime.img", DrawDieStr.slice(0, 1).tointeger(), X + 240 + Offset, Y + 139);
DrawImg("hud/fiendwartime.img", DrawDieStr.slice(1).tointeger(), X + 260 + Offset, Y + 139);
if (al >= 100) {
if (AniActFlag == 3) {
AniActFlag = 4;
}
}
}
//卡牌一阶段
if (AniActFlag == 4) {
Ani_Card_1 = T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/cardspread_01.ani", X + 0, Y + 30, "超时空奖励个人第一张卡牌" + AniName_Flag);
Ani_Card_2 = T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/cardspread_02.ani", X + 0, Y + 30, "超时空奖励个人第二张卡牌" + AniName_Flag);
if (sq_IsEnd(Ani_Card_1) && sq_IsEnd(Ani_Card_2)) {
if (AniActFlag == 4) AniActFlag = 5;
}
}
//卡牌二阶段
if (AniActFlag == 5) {
Ani_Card_Open_1 = T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/reward_card_open.ani", X + 218, Y + 280, "超时空奖励个人第一张卡牌打开" + AniName_Flag);
Ani_Card_Open_2 = T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/reward_card_open.ani", X + 406, Y + 280, "超时空奖励个人第二张卡牌打开" + AniName_Flag);
if (sq_IsEnd(Ani_Card_Open_1) && sq_IsEnd(Ani_Card_Open_2)) {
if (AniActFlag == 5) {
AniRewardMyStartFlag = Clock();
AniActFlag = 6;
}
}
}
//卡牌三阶段
if (AniActFlag == 6) {
local BackGroundFlag = 0;
if (RewardInfo.rewards[0].item == -1) BackGroundFlag = 1;
DrawImg("interface2/fiendwar_kr/reward/fiend_reward.img", 23 + BackGroundFlag, X + 218, Y + 280);
DrawImg("interface2/fiendwar_kr/reward/fiend_reward.img", 23 + BackGroundFlag, X + 406, Y + 280);
DrawItemEx(X + 290, Y + 342, RewardInfo.rewards[0].item, RewardInfo.rewards[0].num, RewardInfo.pid, 0, -10);
DrawItemEx(X + 478, Y + 342, RewardInfo.rewards[0].item2, RewardInfo.rewards[0].num2, RewardInfo.pid, 0, -10);
if ((Clock() - AniRewardMyStartFlag) >= 1500) {
AniActFlag = 7;
}
}
//卡牌四阶段
if (AniActFlag == 7) {
Ani_Card_All_1 = T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/cardspread_00.ani", X + 0, Y + 0, "二阶段翻牌未翻开" + AniName_Flag);
if (sq_IsEnd(Ani_Card_All_1)) {
if (AniActFlag == 7) {
Ani_Card_All_Open = array(8);
Ani_Card_All_Open_Gold = array(8);
AniActFlag = 8;
}
}
}
//卡牌五阶段
if (AniActFlag == 8) {
for (local i = 0; i< 8; i++) {
Ani_Card_All_Open[i] = T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/reward_card_open.ani", X + 30 + ((i % 4) * 188), Y + 250 + ((i / 4) * 138), "超时空奖励团队卡牌打开" + "i" + AniName_Flag);
if (i<(RewardInfo.rewards2.len() - 1) && RewardInfo.rewards2[i][0].grade == 1) {
Ani_Card_All_Open_Gold[i] = T_DrawDynamicAni(obj, "common/fiendwar_kr/reward/gold_nomal.ani", X + 30 + ((i % 4) * 188), Y + 250 + ((i / 4) * 138), "超时空奖励团队卡牌打开金牌" + "i" + AniName_Flag);
}
}
if (sq_IsEnd(Ani_Card_All_Open[7])) {
if (AniActFlag == 8) {
AniActFlag = 9;
AniRewardReloadFlag = Clock();
}
}
}
//卡牌六阶段
if (AniActFlag == 9) {
for (local i = 0; i< 8; i++) {
DrawRewardCard(i);
}
//重置
if (Clock() - AniRewardReloadFlag >= 2000) {
AniActFlag = 0;
Ani_Title = null;
Ani_Time = null;
Ani_Time2 = null;
Ani_Card_1 = null;
Ani_Card_2 = null;
Ani_Card_Open_1 = null;
Ani_Card_Open_2 = null;
AniTimeStartFlag = 0;
AniRewardMyStartFlag = 0;
Ani_Card_All_1 = null;
Ani_Card_All_Open = null;
Ani_Card_All_Open_Gold = null;
AniRewardReloadFlag = 0;
AlphaValue = 0.0;
RewardInfo = null;
AniStartFlag = null;
AniName_Flag += 1;
CloseWindow();
}
}
}
}
function DrawRewardCard(Index) {
if (Index > (RewardInfo.rewards2.len() - 1)) {
DrawImg("interface2/fiendwar_kr/reward/fiend_reward.img", 24, X + 29 + ((Index % 4) * 189), Y + 250 + ((Index / 4) * 138));
return;
}
local Info = RewardInfo.rewards2[Index][0];
local BackGroundFlag = 0;
if (Info.count == 0) {
BackGroundFlag = 1;
DrawImg("interface2/fiendwar_kr/reward/fiend_reward.img", 23 + BackGroundFlag, X + 29 + ((Index % 4) * 189), Y + 250 + ((Index / 4) * 138));
DrawItemEx(X + 29 + ((Index % 4) * 189) + 72, Y + 250 + ((Index / 4) * 138) + 62, Info.item, Info.num, Index, 0, -10);
}
if (Info.count == 1) {
if (Info.grade == 1)(BackGroundFlag = -5)
DrawImg("interface2/fiendwar_kr/reward/fiend_reward.img", 23 + BackGroundFlag, X + 29 + ((Index % 4) * 189), Y + 250 + ((Index / 4) * 138));
DrawItemEx(X + 29 + ((Index % 4) * 189) + 72, Y + 250 + ((Index / 4) * 138) + 62, Info.item, Info.num, Index, 0, -10);
} else if (Info.count == 2) {
if (Info.grade == 1)(BackGroundFlag = -5)
DrawImg("interface2/fiendwar_kr/reward/fiend_reward.img", 23 + BackGroundFlag, X + 29 + ((Index % 4) * 189), Y + 250 + ((Index / 4) * 138));
DrawItemEx(X + 29 + ((Index % 4) * 189) + 72 - 20, Y + 250 + ((Index / 4) * 138) + 62, Info.item, Info.num, Index, 999999, 0);
DrawItemEx(X + 29 + ((Index % 4) * 189) + 72 + 20, Y + 250 + ((Index / 4) * 138) + 62, Info.item2, Info.num2, Index, -20, -10);
}
}
ItemInfoDrawS = null;
//绘制道具相信信息
ItemObject = null;
//绘制道具带道具信息
function DrawItemEx(X, Y, Id, Count, Pid, Flag, Flag2) {
try {
if (Flag != 999999) {
local PartyMasterIcon = FiendwarTotal.GetInstance().MyTeam.MembersList[Pid];
local XOffset = -77 + Flag;
local YOffset = -31 + Flag2;
sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
//绘制队长头像
foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
local AXpos = AvatarObj.D[0] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12;
local AYpos = AvatarObj.D[1] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset;
setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
releaseClip(); //裁切结束
}
local DrawName = PartyMasterIcon.InfoObj.Name;
//绘制名字
L_sq_DrawCode(DrawName, X + XOffset + 100 - LenheartTextClass.GetStringLength(DrawName) / 2, Y + YOffset + 4, sq_RGBA(247, 214, 90, 250), 0, 1);
}
if (Id != -1) {
local Rarity = AllItemInfoObject[Id].Rarity;
L_sq_DrawImg("interface2/fiendwar_kr/reward/fiend_reward.img", 5 + Rarity, X - 3, Y - 3);
L_Sq_DrawItem(X, Y, Id, Count, 0, 0, 0);
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X, Y, 24, 24)) {
ItemInfoDrawS = {};
ItemInfoDrawS.X <- X;
ItemInfoDrawS.Y <- Y;
ItemInfoDrawS.ItemId <- Id;
}
}
} catch (exception) {
}
}
//绘制悬停
function DrawItemInfoF(obj) {
if (ItemInfoDrawS) {
if (!ItemObject) {
local ItemId = ItemInfoDrawS.ItemId;
if (AllItemInfoObject.rawin(ItemId)) {
ItemObject = ItemInfoClass(AllItemInfoObject[ItemId]);
}
}
ItemObject.Show(ItemInfoDrawS.X, ItemInfoDrawS.Y - ItemObject.PageLength);
} else {
ItemObject = null;
}
}
function DrawImg(Path, Index, XPos, YPos) {
L_sq_DrawImg(Path, Index, XPos, YPos, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
function Show(obj) {
ItemInfoDrawS = null;
DrawMain(obj);
// DrawItemInfoF(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
}

View File

@ -1,188 +0,0 @@
/*
文件名:Fiendwar.nut
路径:Project/Fiendwar/Fiendwar.nut
创建日期:2024-11-16 20:19
文件用途:
*/
dofile("sqr/Project/Fiendwar/FiendwarHall.nut"); //大厅
dofile("sqr/Project/Fiendwar/FiendwarHallParty.nut"); //大厅的队伍
dofile("sqr/Project/Fiendwar/FiendwarPartyInfo.nut"); //攻坚队具体信息窗口
dofile("sqr/Project/Fiendwar/FiendwarPartyMemberInfo.nut"); //攻坚队具体信息中的队员信息UI
dofile("sqr/Project/Fiendwar/FiendwarPlayerInteractive.nut"); //攻坚队玩家交互
dofile("sqr/Project/Fiendwar/FiendwarPartyFormation.nut"); //攻坚队具体信息中的编队
dofile("sqr/Project/Fiendwar/FiendwarHallCreateParty.nut");
dofile("sqr/Project/Fiendwar/FiendwarHallApplyJoin.nut");
dofile("sqr/Project/Fiendwar/FiendwarFightSituation.nut"); //战况表
dofile("sqr/Project/Fiendwar/FiendwarHallGoBossDgn.nut"); //前往BOSS框
dofile("sqr/Project/Fiendwar/FiendwarNoti.nut"); //超时空信息分发
dofile("sqr/Project/Fiendwar/FiendReward.nut"); //超时空奖励
dofile("sqr/Project/Fiendwar/FiendFightLogic.nut"); //战斗逻辑
class FiendwarTotal extends Rindro_BaseToolClass {
//基础配置
BaseConfig = null;
/*
town_index 城镇编号
channel_index 频道编号
*/
//我的客户端cid
MyCid = null;
//我的攻坚队ID
MyPartyId = null;
//我是否是攻坚队队长
IsCaptain = null;
//我的队伍
MyTeam = null;
//开始攻坚动画
StartAniFlag = false;
//攻坚结束时间
EndTime = null;
PackCurT = null;
//全局获取对象方法
function GetInstance() {
if (getroottable().rawin("FiendwarCObj"))
return getroottable()["FiendwarCObj"];
else {
local RootTab = getroottable();
local Cobj = FiendwarTotal();
RootTab.rawset("FiendwarCObj", Cobj);
Cobj.InitWindow();
return Cobj;
}
}
//请求基础信息配置
function GetFiendwarBase() {
local T = {
op = 20063501,
}
SendPack(T);
}
//请求掉线配置信息
function GetFiendwarDown() {
local T = {
op = 20063063,
}
SendPack(T);
}
//基础信息配置
function FiendwarBase(Chunk) {
BaseConfig = Json.Decode(Chunk);
FiendwarChannelTownLogicCallBack();
}
//团本专属频道上线城镇移动包
function FiendwarChannelTownLogicCallBack() {
if (BaseConfig.channel_index.find("20")) {
if (L_sq_GetTownIndex() != BaseConfig.town_index) {
L_sq_MoveTown(BaseConfig.town_index, 0, 474, 249);
}
} else {
//在超时空区域的 要转移回普通城镇
if (L_sq_GetTownIndex() == BaseConfig.town_index) {
L_sq_MoveTown(1, 1, 474, 249);
}
}
}
//开团Flag包
function StartFight(Chunk) {
FiendwarTotal.GetInstance().StartAniFlag = true;
}
FiendwarHallC_Window = null;
FiendwarFightSituationSwitchC_Window = null;
FiendwarNotiC_Window = null;
FiendRewardC_Window = null;
FiendFightLogicC_Object = null;
constructor() {
//获取基础配置回调包
Pack_Control.rawset(20063502, FiendwarBase.bindenv(this));
Pack_Control.rawset(20063028, StartFight.bindenv(this));
//第一次上线要重新请求一下位置信息
GetFiendwarBase();
//请求掉线配置信息
GetFiendwarDown();
}
//初始化窗口
function InitWindow() {
FiendwarHallC_Window = LenheartNewUI_CreateWindow(FiendwarHallC, "超时空攻坚队伍列表", 320, 40, 478, 434, 18);
FiendwarFightSituationSwitchC_Window = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0);
FiendwarNotiC_Window = LenheartNewUI_CreateWindow(FiendwarNotiC, "超时空攻坚队伍消息分发", 0, 0, 0, 0, 0);
FiendRewardC_Window = LenheartNewUI_CreateWindow(FiendRewardC, "超时空奖励界面", 0, 0, 800, 600, 0);
FiendFightLogicC_Object = FiendFightLogicC();
}
function ClearInfo() {
//我的客户端cid
MyCid = null;
//我的攻坚队ID
MyPartyId = null;
//我是否是攻坚队队长
IsCaptain = null;
//我的队伍
MyTeam = null;
//开始攻坚动画
StartAniFlag = false;
//攻坚结束时间
EndTime = null;
PackCurT = null;
}
function Proc(obj) {
//开始攻坚动画
if (FiendwarTotal.GetInstance().StartAniFlag) {
local Ani = Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/common/title/start_back.ani", 400, 260, "超时空开始攻坚Ani1");
if (sq_IsEnd(Ani)) {
FiendwarTotal.GetInstance().StartAniFlag = false;
sq_Rewind(Ani);
}
}
if (FiendFightLogicC_Object) FiendFightLogicC_Object.Proc(obj);
}
}
getroottable().rawdelete("FiendwarCObj");
function LenheartFiendwar(obj) {
local RootTab = getroottable();
if (!RootTab.rawin("FiendwarCObj")) {
local Cobj = FiendwarTotal();
RootTab.rawset("FiendwarCObj", Cobj);
Cobj.InitWindow();
} else {
RootTab["FiendwarCObj"].Proc(obj);
}
}
if (getroottable().rawin("LenheartTopFuncTab")) {
getroottable()["LenheartTopFuncTab"].rawset("LenheartFiendwarFunc", LenheartFiendwar);
} else {
local T = {};
T.rawset("LenheartFiendwarFunc", LenheartFiendwar);
getroottable().rawset("LenheartTopFuncTab", T);
}

View File

@ -1,696 +0,0 @@
/*
文件名:FiendwarFightSituation.nut
路径:Plugins/Fiendwar/FiendwarFightSituation.nut
创建日期:2024-04-10 21:28
文件用途:超时空攻坚战况
*/
//复选框
class Fiendwar_LenheartNewUI_SwitchButton extends LenheartNewUI_CommonUi {
//透明度
AlphaValue = 1.0;
State = 0;
ImgIndex = null;
constructor(X, Y) {
LenheartNewUI_CommonUi.constructor(X, Y, 14, 15);
}
function SyncAlpha(Value) {
AlphaValue = Value;
}
function Show(obj) {
//不可用
if (State == 8) {
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 3 : 141, X, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
} else {
//悬停
if (isLBDown) {
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
//按下
else if (isInRect) {
if (State == 0)
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 1 : 139, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
if (State == 1)
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
//普通
else {
if (State == 0)
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex : 138, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
if (State == 1)
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
}
}
}
class Fiendwar_LenheartNewUI_ProgressIndicator extends LenheartNewUI_CommonUi {
//透明度
AlphaValue = 1.0;
//宽
DWidth = null;
//控制者
Controller = 0;
//回调函数
OnChangeControl = null;
//球的偏移 因为除不尽 所以这个最好单独写
BXposOffset = 0;
constructor(X, Y, W, H) {
this.DWidth = W;
LenheartNewUI_CommonUi.constructor(X, Y, W, H);
}
function Show(obj) {
//绘制左
L_sq_DrawImg("hud/fiendwarl.img", 19, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
local OffserIndex = 0;
//绘制中
for (local i = 0; i< this.DWidth; i++) {
if (i > (Controller * this.DWidth).tointeger())
OffserIndex = 0;
else OffserIndex = 1;
L_sq_DrawImg("hud/fiendwarl.img", 21 + OffserIndex, X + 8 + i, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
//绘制右
L_sq_DrawImg("hud/fiendwarl.img", 20, X + 8 + this.DWidth, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
// local BXposOffset = 0;
// if (BaseX && EndX) BXposOffset = EndX - BaseX;
//绘制球
L_sq_DrawImg("hud/fiendwarl.img", 23, X + BXposOffset + 1, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
//按下时的基准X
BaseX = null;
EndX = null;
//鼠标左键按下回调
function OnMouseLbDown(MousePos_X, MousePos_Y) {
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X + BXposOffset + 1, Y + 1, 15, 14)) {
isLBDown = true;
if (!BaseX) BaseX = MousePos_X;
}
}
//鼠标事件回调
function OnMouseProc(Flag, MousePos_X, MousePos_Y) {
if (isLBDown && Flag == 1) {
if (MousePos_X > (X + DWidth + 8))
MousePos_X = (X + DWidth + 8);
else if (MousePos_X<(X + 8))
MousePos_X = (X + 8);
EndX = MousePos_X;
if (BaseX && EndX) {
BXposOffset = EndX - BaseX;
Controller = BXposOffset.tofloat() / DWidth.tofloat();
AlphaValue = Controller;
if (AlphaValue< 0.4) AlphaValue = 0.4;
if (OnChangeControl) OnChangeControl(Controller);
}
}
}
//鼠标左键弹起回调
function OnMouseLbUp(MousePos_X, MousePos_Y) {
isLBDown = false;
}
}
class FiendwarFightSituationC extends LenheartNewUI_Windows {
Visible = false;
//调试模式
// DeBugMode = true;
//透明度
AlphaValue = 1.0;
//简易战况表复选框
BaseSituationBtn = null;
//简易战况表是否开启
BaseSituationFlag = 0;
//雷达是否存在
RadarFlag = true;
//turret2
turret2 = true;
MonsterFace = {
m20413 = 1,
m20412 = 3,
m20411 = 4,
m20415 = 15,
m20408 = 9,
m20409 = 8,
m20405 = 5,
m20404 = 6,
m20406 = 12,
m20401 = 13,
m20402 = 10,
m20403 = 11,
};
SlotPos = [
[50, 479],
[50, 374],
[50, 270],
[140, 167],
[186, 89],
[275, 36],
[275, 141],
[411, 11],
[365, 88],
[455, 141],
[545, 36],
[141, 427],
[185, 348],
[185, 245],
[321, 271],
[411, 219],
[546, 245],
[591, 166],
[141, 530],
[276, 505],
[320, 375],
[410, 478],
[546, 504],
[456, 401],
[681, 478],
[545, 348],
[680, 374],
[725, 244],
[690, 53],
[727, 129],
]
Info = null;
PackCurT = null;
EndTime = null;
function InfoCallBack(Chunk) {
// print(Chunk);
local Jso = Json.Decode(Chunk);
Info = Jso.fightInfo.platVos;
EndTime = Jso.fightInfo.endTime;
RadarFlag = Jso.fightInfo.radar;
turret2 = Jso.fightInfo.turret2;
FiendwarTotal.GetInstance().EndTime = Jso.fightInfo.endTime;
local Pt = Clock();
PackCurT = Pt;
FiendwarTotal.GetInstance().PackCurT = Pt;
local Win = LenheartNewUI_CreateWindow(FiendwarPartyInfoC, "超时空我的队伍窗口", 430, 15, 354, 290, 18);
Win.CloseWindow();
local Win = LenheartNewUI_CreateWindow(FiendwarHallC, "超时空攻坚队伍列表", 320, 40, 478, 434, 18);
Win.CloseWindow();
}
//收到进入BOSS请求包
function GoBossCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
local Win = LenheartNewUI_CreateWindow(FiendwarHallGoBossDgnC, "超时空攻坚进入罗什", 273, 225, 270, 120, 19);
Win.Visible = true;
Win.Dark = Jso.boss1;
Win.Light = Jso.boss2;
Win.RegisterWidget();
}
PlayerGiveUpTime = null;
PlayerGiveUpFlagTime = null;
//放弃副本包
function PlayerGiveUpCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
PlayerGiveUpTime = Jso.endTime;
PlayerGiveUpFlagTime = Clock();
}
function GetInfo() {
local T = {
op = 20063053,
// teamsId = FiendwarTotal.GetInstance().MyPartyId
}
Rindro_BaseToolClass.SendPackEx(T);
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
Pack_Control.rawset(20063016, InfoCallBack.bindenv(this));
Pack_Control.rawset(20063022, GoBossCallBack.bindenv(this));
Pack_Control.rawset(20063024, PlayerGiveUpCallBack.bindenv(this));
GetInfo();
}
function RegisterWidget() {
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(770, 0, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
CloseButton.OnClick = function() {
local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0);
Win.ResetFocus();
this.Visible = false;
}.bindenv(this);
Childrens.append(CloseButton);
local PIButton = Fiendwar_LenheartNewUI_ProgressIndicator(264, 11, 80, 10);
PIButton.Controller = 1.0;
PIButton.BaseX = 273;
PIButton.EndX = 352;
PIButton.BXposOffset = 79;
PIButton.OnChangeControl = function(Controller) {
AlphaValue = Controller;
if (AlphaValue< 0.4) AlphaValue = 0.4;
}.bindenv(this);
Childrens.append(PIButton);
//简易战况表复选框
BaseSituationBtn = Fiendwar_LenheartNewUI_SwitchButton(198, 9);
BaseSituationBtn.State = 0;
BaseSituationBtn.ImgIndex = 358;
BaseSituationBtn.Width = 19;
BaseSituationBtn.Height = 19;
BaseSituationBtn.OnClick = function() {
switch (BaseSituationFlag) {
case 0:
BaseSituationFlag = 1;
break;
case 1:
BaseSituationFlag = 0;
break;
}
BaseSituationBtn.State = BaseSituationFlag;
}.bindenv(this);
AddChild(BaseSituationBtn);
}
//绘制简易动态Ani // obj -- ani路径 -- X -- Y -- ani名字
function T_DrawDynamicAni(obj, aniFileName, x, y, aniname, Alpha) {
local ani = obj.getVar().GetAnimationMap(aniname, aniFileName);
ani.setRGBA(255, 255, 255, Alpha);
sq_AnimationProc(ani);
sq_drawCurrentFrame(ani, x, y, true);
return ani;
}
function DrawParty() {
//绘制我的队伍
if (FiendwarTotal.GetInstance().MyTeam) {
local Mt = FiendwarTotal.GetInstance().MyTeam;
if (!Mt) return;
local PartyMaster;
foreach(index, PartyMasterIcon in Mt.MembersList) {
local XOffset = 0;
local YOffset = 9 + (index * 22);
DrawImg("interface2/fiendwar_kr/navigation/partyseatnumber.img", 0, X + XOffset + 10, Y + YOffset);
DrawImg("interface2/fiendwar_kr/navigation/partyseatnumber.img", PartyMasterIcon.InfoObj.TeamId, X + XOffset + 10, Y + YOffset + 1);
sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
//绘制队长头像
foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
local AXpos = AvatarObj.D[0] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12;
local AYpos = AvatarObj.D[1] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset;
setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
releaseClip(); //裁切结束
}
local RgbaValue = sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger());
if (PartyMasterIcon.InfoObj.Captain) RgbaValue = sq_RGBA(247, 214, 90, (250 * AlphaValue).tointeger());
if (PartyMasterIcon.InfoObj.Captain) DrawImg("hud/fiendwarl.img", 18, X + 42 + XOffset, Y + 1 + YOffset);
local DrawName = PartyMasterIcon.InfoObj.Name;
if (PlayerGiveUpTime && PlayerGiveUpTime[index]) {
local STime = ((PlayerGiveUpTime[index] - (Clock() - PlayerGiveUpFlagTime)) / 1000);
DrawName = "复活时间: " + STime.tostring() + "秒";
if (STime <= 0) DrawName = PartyMasterIcon.InfoObj.Name;
}
//绘制名字
L_sq_DrawCode(DrawName, X + XOffset + 58, Y + YOffset + 4, RgbaValue, 0, 1);
}
}
}
//绘制主界面
function DrawMain(obj) {
//绘制背景框
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 0, X + 7, Y);
//绘制建议进度表文字
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 71, X + 130, Y + 10);
//绘制透明度文字
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 72, X + 220, Y + 10);
DrawParty();
//Boss底层特效
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/boss_effect.ani", X + 720, Y + 110, "超时空战况表背景图BOSS区域", (250 * AlphaValue).tointeger());
//下路特效
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linebottom.ani", X + 7, Y, "超时空战况表背景图下路特效B");
//中路特效
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linemiddle.ani", X + 7, Y, "超时空战况表背景图中路特效B");
//上路特效
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linetop.ani", X + 7, Y, "超时空战况表背景图上路特效B");
//绘制地图
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 64, X + 7, Y + 1);
if (Info) {
foreach(Index, Value in Info) {
if (Value.id != -1) {
//裁切比例
local SliceRate = 0;
if (Value.e && Value.s) {
SliceRate = (Value.e.tofloat() - (Clock().tofloat() - PackCurT.tofloat())) / Value.s.tofloat();
}
//BOSS暗
if (Value.id == 28) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 60, X - 68 + SlotPos[Value.id][0], Y - 56 + SlotPos[Value.id][1]);
}
//BOSS光
else if (Value.id == 29) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 61, X - 68 + SlotPos[Value.id][0], Y - 56 + SlotPos[Value.id][1]);
}
//兵营
else if (Value.id == 10 || Value.id == 17 || Value.id == 27) {
local Offset = 0;
if (!Value.m) Offset = 7;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 5 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
//复活
if (!Value.m) {
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 55, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
}
//生成小怪
else {
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 54, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
}
}
//前哨
else if (Value.id == 7 || Value.id == 15 || Value.id == 24) {
local Offset = 0;
if (!Value.m) Offset = 7;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 4 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 54, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
} else if (Value.id == 6 || Value.id == 23) {
//雷达
if (Value.id == 6) {
local Offset = 0;
if (!Value.m) Offset = 7;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 2 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
}
//炮塔
else if (Value.id == 23) {
local Offset = 0;
if (!Value.m) Offset = 7;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 3 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
}
}
//基地和出发点一定有框
if (Value.id == 0 || Value.id == 1 || Value.id == 11 || Value.id == 18) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
//基地两边都画
if (Value.id == 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X - 30 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X + 33 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
}
} else {
//有怪物
if (Value.m || Value.n) {
if (Value.m) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 27, X + 36 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
//如果不是这些 那就是移动怪 并且活着
if (Value.id != 10 && Value.id != 17 && Value.id != 27 && Value.id != 28 && Value.id != 29 && Value.id != 7 && Value.id != 15 && Value.id != 24 && Value.id != 6 && Value.id != 23 && !Value.n) {
//没人打
if (Value.u.len()< 1) {
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 56, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(52, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
}
//战斗中
else {
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 53, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(49, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
}
}
} else if (Value.n) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 59, X + 36 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
}
DrawImg("interface2/fiendwar_kr/navigation/monsterface.img", 14, X + 37 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 98, X + 38 + SlotPos[Value.id][0], Y + 37 + SlotPos[Value.id][1]);
}
}
//如果有玩家
if (Value.u.len() >= 1) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X - 30 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
//说明有战斗
if (Value.m) {
//战斗特效
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/hexagon_ef_red.ani", X - 32 + SlotPos[Value.id][0], Y - 25 + SlotPos[Value.id][1], "超时空战况表战斗方格", (250 * AlphaValue).tointeger());
} else {
//TODO 这里判断有没有商人 没有商人画绿色 有画黄色
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/hexagon_ef_green.ani", X - 32 + SlotPos[Value.id][0], Y - 25 + SlotPos[Value.id][1], "超时空战况表安全方格", (250 * AlphaValue).tointeger());
}
//绘制队伍编号
foreach(index, pos in Value.u) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 28 + pos, X - 24 + SlotPos[Value.id][0], Y + (index * 11) + 2 + SlotPos[Value.id][1]);
}
}
//雷达死完要绘制怪物头像
if (!RadarFlag) {
if (Value.m || Value.n) {
local ImgIndex = 0;
if (Value.m && MonsterFace.rawin("m" + Value.m)) ImgIndex = MonsterFace["m" + Value.m];
DrawImg("interface2/fiendwar_kr/navigation/monsterface.img", ImgIndex, X + 37 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
}
}
}
}
}
DrawFightTime(obj);
}
function DrawImg(Path, Index, XPos, YPos) {
L_sq_DrawImg(Path, Index, XPos, YPos, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
function DrawProgress(Index, SliceRate, X, Y) {
if (!turret2) return;
if (RadarFlag) SliceRate = 1.0;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 48, X, Y);
setClip(X, Y, X + (SliceRate * 61.0).tointeger(), Y + 3); //开始裁切
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", Index, X, Y);
releaseClip(); //裁切结束
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//攻坚时间
function DrawFightTime(obj) {
L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 47, X + 576, Y - 9);
if (EndTime) {
local RealTime = EndTime - (Clock() - PackCurT);
local seconds = RealTime / 1000;
local hours = seconds / 3600;
local minutes = seconds / 60;
seconds %= 60;
hours = format("%02d", hours);
seconds = format("%02d", seconds).slice(-2);
minutes = format("%02d", minutes).slice(-2);
local Offset = 0;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(1).tointeger(), X + 669 + Offset, Y + 2);
Offset += 38;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(1).tointeger(), X + 669 + Offset, Y + 2);
Offset += 38;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(1).tointeger(), X + 669 + Offset, Y + 2);
}
}
MainButton = null;
//逻辑入口
function Proc(obj) {
//在基地
if (L_sq_GetRegionIndex() == 2) DrawParty();
if (getroottable().rawin("FiendwarTotal") && FiendwarTotal.GetInstance().EndTime) {
DrawFightTime(obj);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 13, X + 770, Y);
}
// //界面未打开
// if (!this.Visible) {
// //在甲板
// if (FiendwarTotal.GetInstance().BaseConfig && FiendwarTotal.GetInstance().BaseConfig.channel_index.find("20") && L_sq_GetTownIndex() == FiendwarTotal.GetInstance().BaseConfig.town_index && L_sq_GetRegionIndex() >= 1) {
// if (!MainButton) {
// MainButton = LenheartBaseButton(X + 770, Y, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
// } else {
// MainButton.Show();
// if (MainButton.isLBActive()) {
// this.Visible = true;
// GetInfo();
// }
// }
// }
// }
LenheartNewUI_Windows.SyncPos(X, Y);
}
}
/*
文件名:FiendwarHallCreateParty.nut
路径:Plugins/Fiendwar/FiendwarHallCreateParty.nut
创建日期:2024-03-18 13:20
文件用途:
*/
class FiendwarFightSituationSwitchC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
//不要窗口模式
NoWindow = true;
function GetInfo() {
local T = {
op = 20063053,
// teamsId = FiendwarTotal.GetInstance().MyPartyId
}
Rindro_BaseToolClass.SendPackEx(T);
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(0, 0, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
CloseButton.OnClick = function() {
local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationC, "超时空攻坚战况表", 0, 8, 800, 600, 0);
Win.Visible = true;
Win.ResetFocus();
GetInfo();
}.bindenv(this);
AddChild(CloseButton);
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
//绘制主界面
function DrawMain(obj) {
if (FiendwarTotal.GetInstance().EndTime)
DrawFightTime(obj);
}
//攻坚时间
function DrawFightTime(obj) {
L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 47, X + 576, Y - 9);
if (FiendwarTotal.GetInstance().EndTime) {
local RealTime = FiendwarTotal.GetInstance().EndTime - (Clock() - FiendwarTotal.GetInstance().PackCurT);
local seconds = RealTime / 1000;
local hours = seconds / 3600;
local minutes = seconds / 60;
seconds %= 60;
hours = format("%02d", hours);
seconds = format("%02d", seconds).slice(-2);
minutes = format("%02d", minutes).slice(-2);
local Offset = 0;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(1).tointeger(), X + 669 + Offset, Y + 2);
Offset += 38;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(1).tointeger(), X + 669 + Offset, Y + 2);
Offset += 38;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(1).tointeger(), X + 669 + Offset, Y + 2);
}
}
function CloseWindow() {
// print(1233);
// local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0);
// Win.Visible = true;
// Win.ResetFocus();
// LenheartNewUI_Windows.CloseWindow();
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
if (!FiendwarTotal.GetInstance().EndTime) {
Visible = false;
} else {
Visible = true;
}
LenheartNewUI_Windows.SyncPos(X, Y);
}
}
LenheartNewUI_CreateWindow(FiendwarFightSituationC, "超时空攻坚战况表", 0, 8, 800, 600, 0);

View File

@ -1,406 +0,0 @@
/*
文件名:FiendwarHall.nut
路径:Plugins/Fiendwar/FiendwarHall.nut
创建日期:2024-03-11 12:54
文件用途:超时空之战大厅
*/
class FiendwarHallC extends LenheartNewUI_Windows {
// DeBugMode = true;
WindowObj = null; //窗口对象
MainState = false; //主状态
X = 320;
Y = 40;
//默认显示状态需要是关闭 因为要通过按钮打开
Visible = false;
//攻坚队List
PartyList = null;
function GetInstance() {
return getroottable()["FiendwarHallCObj"];
}
//获取所有队伍回调包
function GetAllTeamCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
//清除原来的List PartyList可以直接清除 但是Childrens中的窗口需要调用底层方法清除队伍类
PartyList = [];
// this.RemoveChilds(FiendwarHallPartyC);
//遍历包构造攻坚队UI对象
foreach(TeamsSimple in Jso.TeamSimList) {
local T = {
TeamId = TeamsSimple.TeamId.tostring(),
TeamName = TeamsSimple.TeamName,
TeamPlayerCount = TeamsSimple.TeamPlayerCount,
State = TeamsSimple.State
}
local TeamBuf = FiendwarHallPartyC(T);
AddChild(TeamBuf);
PartyList.append(TeamBuf);
}
//收到刷新队伍列表包时需要将队伍窗口关闭
if ("Close" in Jso) LenheartNewUI_DestoryWindow("超时空我的队伍窗口");
// RemoveChilds(FiendwarHallPartyC, false);
}
//获取攻坚队信息回调
function GetTeamInfoCallBack(Chunk) {
// Sout("收到包 : \n %L", Chunk);
local Jso = Json.Decode(Chunk);
LenheartNewUI_DestoryWindow("超时空我的队伍窗口");
local Win = LenheartNewUI_CreateWindow(FiendwarPartyInfoC, "超时空我的队伍窗口", 430, 15, 354, 290, 18);
FiendwarTotal.GetInstance().MyTeam = Win;
Win.Visible = false;
if (!("Close" in Jso)) {
//开启队伍窗口显示
Win.Visible = true;
//设置置顶
Win.ResetFocus();
}
//清空成员对象集合
Win.MembersList = [];
//清空是否为我的队伍状态
Win.IsMyTeam = false;
//清空是否为队长状态
Win.IsCaptain = false;
//赋值队伍名称
Win.TeamName = Jso.team.TeamName;
//赋值队伍ID
Win.TeamID = Jso.team.TeamId;
//遍历Team包 用于构造队伍窗口中的每一位成员
foreach(_index, MemberObj in Jso.team.characNum) {
//说明我在这个攻坚队里
if (Jso.cid == MemberObj.CID) {
Win.IsMyTeam = true;
local Fo = FiendwarTotal.GetInstance();
//向全局类存入我的攻坚队伍ID
Fo.MyPartyId = Jso.team.TeamId;
//存入我的CID
Fo.MyCid = Jso.cid;
//说明是队长
if (Jso.cid == Jso.team.captainCid) {
Win.IsCaptain = true;
//存入我是攻坚队队长
Fo.IsCaptain = true;
}
}
local T = {
PartyId = Jso.team.TeamId, //攻坚队ID
TeamId = MemberObj.characNum + 1, //小队编号
Level = MemberObj.PlayerLevel.tostring(), //等级
Name = MemberObj.PlayerName, //名字
JobName = MemberObj.PlayerGrowTypeJob, //职业名
Job = MemberObj.PlayerJob, //职业编号
StkHasFlag = MemberObj.isPrepare, //是否拥有攻坚材料
EquVos = MemberObj.equVos, //装备List 用于显示头像
Captain = MemberObj.CaptainBool, //是否为攻坚队队长
Cid = MemberObj.CID, //Cid
OnlineState = MemberObj.onLineStart, //在线状态
ExitTime = MemberObj.exitTime, //离队时间
PlayerSession = MemberObj.PlayerSession, //玩家在世界中的Session 用于进行原生用户操作
ClearanceCount = MemberObj.ClearanceCount, //通关次数
ClearanceCountMax = Jso.ClearanceCountMax, //总通关次数
}
//通过类构造并添加队伍成员UI对象
local TeamBuf = FiendwarPartyInfoMemberC(T);
Win.AddChild(TeamBuf);
Win.MembersList.append(TeamBuf);
}
//刷新界面
Win.RegisterWidget();
//刷新自己的界面
RegisterWidget();
}
//获取所有队伍
function GetAllTeamCall() {
local Jso = {
op = 20063011
}
SendPack(Jso);
}
//退出队伍回调
function ExitPartyCallBack(Chunk) {
LenheartNewUI_DestoryWindow("超时空我的队伍窗口");
FiendwarTotal.GetInstance().ClearInfo();
local Win = LenheartNewUI_CreateWindow(FiendwarHallC, "超时空攻坚队伍列表", 320, 40, 478, 434, 18);
Win.CloseWindow();
RegisterWidget();
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
PartyList = [];
//注册控件
RegisterWidget();
//注册回调包
Pack_Control.rawset(20063002, GetAllTeamCallBack.bindenv(this));
Pack_Control.rawset(20063004, GetTeamInfoCallBack.bindenv(this));
Pack_Control.rawset(20063008, ExitPartyCallBack.bindenv(this));
GetAllTeamCall();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
OnlyPreparingBtn = null;
OnlyPreparingFlag = 1;
InputObject = null;
function RegisterWidget() {
RemoveChilds(FiendwarHallPartyC, false);
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(457, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
CloseWindow();
}.bindenv(this);
AddChild(CloseButton);
//我的频道复选框
local MyChannelBtn = LenheartNewUI_SwitchButtonText(16, 30, "我的频道");
MyChannelBtn.State = 1;
MyChannelBtn.ImgIndex = 358;
MyChannelBtn.SetTextPos(12, 2);
MyChannelBtn.Width = 76;
MyChannelBtn.Height = 16;
AddChild(MyChannelBtn);
//只查看招募中的攻坚队
OnlyPreparingBtn = LenheartNewUI_SwitchButtonText(110, 30, "只查看招募中的攻坚队");
OnlyPreparingBtn.ImgIndex = 358;
OnlyPreparingBtn.SetTextPos(12, 2);
OnlyPreparingBtn.Width = 76;
OnlyPreparingBtn.Height = 16;
OnlyPreparingBtn.OnClick = function() {
switch (OnlyPreparingFlag) {
case 0:
OnlyPreparingFlag = 1;
break;
case 1:
OnlyPreparingFlag = 0;
break;
}
OnlyPreparingBtn.State = OnlyPreparingFlag;
}.bindenv(this);
AddChild(OnlyPreparingBtn);
//搜索队伍输入框
InputObject = LenheartNewUI_BaseInput(260, 31, 80, 20);
AddChild(InputObject);
//搜索按钮
local FindButton = LenheartNewUI_ButtonText(348, 28, 5, "搜索");
FindButton.SetTextOffset(0, 1);
FindButton.OnClick = function() {
if (InputObject.str.len() > 0) {
}
}.bindenv(this);
AddChild(FindButton);
//重置按钮
local ResetButton = LenheartNewUI_ButtonText(408, 28, 5, "重置");
ResetButton.SetTextOffset(0, 1);
ResetButton.OnClick = function() {
InputObject.str = "";
}.bindenv(this);
AddChild(ResetButton);
//编号按钮
local ModelButton = LenheartNewUI_ButtonText(9, 56, -18, "编号");
ModelButton.Idx = 163;
ModelButton.DWidth = -8;
ModelButton.SetTextOffset(-9, 1);
AddChild(ModelButton);
//状态按钮
local StateButton = LenheartNewUI_ButtonText(51, 56, -18, "状态");
StateButton.Idx = 163;
StateButton.DWidth = -8;
StateButton.SetTextOffset(-9, 1);
AddChild(StateButton);
//频道按钮
local ChannelButton = LenheartNewUI_ButtonText(93, 56, -18, "频道");
ChannelButton.Idx = 163;
ChannelButton.DWidth = -8;
ChannelButton.SetTextOffset(-9, 1);
AddChild(ChannelButton);
//攻坚队名称按钮
local PartyNameButton = LenheartNewUI_ButtonText(135, 56, 100, "攻坚队名称");
PartyNameButton.Idx = 163;
PartyNameButton.DWidth = 223;
PartyNameButton.FillWidth = 1;
PartyNameButton.FirstWidth = 21;
PartyNameButton.SetTextOffset(26, 1);
AddChild(PartyNameButton);
//阶段按钮
local StageButton = LenheartNewUI_ButtonText(289, 56, 52, "阶段");
StageButton.Idx = 163;
StageButton.DWidth = 140;
StageButton.FillWidth = 1;
StageButton.FirstWidth = 21;
StageButton.SetTextOffset(26, 1);
AddChild(StageButton);
//队员数量按钮
local TeammembersButton = LenheartNewUI_ButtonText(402, 56, 50, "队员数量");
TeammembersButton.Idx = 163;
TeammembersButton.FillWidth = 1;
TeammembersButton.FirstWidth = 21;
TeammembersButton.DWidth = 47;
TeammembersButton.SetTextOffset(-8, 1);
AddChild(TeammembersButton);
//创建攻坚队按钮
local CreateOrMyPartyStr = "创建攻坚队";
if (FiendwarTotal.GetInstance().MyPartyId) CreateOrMyPartyStr = "我的攻坚队";
local MyPartyButton = LenheartNewUI_ButtonText(15, 395, 30, CreateOrMyPartyStr);
MyPartyButton.SetTextOffset(-6, 1);
MyPartyButton.OnClick = function() {
if (FiendwarTotal.GetInstance().MyPartyId) {
//发送查看攻坚队具体信息包
local T = {
op = 20063013,
teamsId = FiendwarTotal.GetInstance().MyPartyId
}
Rindro_BaseToolClass.SendPackEx(T);
} else {
local Win = LenheartNewUI_CreateWindow(FiendwarHallCreatePartyC, "超时空创建队伍窗口", 290, 220, 284, 154, 18);
Win.Visible = true;
Win.ResetFocus();
}
}.bindenv(this);
AddChild(MyPartyButton);
//左翻页按钮
local LeftButton = LenheartNewUI_BaseButton(160, 400, 15, 15, "interface/lenheartwindowcommon.img", 34);
LeftButton.OnClick = function() {
if (Page > 0) Page--;
}.bindenv(this);
AddChild(LeftButton);
//右翻页按钮
local RightButton = LenheartNewUI_BaseButton(220, 400, 15, 15, "interface/lenheartwindowcommon.img", 38);
RightButton.OnClick = function() {
if (Page<(((PartyList.len() / PageMaxCount)))) Page++;
}.bindenv(this);
AddChild(RightButton);
//进入待机按钮
local FQButton = LenheartNewUI_ButtonText(300, 394, 20, "进入待机");
FQButton.SetTextOffset(-5, 2);
FQButton.State = 8;
AddChild(FQButton);
//刷新按钮
local RefreshButton = LenheartNewUI_BaseButton(410, 395, 25, 25, "interface/lenheartwindowcommon.img", 366);
RefreshButton.OnClick = function() {
GetAllTeamCall();
}.bindenv(this);
AddChild(RefreshButton);
//设置按钮
local SettingButton = LenheartNewUI_BaseButton(440, 394, 15, 15, "interface/lenheartwindowcommon.img", 362);
SettingButton.State = 8;
AddChild(SettingButton);
}
function DrawMainBackGround(obj) {
//Item信息框一般为211的宽度
L_sq_DrawWindow(X, Y + 10, 540 * 0.85, 420 * 0.9, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
L_sq_DrawWindow(X + 6, Y + 19, 528 * 0.85, 47, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
//绘制背景框标题栏
L_sq_DrawImg("hud/fiendwarl.img", 3, X + 1, Y);
L_sq_DrawCode("寻找攻坚队", X + 217, Y + 3, sq_RGBA(179, 169, 135, 255), 0, 1);
//绘制队伍List
DrawPartyList(obj);
L_sq_DrawWindow(X + 6, Y + 382, 528 * 0.85, 24, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
//计算页数
local PageStr = Page + 1 + " / " + ((PartyList.len() / PageMaxCount) + 1);
//绘制当前页数
L_sq_DrawCode(PageStr, X + 166 + LenheartTextClass.GetStringLength(PageStr) / 2, Y + 402, sq_RGBA(134, 120, 79, 255), 0, 1);
}
Page = 0;
PageMaxCount = 13;
//绘制队伍信息
function DrawPartyList(obj) {
if (PartyList.len() <= 0) return;
//先遍历一遍全部挪走
foreach(Index, TeamObj in PartyList) {
TeamObj.SyncPos(9999, 9999);
}
//在遍历需要显示的同步坐标
foreach(Index, TeamObj in PartyList.slice((((Page) * PageMaxCount) > 0) ? ((Page) * PageMaxCount) : 0, ((Page + 1) * PageMaxCount) > PartyList.len() ? PartyList.len() : ((Page + 1) * PageMaxCount))) {
TeamObj.SyncPos(X, Y + 2 + (Index % PageMaxCount) * 23);
// TeamObj.Show();
}
}
//绘制主界面
function DrawMain(obj) {
DrawMainBackGround(obj);
}
//绘制入口
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
MainButton = null;
//逻辑入口
function Proc(obj) {
//界面未打开
if (!this.Visible && L_sq_RA(0x1A5FB4C, "0x14+0x28+")< 2) {
//在甲板
if (FiendwarTotal.GetInstance().BaseConfig && FiendwarTotal.GetInstance().BaseConfig.channel_index.find("20") && L_sq_GetTownIndex() == FiendwarTotal.GetInstance().BaseConfig.town_index && L_sq_GetRegionIndex() >= 1) {
local PaW = sq_GetPopupWindowMainCotrol(6);
if (PaW) {
L_sq_UseSkill(DIK_ESCAPE);
this.Visible = true;
GetAllTeamCall();
}
}
}
LenheartNewUI_Windows.SyncPos(X, Y);
}
//鼠标滚轮时间回调
function OnMouseWheel(Flag, MousePos_X, MousePos_Y) {
switch (Flag) {
//下
case 0: {
if (Page<(((PartyList.len() / PageMaxCount)))) Page++;
break;
}
//上
case 1: {
if (Page > 0) Page--;
break;
}
}
LenheartNewUI_Windows.OnMouseWheel(Flag, MousePos_X, MousePos_Y);
}
}

View File

@ -1,259 +0,0 @@
/*
文件名:FiendwarHallApplyJoin.nut
路径:Plugins/Fiendwar/FiendwarHallApplyJoin.nut
创建日期:2024-04-02 12:07
文件用途:超时空玩家申请加入攻坚队
*/
class FiendwarHallApplyJoinC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
//角色对象
Charc = null;
//角色等级
Level = "100级";
//角色名称
Name = "凌众K";
//角色职业
Job = 0;
//角色决斗等级
PvpLevel = 1;
//职业名称
JobName = "大暗黑天";
//角色复活币
Coin = "139个";
//角色疲劳值
Fatigue = "156";
//战斗力
Combat = "170051206";
//通过次数
ClearanceCount = 63;
//玩家世界Session
PlayerSession = 0;
//请求者信息集合
RequestJoinTeamArr = null;
NowSelectJoinIndex = 0;
//角色头像集合
AvatarArr = null;
//初始化Flag
InitFlag = false;
//X Y 裁切开始X Y 裁切结束X Y
OffsetArr = [
//男鬼剑士
[45, 103, 230, 231],
//女格斗家
[56, 102, 235, 279],
//男神枪手
[52, 130, 238, 246],
//女魔法师
[55, 87, 234, 293],
//男圣职者
[42, 115, 223, 200],
//女神枪手
[52, 119, 226, 209],
//暗夜使者
[56, 102, 225, 226],
//男格斗家
[50, 114, 239, 216],
//男魔法师
[54, 103, 236, 276],
//黑暗武士
[46, 102, 229, 232],
//缔造者
[56, 86, 235, 293],
]
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
RequestJoinTeamArr = [];
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
function InitInfo() {
local InfoObj = RequestJoinTeamArr[NowSelectJoinIndex];
Charc = InfoObj.Charc;
//角色等级
Level = InfoObj.Level;
//角色名称
Name = InfoObj.Name;
//角色职业
Job = InfoObj.Job;
//角色决斗等级
PvpLevel = InfoObj.PvpLevel;
//职业名称
JobName = InfoObj.JobName;
//角色复活币
Coin = InfoObj.Coin + "个";
//角色疲劳值
Fatigue = InfoObj.Fatigue.tostring();
//战斗力
Combat = InfoObj.Combat;
//通过次数
ClearanceCount = InfoObj.ClearanceCount;
//头像
AvatarArr = InfoObj.AvatarArr;
//玩家世界Session
this.PlayerSession = InfoObj.PlayerSession;
Childrens = [];
//注册控件
RegisterWidget();
InitFlag = true;
}
function PopOne() {
if (RequestJoinTeamArr.len() > 1) {
RequestJoinTeamArr.remove(0);
InitInfo();
} else {
RequestJoinTeamArr = [];
CloseWindow();
}
}
function RegisterWidget() {
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(244, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
PopOne();
}.bindenv(this);
AddChild(CloseButton);
//冒险团按钮
local MButton = LenheartNewUI_ButtonText(24, 114, 15, "冒险团信息");
MButton.SetTextOffset(-13, 2);
AddChild(MButton);
//冒险图鉴按钮
local FQButton = LenheartNewUI_ButtonText(95, 113, 15, "冒险图鉴");
FQButton.State = 8;
FQButton.SetTextOffset(-7, 2);
AddChild(FQButton);
//查看信息按钮
local CButton = LenheartNewUI_ButtonText(166, 114, 15, "查看信息");
CButton.SetTextOffset(-7, 2);
CButton.OnClick = function() {
local obj = sq_GetMyMasterCharacter();
// obj.sq_PlaySound("CLICK_BUTTON1");
L_sq_SendPackType(8);
L_sq_SendPackWord(this.PlayerSession);
L_sq_SendPackByte(3);
L_sq_SendPack();
getroottable().WindowsShowABFlag <- false; //让原生窗口置顶
}.bindenv(this);
AddChild(CButton);
//确认按钮
local OkButton = LenheartNewUI_ButtonText(74, 192, -1, "是");
OkButton.SetTextOffset(3, 2);
OkButton.OnClick = function() {
local T = {
op = 20063003,
teamsId = RinDro_Anton_Obj.MyRaidTeamId,
charac = Charc
}
Rindro_BaseToolClass.SendPackEx(T);
PopOne();
}.bindenv(this);
AddChild(OkButton);
//拒绝按钮
local NoButton = LenheartNewUI_ButtonText(130, 192, -1, "否");
NoButton.SetTextOffset(3, 2);
NoButton.OnClick = function() {
local T = {
op = 20063019,
charac = Charc.CID
}
Rindro_BaseToolClass.SendPackEx(T);
PopOne();
}.bindenv(this);
AddChild(NoButton);
//左翻页按钮
local LeftButton = LenheartNewUI_BaseButton(90, 220, 15, 15, "interface/lenheartwindowcommon.img", 34);
LeftButton.OnClick = function() {
if (NowSelectJoinIndex > 0) NowSelectJoinIndex--;
InitInfo();
}.bindenv(this);
AddChild(LeftButton);
//右翻页按钮
local RightButton = LenheartNewUI_BaseButton(154, 220, 15, 15, "interface/lenheartwindowcommon.img", 38);
RightButton.OnClick = function() {
if (NowSelectJoinIndex< RequestJoinTeamArr.len() - 1) NowSelectJoinIndex++;
InitInfo();
}.bindenv(this);
AddChild(RightButton);
}
//绘制主界面
function DrawMain(obj) {
if (!InitFlag) return;
//标题栏
L_sq_DrawButton(X - 2, Y, 252, "interface/lenheartwindowcommon.img", 609, 2, 7);
//绘制窗口名字
L_sq_DrawCode("攻坚队申请", X + 100, Y + 4, sq_RGBA(134, 120, 79, 255), 0, 1);
//Item信息框一般为211的宽度
L_sq_DrawWindow(X, Y + 16, 240, 200, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
//绘制背景
L_sq_DrawImg("hud/fiendwarl.img", 15, X + 6, Y + 22);
//绘制角色背景
L_sq_DrawImg("hud/fiendwarl.img", 14, X + 8, Y + 40);
//绘制角色头像
if (AvatarArr) {
foreach(AvatarObj in AvatarArr) {
local AXpos = AvatarObj.D[0] + X + OffsetArr[Job][0] - 8;
local AYpos = AvatarObj.D[1] + Y + OffsetArr[Job][1] + 40;
setClip(AXpos + OffsetArr[Job][2], AYpos + OffsetArr[Job][3], AXpos + OffsetArr[Job][2] + 22, AYpos + OffsetArr[Job][3] + 18); //开始裁切
L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
releaseClip(); //裁切结束
}
}
//绘制角色等级
L_sq_DrawCode(Level, X + 78 - LenheartTextClass.GetStringLength(Level) / 2, Y + 45, sq_RGBA(134, 120, 79, 255), 0, 1);
//绘制角色名字
L_sq_DrawCode(Name, X + 137 - LenheartTextClass.GetStringLength(Name) / 2, Y + 45, sq_RGBA(134, 120, 79, 255), 0, 1);
//绘制角色职业类型图标
if (Job != 4) L_sq_DrawImg("hud/fiendwarl.img", 16, X + 176, Y + 43);
//绘制角色职业名称
L_sq_DrawCode(JobName, X + 224 - LenheartTextClass.GetStringLength(JobName) / 2, Y + 45, sq_RGBA(134, 120, 79, 255), 0, 1);
//Item信息框一般为211的宽度
L_sq_DrawWindow(X + 21, Y + 65, 30, 30, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
L_sq_DrawWindow(X + 62, Y + 65, 156, 30, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
//绘制决斗等级
local PvpImg = PvpLevel / 6;
L_sq_DrawImg("hud/fiendwarl1.img", 99, X + 25, Y + 74);
L_sq_DrawCode(PvpLevel.tostring(), X + 45 - LenheartTextClass.GetStringLength(PvpLevel.tostring()) / 2, Y + 91, sq_RGBA(134, 120, 79, 255), 0, 1);
//绘制各项信息
L_sq_DrawCode("复活币:", X + 70, Y + 76, sq_RGBA(134, 120, 79, 255), 0, 1);
L_sq_DrawCode(Coin, X + 134 - LenheartTextClass.GetStringLength(Coin) / 2, Y + 76, sq_RGBA(134, 120, 79, 255), 0, 1);
L_sq_DrawCode("疲劳值:", X + 158, Y + 76, sq_RGBA(134, 120, 79, 255), 0, 1);
L_sq_DrawCode(Fatigue, X + 216 - LenheartTextClass.GetStringLength(Fatigue) / 2, Y + 76, sq_RGBA(134, 120, 79, 255), 0, 1);
L_sq_DrawCode("战斗力:", X + 70, Y + 93, sq_RGBA(134, 120, 79, 255), 0, 1);
L_sq_DrawCode(Combat, X + 170 - LenheartTextClass.GetStringLength(Combat) / 2, Y + 93, sq_RGBA(74, 162, 86, 255), 0, 1);
L_sq_DrawCode("通关超时空攻坚战" + ClearanceCount + "次", X + 130 - LenheartTextClass.GetStringLength("通关超时空攻坚战" + ClearanceCount + "次") / 2, Y + 144, sq_RGBA(221, 213, 147, 255), 0, 1);
L_sq_DrawCode("申请加入攻坚队。", X + 87, Y + 160, sq_RGBA(160, 132, 75, 255), 0, 1);
L_sq_DrawCode("请确定是否同意?", X + 87, Y + 176, sq_RGBA(160, 132, 75, 255), 0, 1);
L_sq_DrawWindow(X + 77, Y + 216, 100, 20, "interface/lenheartwindowcommon.img", 204, 4, 14, 4, 14);
//绘制页数
local Str = (NowSelectJoinIndex + 1) + " / " + RequestJoinTeamArr.len();
L_sq_DrawCode(Str, X + 137 - LenheartTextClass.GetStringLength(Str) / 2, Y + 222, sq_RGBA(134, 120, 79, 255), 0, 1);
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
}

View File

@ -1,81 +0,0 @@
/*
文件名:FiendwarHallCreateParty.nut
路径:Plugins/Fiendwar/FiendwarHallCreateParty.nut
创建日期:2024-03-18 13:20
文件用途:
*/
class FiendwarHallCreatePartyC extends LenheartNewUI_Windows {
//调试模式
DeBugMode = false;
X = 290;
Y = 220;
//输入框
InputObject = null;
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(266, 2, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
CloseWindow();
}.bindenv(this);
AddChild(CloseButton);
local OkButton = LenheartNewUI_ButtonText(78, 124, 5, "确定");
OkButton.SetTextOffset(0, 1);
OkButton.OnClick = function() {
//如果队伍名输出框的文字长度大于0就创建队伍 创建时告诉服务端自己的 头发 帽子 脸部 皮肤
if (InputObject.str.len() > 0) {
local T = {
op = 20063001,
teamsName = InputObject.str,
items = [L_sq_GetCharacterAttribute(0x1c, 21), L_sq_GetCharacterAttribute(0x1c, 15), L_sq_GetCharacterAttribute(0x1c, 14), L_sq_GetCharacterAttribute(0x1c, 13)],
}
Rindro_BaseToolClass.SendPackEx(T);
CloseWindow();
}
}.bindenv(this);
AddChild(OkButton);
local CloseButton = LenheartNewUI_ButtonText(144, 124, 5, "取消");
CloseButton.SetTextOffset(0, 1);
CloseButton.OnClick = function() {
CloseWindow();
}.bindenv(this);
AddChild(CloseButton);
InputObject = LenheartNewUI_BaseInput(62, 68, 152, 20);
AddChild(InputObject);
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
//绘制主界面
function DrawMain(obj) {
L_sq_DrawWindow(X, Y + 10, 260, 120, "interface/lenheartwindowcommon.img", 213, 12, 2, 13, 2);
L_sq_DrawWindow(X, Y + 10, 260, 120, "interface/lenheartwindowcommon.img", 213, 12, 2, 13, 2);
L_sq_DrawImg("interface2/gcontents/180621_fiendwar/raid/raid_areaimg_fiend.img", 0, X + 11, Y + 21);
L_sq_DrawImg("hud/fiendwarl.img", 9, X - 2, Y + 2);
L_sq_DrawCode("创建攻坚队", X + 112, Y + 3, sq_RGBA(179, 169, 135, 255), 0, 1);
L_sq_DrawImg("hud/fiendwarl.img", 10, X + 72, Y + 44);
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
}

View File

@ -1,81 +0,0 @@
/*
文件名:FiendwarHallGoBossDgn.nut
路径:Plugins/Fiendwar/FiendwarHallGoBossDgn.nut
创建日期:2024-05-10 06:55
文件用途:进入罗什的窗口
*/
class FiendwarHallGoBossDgnC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
Dark = 0;
Light = 0;
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
function RegisterWidget() {
Childrens = [];
// //关闭按钮
// local CloseButton = LenheartNewUI_BaseButton(278, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
// CloseButton.OnClick = function() {
// this.Visible = false;
// }.bindenv(this);
// Childrens.append(CloseButton);
//黑暗按钮
local DarkButton = LenheartNewUI_BaseButton(4, 20, 264, 48, "interface2/gcontents/180621_fiendwar/raid/raid_areaimg_fiend.img", 1);
DarkButton.OnClick = function() {
local T = {
op = 20063059,
key = 28
}
Rindro_BaseToolClass.SendPackEx(T);
CloseWindow();
}.bindenv(this);
if (Dark) DarkButton.State = 8;
Childrens.append(DarkButton);
//纯白按钮
local LightButton = LenheartNewUI_BaseButton(4, 68, 264, 48, "interface2/gcontents/180621_fiendwar/raid/raid_areaimg_fiend.img", 5);
LightButton.OnClick = function() {
local T = {
op = 20063059,
key = 29
}
Rindro_BaseToolClass.SendPackEx(T);
CloseWindow();
}.bindenv(this);
if (Light) LightButton.State = 8;
Childrens.append(LightButton);
}
//绘制主界面
function DrawMain(obj) {
L_sq_DrawWindow(X, Y + 10, 246, 85, "interface/lenheartwindowcommon.img", 213, 12, 2, 13, 2);
L_sq_DrawWindow(X, Y + 10, 246, 85, "interface/lenheartwindowcommon.img", 213, 12, 2, 13, 2);
// L_sq_DrawImg("interface2/gcontents/180621_fiendwar/raid/raid_areaimg_fiend.img", 0, X + 11, Y + 21);
L_sq_DrawImg("hud/fiendwarl.img", 25, X - 3, Y + 2);
L_sq_DrawCode("量子时空传送站", X + 98, Y + 5, sq_RGBA(179, 169, 135, 255), 0, 1);
// L_sq_DrawImg("hud/fiendwarl.img", 10, X + 72, Y + 44);
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
}

View File

@ -1,77 +0,0 @@
/*
文件名:FiendwarHallParty.nut
路径:Plugins/Fiendwar/FiendwarHallParty.nut
创建日期:2024-04-01 22:30
文件用途:超时空之战 大厅中的队伍对象
*/
class FiendwarHallPartyC extends LenheartNewUI_CommonUi {
X = 0;
Y = 0;
Width = null;
Height = null;
TeamObj = null;
//选中状态
SelectState = false;
//攻坚状态
OffensiveState = 0;
constructor(gTeamObj) {
//拿到信息Map
TeamObj = gTeamObj;
//设定宽高 坐标不重要 会被父窗口的Sync同步坐标
this.Width = 458;
this.Height = 21;
this.OnClick = function() {
//还原父对象中其他攻坚队伍类 选中自己
foreach(Obj in Parent.PartyList) {
Obj.SelectState = false;
}
SelectState = !SelectState;
//发送查看攻坚队具体信息包
local T = {
op = 20063013,
teamsId = TeamObj.TeamId
}
Rindro_BaseToolClass.SendPackEx(T);
}
LenheartNewUI_CommonUi.constructor(10, 82, this.Width, this.Height);
}
function Show(obj) {
//绘制底槽
L_sq_DrawImg("hud/fiendwarl.img", 4, X, Y);
//绘制队伍编号
L_sq_DrawCode(TeamObj.TeamId, X + 22 - LenheartTextClass.GetStringLength(TeamObj.TeamId) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
//绘制队长头像
L_sq_DrawImg("interface/lenheartwindowcommon.img", 55, X + 52, Y + 7);
try {
local channel_index = FiendwarTotal.GetInstance().BaseConfig.channel_index;
channel_index = channel_index.slice(channel_index.len() - 2, channel_index.len());
//绘制频道信息
L_sq_DrawCode(channel_index, X + 102 - LenheartTextClass.GetStringLength(channel_index) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
} catch (exception) {
}
//绘制攻坚队名称
L_sq_DrawCode(TeamObj.TeamName, X + 130, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
//绘制攻坚队攻坚状态
L_sq_DrawImg("hud/fiendwarl.img", 6 + TeamObj.State, X + 314, Y + 2);
local PartyPlayerCountStr = TeamObj.TeamPlayerCount + " / " + 8;
//绘制攻坚队队员数量
L_sq_DrawCode(PartyPlayerCountStr, X + 434 - LenheartTextClass.GetStringLength(PartyPlayerCountStr) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
if (SelectState) {
L_sq_DrawImg("hud/fiendwarl.img", 5, X, Y);
}
if (isInRect) {
L_sq_DrawImg("hud/fiendwarl.img", 5, X, Y);
}
}
}

View File

@ -1,112 +0,0 @@
/*
文件名:FiendwarNoti.nut
路径:Plugins/Fiendwar/FiendwarNoti.nut
创建日期:2024-04-12 22:12
文件用途:超时空攻坚战队伍消息
*/
class FiendwarNotiC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
//消息内容
Msg = null;
//队长名称
Name = null;
//消息时间
Timer = null;
//队伍聊天消息分发
function FiendwarPartyNotiCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
Name = Jso.Name;
Msg = Jso.msg;
Timer = Clock();
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
//队伍聊天消息分发
Pack_Control.rawset(20063018, FiendwarPartyNotiCallBack.bindenv(this));
}
function RegisterWidget() {
// //关闭按钮
// local CloseButton = LenheartNewUI_BaseButton(278, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
// CloseButton.OnClick = function() {
// this.Visible = false;
// }.bindenv(this);
// Childrens.append(CloseButton);
}
//队长头像
PartyMasterIcon = null;
//绘制主界面
function DrawMain(obj) {
if (!Name || !Msg) return;
//绘制背景框
L_sq_DrawImg("hud/fiendwarl.img", 24, X + 134, Y + 180);
//绘制队长图标
// L_sq_DrawImg
if (FiendwarTotal.GetInstance().MyTeam) {
local Mt = FiendwarTotal.GetInstance().MyTeam;
local PartyMaster;
foreach(index, value in Mt.MembersList) {
if (value.InfoObj.Captain) {
PartyMasterIcon = clone(value);
}
}
sq_DrawBox(X + 42 + 118, Y + 1 + 185, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
//绘制队长头像
foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
local AXpos = AvatarObj.D[0] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + 118;
local AYpos = AvatarObj.D[1] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + 185;
setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
releaseClip(); //裁切结束
}
}
//绘制队长名字
L_sq_DrawCode(Name, X + 184, Y + 189, sq_RGBA(247, 214, 90, 255), 0, 1);
//绘制点
L_sq_DrawCode(" ", X + 210, Y + 189, sq_RGBA(230, 200, 155, 255), 0, 1);
//绘制消息
L_sq_DrawCode(Msg, X + 190 + LenheartTextClass.GetStringLength(Name), Y + 189, sq_RGBA(230, 200, 155, 255), 0, 1);
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
if (Name && Msg)
Visible = true;
else
Visible = false;
if (Timer) {
if (Clock() - Timer >= 3500) {
Timer = null;
Name = null;
Msg = null;
}
}
}
}

View File

@ -1,120 +0,0 @@
/*
文件名:FiendwarPartyFormation.nut
路径:Plugins/Fiendwar/FiendwarPartyFormation.nut
创建日期:2024-04-02 12:09
文件用途:超时空攻坚队 队内编队
*/
//编队用按钮需要传递参数所以重写
class FiendwarPartyInfoEdit_BaseButton extends LenheartNewUI_BaseButton {
MyInfoIndex = 0;
constructor(X, Y, W, H, Path, Idx, InfoIndex) {
MyInfoIndex = InfoIndex;
LenheartNewUI_BaseButton.constructor(X, Y, W, H, Path, Idx);
}
//鼠标左键弹起回调
function OnMouseLbUp(MousePos_X, MousePos_Y) {
if (isLBDown && OnClick) {
OnClick(MyInfoIndex);
}
isLBDown = false;
}
}
//编队窗口
class FiendwarPartyFormation extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
PartyMarkFlag = -1;
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
function RegisterWidget() {
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(278, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
CloseWindow();
}.bindenv(this);
AddChild(CloseButton);
//搜索按钮
local QdButton = LenheartNewUI_ButtonText(10, 157, 5, "签到");
QdButton.State = 8;
QdButton.SetTextOffset(0, 1);
AddChild(QdButton);
//解散队伍按钮
local BreakPartyButton = LenheartNewUI_ButtonText(80, 158, 5, "解散队伍");
BreakPartyButton.SetTextOffset(-12, 1);
BreakPartyButton.OnClick = function() {
}.bindenv(this);
AddChild(BreakPartyButton);
//关闭按钮
local CloseButton = LenheartNewUI_ButtonText(150, 158, 5, "关闭");
CloseButton.SetTextOffset(0, 1);
CloseButton.OnClick = function() {
CloseWindow();
}.bindenv(this);
AddChild(CloseButton);
for (local i = 0; i< 8; i++) {
//右翻页按钮
local PartyIndexButton = FiendwarPartyInfoEdit_BaseButton(12 + (i % 2 * 136), 35 + ((i / 2) * 30), 41, 17, "interface/newstyle/windows/party/party_icon.img", 3 + (i * 3), i);
//继承类 并重写 调用时传入InfoIndex
PartyIndexButton.OnClick = function(MyInfoIndex) {
PartyMarkFlag = MyInfoIndex;
}.bindenv(this);
AddChild(PartyIndexButton);
}
}
//绘制主界面
function DrawMain(obj) {
//标题栏
L_sq_DrawButton(X - 1, Y, 284, "interface/lenheartwindowcommon.img", 609, 2, 7);
//Item信息框一般为211的宽度
L_sq_DrawWindow(X, Y + 17, 272, 154, "interface/lenheartwindowcommon.img", 213, 12, 2, 13, 2);
for (local q = 0; q< 8; q++) {
L_sq_DrawImg("interface/lenheartwindowcommon.img", 358, X + 60 + (q % 2 * 136), Y + 34 + ((q / 2) * 30));
for (local i = 0; i< 3; i++) {
L_sq_DrawImg("interface/lenheartwindowcommon.img", 361, X + 80 + (q % 2 * 136) + (i * 20), Y + 34 + ((q / 2) * 30));
}
}
if (PartyMarkFlag != -1) {
L_sq_WA(0x1b46898, 47);
}
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
//鼠标左键弹起回调
function OnMouseLbUp(MousePos_X, MousePos_Y) {
//还原编队的鼠标指针
local win = LenheartNewUI_CreateWindow(FiendwarPartyFormation, "超时空我的队伍编队窗口", 105, 40, 294, 192, 18);
if (win.PartyMarkFlag != -1) {
win.PartyMarkFlag = -1;
L_sq_WA(0x1b46898, 0);
}
LenheartNewUI_Windows.OnMouseLbUp(MousePos_X, MousePos_Y);
}
}

View File

@ -1,252 +0,0 @@
/*
文件名:FiendwarPartyInfo.nut
路径:Plugins/Fiendwar/FiendwarPartyInfo.nut
创建日期:2024-03-27 19:18
文件用途:超时空攻坚队队伍信息窗口
*/
class FiendwarPartyInfoC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
//队员列表
MembersList = null;
//队伍名称
TeamName = "";
//队伍ID
TeamID = 99999999;
//是否是我的攻坚队
IsMyTeam = false;
//是否是队长
IsCaptain = false;
//收到请求加入攻坚队包
function JoinTeamCallBack(Chunk) {
// Sout("收到请求加入包 : \n\n\n %L", Chunk);
local Jso = Json.Decode(Chunk);
local win = LenheartNewUI_CreateWindow(FiendwarHallApplyJoinC, "超时空申请加入队伍窗口", 542, 348, 257, 240, 18);
win.Visible = true;
win.ResetFocus();
local T = {
Charc = Jso.charac, //角色对象
Level = Jso.charac.PlayerLevel,
Name = Jso.charac.PlayerName,
Job = Jso.charac.PlayerJob,
PvpLevel = Jso.charac.pvp,
JobName = Jso.charac.PlayerGrowTypeJob,
Coin = Jso.charac.PlayCoin,
Fatigue = Jso.charac.PlayFatigue,
Combat = Jso.charac.ZL,
ClearanceCount = Jso.charac.ClearanceCount,
AvatarArr = Jso.charac.equVos,
PlayerSession = Jso.charac.PlayerSession
}
//没人
if (win.RequestJoinTeamArr.len() == 0) {
win.RequestJoinTeamArr.append(T);
win.InitInfo();
} else win.RequestJoinTeamArr.append(T);
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
// RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
Pack_Control.rawset(20063006, JoinTeamCallBack.bindenv(this));
}
function RegisterWidget() {
//清除老的按钮在刷新
RemoveChilds(FiendwarPartyInfoMemberC, false);
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(336, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
CloseWindow();
}.bindenv(this);
AddChild(CloseButton);
//队伍按钮
local ModelButton = LenheartNewUI_ButtonText(9, 60, -18, "队伍");
ModelButton.Idx = 163;
ModelButton.DWidth = -8;
ModelButton.SetTextOffset(-9, 1);
AddChild(ModelButton);
//等级按钮
local StateButton = LenheartNewUI_ButtonText(51, 60, -18, "等级");
StateButton.Idx = 163;
StateButton.DWidth = -8;
StateButton.SetTextOffset(-9, 1);
AddChild(StateButton);
//角色名按钮
local ChannelButton = LenheartNewUI_ButtonText(93, 60, 44, "角色名");
ChannelButton.Idx = 163;
ChannelButton.DWidth = 120;
ChannelButton.FillWidth = 1;
ChannelButton.FirstWidth = 21;
ChannelButton.SetTextOffset(17, 1);
AddChild(ChannelButton);
//攻坚队名称按钮
local PartyNameButton = LenheartNewUI_ButtonText(196, 60, 36, "职业名");
PartyNameButton.Idx = 163;
PartyNameButton.DWidth = 100;
PartyNameButton.FillWidth = 1;
PartyNameButton.FirstWidth = 21;
PartyNameButton.SetTextOffset(11, 1);
AddChild(PartyNameButton);
//入场材料按钮
local Striiu = "入场材料";
if (FiendwarTotal.GetInstance().EndTime) Striiu = "通关次数";
local StageButton = LenheartNewUI_ButtonText(289, 60, 0, Striiu);
StageButton.Idx = 163;
StageButton.DWidth = 26;
StageButton.FillWidth = 1;
StageButton.FirstWidth = 21;
StageButton.SetTextOffset(-14, 1);
AddChild(StageButton);
//如果不是我的队伍 并且我没有攻坚队
if (!IsMyTeam && !FiendwarTotal.GetInstance().MyPartyId) {
local JoinPartyButton = LenheartNewUI_ButtonText(10, 268, 10, "参加攻坚队");
JoinPartyButton.SetTextOffset(-15, 1);
JoinPartyButton.OnClick = function() {
local T = {
op = 20063005,
teamsId = TeamID,
items = [L_sq_GetCharacterAttribute(0x1c, 21), L_sq_GetCharacterAttribute(0x1c, 15), L_sq_GetCharacterAttribute(0x1c, 14), L_sq_GetCharacterAttribute(0x1c, 13)],
}
Rindro_BaseToolClass.SendPackEx(T);
}.bindenv(this);
AddChild(JoinPartyButton);
}
//如果是我的队伍
if (IsMyTeam) {
//退出按钮
local ExitButton = LenheartNewUI_ButtonText(220, 268, 5, "退出");
ExitButton.SetTextOffset(-1, 1);
ExitButton.OnClick = function() {
local T = {
op = 20063009,
teamsId = TeamID
}
Rindro_BaseToolClass.SendPackEx(T);
FiendwarTotal.GetInstance().MyCid = null;
FiendwarTotal.GetInstance().MyPartyId = null;
FiendwarTotal.GetInstance().IsCaptain = null;
}.bindenv(this);
AddChild(ExitButton);
if (IsCaptain) {
//队伍编制按钮
local PartyEditButton = LenheartNewUI_ButtonText(10, 268, 5, "队伍编制");
PartyEditButton.SetTextOffset(-12, 1);
PartyEditButton.OnClick = function() {
local win = LenheartNewUI_CreateWindow(FiendwarPartyFormation, "超时空我的队伍编队窗口", 105, 40, 294, 192, 18);
win.Visible = true;
}.bindenv(this);
AddChild(PartyEditButton);
//修改信息按钮
local FqButton = LenheartNewUI_ButtonText(100, 267, 5, "修改信息");
FqButton.State = 8;
FqButton.SetTextOffset(-12, 1);
AddChild(FqButton);
//队伍招募按钮
local FqButton1 = LenheartNewUI_ButtonText(160, 267, 5, "队伍招募");
FqButton1.State = 8;
FqButton1.SetTextOffset(-12, 1);
AddChild(FqButton1);
if (!FiendwarTotal.GetInstance().EndTime) {
//队伍招募按钮
local FightOpenButton = LenheartNewUI_ButtonText(290, 268, 5, "开始攻坚");
FightOpenButton.SetTextOffset(-12, 1);
FightOpenButton.OnClick = function() {
local T = {
op = 20063051,
teamsId = TeamID
}
Rindro_BaseToolClass.SendPackEx(T);
}.bindenv(this);
AddChild(FightOpenButton);
}
}
}
}
//绘制主界面
function DrawMain(obj) {
//标题栏
L_sq_DrawButton(X, Y, 344, "interface/lenheartwindowcommon.img", 609, 2, 7);
//绘制队伍名字
L_sq_DrawCode(TeamName, X + 178 - LenheartTextClass.GetStringLength(TeamName) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
//Item信息框一般为211的宽度
L_sq_DrawWindow(X, Y + 17, 340, 250, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
//绘制头图
L_sq_DrawImg("interface2/gcontents/180621_fiendwar/raid/memberwindow.img", 0, X + 10, Y + 24);
//绘制阶段图 //TODO 根据阶段绘制img
L_sq_DrawImg("hud/fiendwarl.img", 7, X + 296, Y + 34);
//绘制队伍List
DrawMembersList(obj);
}
//绘制队伍信息
function DrawMembersList(obj) {
if (MembersList.len() <= 0) return;
//遍历需要显示的同步坐标
foreach(Index, TeamObj in MembersList) {
TeamObj.SyncPos(X, Y + 2 + Index * 23);
}
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
/*
# override # "
* @函数作用:
* @参数 name
* @返回值
*/
//鼠标左键弹起回调
function OnMouseLbUp(MousePos_X, MousePos_Y) {
foreach(Window in Childrens) {
Window.OnMouseLbUp(MousePos_X, MousePos_Y);
}
LenheartNewUI_Windows.OnMouseLbUp(MousePos_X, MousePos_Y);
//判断没有点到具体角色就隐藏
if (!sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X, Y + 80, Width, MembersList.len() * 21)) {
//交互窗口需要隐藏
local Each = LenheartNewUI_CreateWindow(FiendwarHallPlayerInteractiveC, "超时空玩家交互", X, Y, 100, 21, 0);
Each.Visible = false;
}
}
}

View File

@ -1,188 +0,0 @@
/*
文件名:FiendwarPartyMemberInfo.nut
路径:Plugins/Fiendwar/FiendwarPartyMemberInfo.nut
创建日期:2024-04-02 10:49
文件用途:攻坚队详细信息中的队员显示类
*/
//队员显示类
class FiendwarPartyInfoMemberC extends LenheartNewUI_CommonUi {
X = 0;
Y = 0;
Width = null;
Height = null;
InfoObj = null;
//构造时间
ConstructorTime = null;
//选中状态
SelectState = false;
//攻坚状态
OffensiveState = 0;
//头像框的颜色
HandBoxColor = [
0xff717272,
0xff7b2a29,
0xff874e0d,
0xff8b8108,
0xff658e2d,
0xff0f5c8a,
0xff27238f,
0xff4e2491,
0xff932586,
]
//X Y 裁切开始X Y 裁切结束X Y
OffsetArr = [
//男鬼剑士
[45, 103, 230, 231],
//女格斗家
[56, 102, 235, 279],
//男神枪手
[52, 130, 238, 246],
//女魔法师
[55, 87, 234, 293],
//男圣职者
[42, 115, 223, 200],
//女神枪手
[52, 119, 226, 209],
//暗夜使者
[56, 102, 225, 226],
//男格斗家
[50, 114, 239, 216],
//男魔法师
[54, 103, 236, 276],
//黑暗武士
[46, 102, 229, 232],
//缔造者
[56, 86, 235, 293],
]
constructor(gInfoObj) {
ConstructorTime = Clock();
InfoObj = gInfoObj;
this.Width = 458;
this.Height = 21;
this.OnClick = function() {
//还原其他 选中自己
foreach(Obj in Parent.MembersList) {
Obj.SelectState = false;
}
SelectState = !SelectState;
local win = LenheartNewUI_CreateWindow(FiendwarPartyFormation, "超时空我的队伍编队窗口", 105, 40, 294, 192, 18);
//编队状态
if (win.PartyMarkFlag != -1) {
//并且是属于我的攻坚队的成员
if (FiendwarTotal.GetInstance().MyPartyId == InfoObj.PartyId) {
local T = {
op = 20063015,
teamsId = InfoObj.PartyId,
cidNew = InfoObj.Cid,
num = win.PartyMarkFlag
}
Rindro_BaseToolClass.SendPackEx(T);
win.PartyMarkFlag = -1;
L_sq_WA(0x1b46898, 0);
return;
}
//点了其他队伍成员要还原编队状态
else {
win.PartyMarkFlag = -1;
L_sq_WA(0x1b46898, 0);
}
}
local Interactive = LenheartNewUI_CreateWindow(FiendwarHallPlayerInteractiveC, "超时空玩家交互", 0, 0, 100, 21, 0);
//改变鼠标坐标
Interactive.X = MousePos_X;
Interactive.Y = MousePos_Y;
//赋值对象参数
Interactive.InfoObj = InfoObj;
//对象不是我
if (InfoObj.Cid == FiendwarTotal.GetInstance().MyCid) {
Interactive.InfoObj.IsMyself <- true;
}
//刷新UI
Interactive.InitInfo();
}
LenheartNewUI_CommonUi.constructor(10, 82, this.Width, this.Height);
//如果没有材料要建立一个购买材料的Button 并且要判断是否是自己 //TODO 这里还不行 要拓展一个函数来比对名字
/*
local Name = L_Sq_GetObjectName(sq_GetMyMasterCharacter());
local Name2 = "夜刃";
Name == Name2 失败了
*/
// if (!InfoObj.StkHasFlag && InfoObj.Name == L_Sq_GetObjectName(sq_GetMyMasterCharacter())) {
// }
}
function Show(obj) {
//绘制底槽
L_sq_DrawImg("hud/fiendwarl.img", 12, X, Y);
//绘制队伍编号
L_sq_DrawImg("interface/newstyle/windows/party/party_icon.img", InfoObj.TeamId * 3, X, Y + 1);
sq_DrawBox(X + 42, Y + 1, 22, 18, HandBoxColor[InfoObj.TeamId]);
//绘制队长头像
foreach(AvatarObj in InfoObj.EquVos) {
local AXpos = AvatarObj.D[0] + X + OffsetArr[InfoObj.Job][0];
local AYpos = AvatarObj.D[1] + Y + OffsetArr[InfoObj.Job][1];
setClip(AXpos + OffsetArr[InfoObj.Job][2], AYpos + OffsetArr[InfoObj.Job][3], AXpos + OffsetArr[InfoObj.Job][2] + 22, AYpos + OffsetArr[InfoObj.Job][3] + 18); //开始裁切
L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
releaseClip(); //裁切结束
// }
}
if (InfoObj.Captain) L_sq_DrawImg("hud/fiendwarl.img", 18, X + 42, Y + 1);
//绘制等级
L_sq_DrawCode(InfoObj.Level, X + 76 - LenheartTextClass.GetStringLength(InfoObj.Level) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
//绘制角色名
L_sq_DrawCode(InfoObj.Name, X + 138 - LenheartTextClass.GetStringLength(InfoObj.Name) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
//绘制职业名
L_sq_DrawCode(InfoObj.JobName, X + 234 - LenheartTextClass.GetStringLength(InfoObj.JobName) / 2, Y + 5, sq_RGBA(134, 120, 79, 255), 0, 1);
//离线了
if (InfoObj.ExitTime > 0) {
local DrawTime = InfoObj.ExitTime - (Clock() - ConstructorTime);
local seconds = (DrawTime / 1000) % 60; // 计算秒数
local minutes = (DrawTime / (1000 * 60)) % 60; // 计算分钟数
local DrawTimeStr = format("%02d分%02d秒", minutes, seconds);
L_sq_DrawCode(DrawTimeStr, X + 306 - LenheartTextClass.GetStringLength(DrawTimeStr) / 2, Y + 5, sq_RGBA(255, 50, 50, 255), 0, 1);
}
//通关次数
else if (InfoObj.ClearanceCount > 0) {
L_sq_DrawCode((InfoObj.ClearanceCount - 1) + "/" + (InfoObj.ClearanceCountMax), X + 306 - LenheartTextClass.GetStringLength((InfoObj.ClearanceCount - 1) + "/" + (InfoObj.ClearanceCountMax)) / 2, Y + 5, sq_RGBA(250, 250, 181, 255), 0, 1);
} else if (InfoObj.StkHasFlag) {
L_sq_DrawImg("hud/fiendwarlstk.img", 0, X + 280, Y + 3);
} else {
L_sq_DrawImg("hud/fiendwarlstk.img", 1, X + 280, Y + 3);
}
if (SelectState) {
L_sq_DrawImg("hud/fiendwarl.img", 13, X, Y);
}
if (isInRect) {
L_sq_DrawImg("hud/fiendwarl.img", 13, X, Y);
}
}
MousePos_X = 0;
MousePos_Y = 0;
//鼠标事件回调
function OnMouseProc(Flag, gMousePos_X, gMousePos_Y) {
this.MousePos_X = gMousePos_X;
this.MousePos_Y = gMousePos_Y;
LenheartNewUI_CommonUi.OnMouseProc(Flag, gMousePos_X, gMousePos_Y);
}
}

View File

@ -1,227 +0,0 @@
/*
文件名:FiendwarPlayerInteractive.nut
路径:Plugins/Fiendwar/FiendwarPlayerInteractive.nut
创建日期:2024-04-02 10:55
文件用途:超时空玩家交互
*/
//角色交互按钮需要传递参数所以重写
class FiendwarPlayerInteractive_BaseButton extends LenheartNewUI_BaseButton {
OnShow = null;
constructor(X, Y, W, H, Path, Idx) {
LenheartNewUI_BaseButton.constructor(X, Y, W, H, Path, Idx);
}
//鼠标左键弹起回调
function OnMouseLbUp(MousePos_X, MousePos_Y) {
Y--;
if (isLBDown && OnClick) {
OnClick();
}
isLBDown = false;
local Each = LenheartNewUI_CreateWindow(FiendwarHallPlayerInteractiveC, "超时空玩家交互", X, Y, 100, 21, 0);
Each.Visible = false;
}
function Show(obj) {
//不可用
if (State == 8) {
L_sq_DrawImg(Path, Idx + 3, X, Y + 1);
} else {
//按下
if (isLBDown) {
Y++;
L_sq_DrawImg(Path, (Idx * 2) + 2, X, Y);
}
//悬停
else if (isInRect) {
L_sq_DrawImg(Path, (Idx * 2) + 1, X, Y);
}
//普通
else {
L_sq_DrawImg(Path, 0, X, Y);
}
}
if (OnShow) OnShow(X, Y);
}
}
//角色交互类
class FiendwarHallPlayerInteractiveC extends LenheartNewUI_Windows {
// DeBugMode = true;
//信息对象
InfoObj = null;
//初始化Flag 初始化以后才显示
InitInfoFlag = false;
//有多少个标签
InitIndexFlag = 1;
//头像框颜色
HandBoxColor = [
0xff717272,
0xff7b2a29,
0xff874e0d,
0xff8b8108,
0xff658e2d,
0xff0f5c8a,
0xff27238f,
0xff4e2491,
0xff932586,
]
//X Y 裁切开始X Y 裁切结束X Y
OffsetArr = [
//男鬼剑士
[45, 103, 230, 231],
//女格斗家
[56, 102, 235, 279],
//男神枪手
[52, 130, 238, 246],
//女魔法师
[55, 87, 234, 293],
//男圣职者
[42, 115, 223, 200],
//女神枪手
[52, 119, 226, 209],
//暗夜使者
[56, 102, 225, 226],
//男格斗家
[50, 114, 239, 216],
//男魔法师
[54, 103, 236, 276],
//黑暗武士
[46, 102, 229, 232],
//缔造者
[56, 86, 235, 293],
]
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
//初始化信息
function InitInfo() {
Childrens = [];
//还原标签数量
InitIndexFlag = 1;
//还原高度
Height = 21;
//还原可见性
Visible = true;
//置顶窗口
ResetFocus();
RegisterWidget();
InitInfoFlag = true;
}
function RegisterWidget() {
//是团长才能委任 并且不是我自己 并且我们在同一个攻坚队
if (FiendwarTotal.GetInstance().IsCaptain && !("IsMyself" in InfoObj) && FiendwarTotal.GetInstance().MyPartyId == InfoObj.PartyId) {
//委任团长按钮
local GiveMasterButton = FiendwarPlayerInteractive_BaseButton(0, 0 + (InitIndexFlag * 21), 100, 21, "interface2/popup_menu/popup_back.img", 0);
GiveMasterButton.OnShow = function(X, Y) {
L_sq_DrawImg("interface2/popup_menu/popup_icon_character.img", 11, X, Y + 2);
L_sq_DrawCode("委任团长", X + 36, Y + 5, sq_RGBA(104, 213, 237, 255), 0, 1);
}
GiveMasterButton.OnClick = function() {
}.bindenv(this);
AddChild(GiveMasterButton);
InitIndexFlag++;
Height += 21;
}
//查看信息按钮
local CheckInfoButton = FiendwarPlayerInteractive_BaseButton(0, 0 + (InitIndexFlag * 21), 100, 21, "interface2/popup_menu/popup_back.img", 0);
CheckInfoButton.OnShow = function(X, Y) {
L_sq_DrawImg("interface2/popup_menu/popup_icon_character.img", 10, X, Y + 2);
L_sq_DrawCode("查看信息", X + 36, Y + 5, sq_RGBA(104, 213, 237, 255), 0, 1);
}
CheckInfoButton.OnClick = function() {
local obj = sq_GetMyMasterCharacter();
//obj.sq_PlaySound("CLICK_BUTTON1");
L_sq_SendPackType(8);
L_sq_SendPackWord(InfoObj.PlayerSession);
L_sq_SendPackByte(3);
L_sq_SendPack();
getroottable().WindowsShowABFlag <- false; //让原生窗口置顶
}.bindenv(this);
AddChild(CheckInfoButton);
InitIndexFlag++;
Height += 21;
if (!("IsMyself" in InfoObj)) {
//交易按钮
local TransactionButton = FiendwarPlayerInteractive_BaseButton(0, 0 + (InitIndexFlag * 21), 100, 21, "interface2/popup_menu/popup_back.img", 0);
TransactionButton.OnShow = function(X, Y) {
L_sq_DrawImg("interface2/popup_menu/popup_icon_character.img", 0, X, Y + 2);
L_sq_DrawCode("交易", X + 46, Y + 5, sq_RGBA(104, 213, 237, 255), 0, 1);
}
TransactionButton.OnClick = function() {
local obj = sq_GetMyMasterCharacter();
//obj.sq_PlaySound("CLICK_BUTTON1");
L_sq_SendPackType(10);
L_sq_SendPackWord(InfoObj.PlayerSession);
L_sq_SendPackByte(1);
L_sq_SendPackDWord(22053);
L_sq_SendPack();
getroottable().WindowsShowABFlag <- false; //让原生窗口置顶
}.bindenv(this);
AddChild(TransactionButton);
InitIndexFlag++;
Height += 21;
if (FiendwarTotal.GetInstance().IsCaptain && FiendwarTotal.GetInstance().MyPartyId == InfoObj.PartyId) {
//攻坚队员强退按钮
local KickMemberButton = FiendwarPlayerInteractive_BaseButton(0, 0 + (InitIndexFlag * 21), 100, 21, "interface2/popup_menu/popup_back.img", 4);
KickMemberButton.OnShow = function(X, Y) {
L_sq_DrawImg("interface2/popup_menu/popup_icon_warning.img", 3, X, Y + 2);
L_sq_DrawCode("攻坚队员强退", X + 24, Y + 5, sq_RGBA(255, 50, 50, 255), 0, 1);
}
KickMemberButton.OnClick = function() {
local obj = sq_GetMyMasterCharacter();
//obj.sq_PlaySound("CLICK_BUTTON1");
local T = {
op = 20063021,
teamsId = InfoObj.PartyId,
charCid = InfoObj.Cid
}
Rindro_BaseToolClass.SendPackEx(T);
}.bindenv(this);
AddChild(KickMemberButton);
InitIndexFlag++;
Height += 21;
}
}
}
function Show(obj) {
if (!InitInfoFlag) return;
L_sq_DrawImg("interface2/popup_menu/popup_back.img", 0, X, Y);
//绘制角色名
L_sq_DrawCode(InfoObj.Name, X + 61 - LenheartTextClass.GetStringLength(InfoObj.Name) / 2, Y + 4, sq_RGBA(169, 255, 171, 255), 0, 1);
//绘制头像
foreach(AvatarObj in InfoObj.EquVos) {
local AXpos = AvatarObj.D[0] + X + OffsetArr[InfoObj.Job][0] - 40;
local AYpos = AvatarObj.D[1] + Y + OffsetArr[InfoObj.Job][1];
setClip(AXpos + OffsetArr[InfoObj.Job][2], AYpos + OffsetArr[InfoObj.Job][3], AXpos + OffsetArr[InfoObj.Job][2] + 22, AYpos + OffsetArr[InfoObj.Job][3] + 18); //开始裁切
L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
releaseClip(); //裁切结束
}
LenheartNewUI_Windows.Show(obj);
}
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
}

View File

@ -265,14 +265,15 @@ class FiendRewardC extends LenheartNewUI_Windows {
local YOffset = -31 + Flag2; local YOffset = -31 + Flag2;
sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]); sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
//绘制队长头像 // //绘制队长头像
foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) { // foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
local AXpos = AvatarObj.F[0][2] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12; // local AXpos = AvatarObj.F[0][2] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12;
local AYpos = AvatarObj.F[1][3] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset; // local AYpos = AvatarObj.F[1][3] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset;
setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切 // setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos); // DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos);
releaseClip(); //裁切结束 // releaseClip(); //裁切结束
} // }
local DrawName = PartyMasterIcon.InfoObj.Name; local DrawName = PartyMasterIcon.InfoObj.Name;
//绘制名字 //绘制名字
L_sq_DrawCode(DrawName, X + XOffset + 100 - LenheartTextClass.GetStringLength(DrawName) / 2, Y + YOffset + 4, sq_RGBA(247, 214, 90, 250), 0, 1); L_sq_DrawCode(DrawName, X + XOffset + 100 - LenheartTextClass.GetStringLength(DrawName) / 2, Y + YOffset + 4, sq_RGBA(247, 214, 90, 250), 0, 1);

View File

@ -326,14 +326,14 @@ class FiendwarFightSituationC extends LenheartNewUI_Windows {
sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]); sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
// //绘制队长头像 // // //绘制队长头像
foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) { // foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
local AXpos = AvatarObj.F[0][2] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12; // local AXpos = AvatarObj.F[0][2] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12;
local AYpos = AvatarObj.F[1][3] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset; // local AYpos = AvatarObj.F[1][3] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset;
setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切 // setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos); // DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos);
releaseClip(); //裁切结束 // releaseClip(); //裁切结束
} // }
local RgbaValue = sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()); local RgbaValue = sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger());
if (PartyMasterIcon.InfoObj.Captain) RgbaValue = sq_RGBA(247, 214, 90, (250 * AlphaValue).tointeger()); if (PartyMasterIcon.InfoObj.Captain) RgbaValue = sq_RGBA(247, 214, 90, (250 * AlphaValue).tointeger());

View File

@ -67,14 +67,14 @@ class FiendwarNotiC extends LenheartNewUI_Windows {
} }
sq_DrawBox(X + 42 + 118, Y + 1 + 185, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]); sq_DrawBox(X + 42 + 118, Y + 1 + 185, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
//绘制队长头像 // //绘制队长头像
foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) { // foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
local AXpos = AvatarObj.D[0] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + 118; // local AXpos = AvatarObj.D[0] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + 118;
local AYpos = AvatarObj.D[1] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + 185; // local AYpos = AvatarObj.D[1] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + 185;
setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切 // setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos); // L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.C, AXpos, AYpos);
releaseClip(); //裁切结束 // releaseClip(); //裁切结束
} // }
} }

View File

@ -205,13 +205,10 @@ class Rindro_FiendwarApplyJoinC extends LenheartNewUI_Windows {
L_sq_DrawImg("hud/fiendwarl.img", 14, X + 8, Y + 40); L_sq_DrawImg("hud/fiendwarl.img", 14, X + 8, Y + 40);
//绘制角色头像 //绘制角色头像
if (AvatarArr) { if (AvatarArr) {
foreach(AvatarObj in AvatarArr) { //绘制队长头像
local AXpos = AvatarObj.F[0][2] + X + OffsetArr[Job][0] - 8; local AXpos = X + 42 - 8;
local AYpos = AvatarObj.F[0][3] + Y + OffsetArr[Job][1] + 40; local AYpos = Y + 1 + 40;
setClip(AXpos + OffsetArr[Job][2], AYpos + OffsetArr[Job][3], AXpos + OffsetArr[Job][2] + 22, AYpos + OffsetArr[Job][3] + 18); //开始裁切 AvatarArr.DrawFace(AXpos, AYpos);
L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos);
releaseClip(); //裁切结束
}
} }
//绘制角色等级 //绘制角色等级
L_sq_DrawCode(Level, X + 78 - LenheartTextClass.GetStringLength(Level) / 2, Y + 45, sq_RGBA(134, 120, 79, 255), 0, 1); L_sq_DrawCode(Level, X + 78 - LenheartTextClass.GetStringLength(Level) / 2, Y + 45, sq_RGBA(134, 120, 79, 255), 0, 1);

View File

@ -132,14 +132,14 @@ class Rindro_FiendwarPartyInfoMemberC extends LenheartNewUI_CommonUi {
L_sq_DrawImg("interface/newstyle/windows/party/party_icon.img", InfoObj.TeamId * 3, X, Y + 1); L_sq_DrawImg("interface/newstyle/windows/party/party_icon.img", InfoObj.TeamId * 3, X, Y + 1);
sq_DrawBox(X + 42, Y + 1, 22, 18, HandBoxColor[InfoObj.TeamId]); sq_DrawBox(X + 42, Y + 1, 22, 18, HandBoxColor[InfoObj.TeamId]);
//绘制队长头像 // //绘制队长头像
foreach(AvatarObj in InfoObj.EquVos) { // foreach(AvatarObj in InfoObj.EquVos) {
local AXpos = AvatarObj.F[0][2] + X + OffsetArr[InfoObj.Job][0]; // local AXpos = AvatarObj.F[0][2] + X + OffsetArr[InfoObj.Job][0];
local AYpos = AvatarObj.F[0][3] + Y + OffsetArr[InfoObj.Job][1]; // local AYpos = AvatarObj.F[0][3] + Y + OffsetArr[InfoObj.Job][1];
setClip(AXpos + OffsetArr[InfoObj.Job][2], AYpos + OffsetArr[InfoObj.Job][3], AXpos + OffsetArr[InfoObj.Job][2] + 22, AYpos + OffsetArr[InfoObj.Job][3] + 18); //开始裁切 // setClip(AXpos + OffsetArr[InfoObj.Job][2], AYpos + OffsetArr[InfoObj.Job][3], AXpos + OffsetArr[InfoObj.Job][2] + 22, AYpos + OffsetArr[InfoObj.Job][3] + 18); //开始裁切
L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos); // L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos);
releaseClip(); //裁切结束 // releaseClip(); //裁切结束
} // }
if (InfoObj.Captain) L_sq_DrawImg("hud/fiendwarl.img", 18, X + 42, Y + 1); if (InfoObj.Captain) L_sq_DrawImg("hud/fiendwarl.img", 18, X + 42, Y + 1);

View File

@ -209,14 +209,14 @@ class Rindro_FiendwarPlayerInteractiveC extends LenheartNewUI_Windows {
L_sq_DrawImg("interface2/popup_menu/popup_back.img", 0, X, Y); L_sq_DrawImg("interface2/popup_menu/popup_back.img", 0, X, Y);
//绘制角色名 //绘制角色名
L_sq_DrawCode(InfoObj.Name, X + 61 - LenheartTextClass.GetStringLength(InfoObj.Name) / 2, Y + 4, sq_RGBA(169, 255, 171, 255), 0, 1); L_sq_DrawCode(InfoObj.Name, X + 61 - LenheartTextClass.GetStringLength(InfoObj.Name) / 2, Y + 4, sq_RGBA(169, 255, 171, 255), 0, 1);
//绘制头像 // //绘制头像
foreach(AvatarObj in InfoObj.EquVos) { // foreach(AvatarObj in InfoObj.EquVos) {
local AXpos = AvatarObj.F[0][2] + X + OffsetArr[InfoObj.Job][0] - 40; // local AXpos = AvatarObj.F[0][2] + X + OffsetArr[InfoObj.Job][0] - 40;
local AYpos = AvatarObj.F[0][3] + Y + OffsetArr[InfoObj.Job][1]; // local AYpos = AvatarObj.F[0][3] + Y + OffsetArr[InfoObj.Job][1];
setClip(AXpos + OffsetArr[InfoObj.Job][2], AYpos + OffsetArr[InfoObj.Job][3], AXpos + OffsetArr[InfoObj.Job][2] + 22, AYpos + OffsetArr[InfoObj.Job][3] + 18); //开始裁切 // setClip(AXpos + OffsetArr[InfoObj.Job][2], AYpos + OffsetArr[InfoObj.Job][3], AXpos + OffsetArr[InfoObj.Job][2] + 22, AYpos + OffsetArr[InfoObj.Job][3] + 18); //开始裁切
L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos); // L_sq_DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos);
releaseClip(); //裁切结束 // releaseClip(); //裁切结束
} // }
LenheartNewUI_Windows.Show(obj); LenheartNewUI_Windows.Show(obj);
} }