82 lines
2.2 KiB
Plaintext
82 lines
2.2 KiB
Plaintext
/*
|
|
文件名:PartyClass.nut
|
|
路径:BaseClass/PartyClass/PartyClass.nut
|
|
创建日期:2024-04-09 20:28
|
|
文件用途:Party类
|
|
*/
|
|
class Party extends Base_C_Object {
|
|
|
|
constructor(CObject) {
|
|
base.constructor(CObject);
|
|
}
|
|
|
|
|
|
//创建队伍
|
|
function Create(SUser) {
|
|
Sq_Party_CreateParty(C_Object, SUser.C_Object);
|
|
}
|
|
|
|
//给队伍加入玩家
|
|
function Join(SUser) {
|
|
Sq_Party_JoinParty(C_Object, SUser.C_Object);
|
|
}
|
|
|
|
//获取队长
|
|
function GetMaster() {
|
|
local Ret = Sq_CallFunc(S_Ptr("0x8145780"), "pointer", ["pointer"], this.C_Object);
|
|
if (Ret) {
|
|
local SUser = User(Ret);
|
|
if (SUser) return SUser;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
//发送每个玩家的IP广播 因为组队时p2p
|
|
function SendIpInfo() {
|
|
Sq_Party_SendPartyIpInfo(C_Object);
|
|
}
|
|
|
|
//获取战斗对象
|
|
function GetBattleField() {
|
|
return BattleField(Sq_Party_GetBattle_Field(C_Object));
|
|
}
|
|
|
|
//获取玩家
|
|
function GetUser(Pos) {
|
|
local C_User = Sq_CallFunc(S_Ptr("0x08145764"), "pointer", ["pointer", "int"], this.C_Object, Pos);
|
|
if (C_User) {
|
|
return User(C_User);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
//踢出玩家
|
|
function LeaveUser(SUser) {
|
|
Sq_CallFunc(S_Ptr("0x0859C114"), "int", ["pointer", "pointer", "int"], this.C_Object, SUser.C_Object, 2);
|
|
}
|
|
|
|
//从副本踢出玩家
|
|
function LeaveUserOnDgn(SUser) {
|
|
Sq_CallFunc(S_Ptr("0x085B2BAA"), "void", ["pointer", "pointer", "int", "int", "int"], this.C_Object, SUser.C_Object, 1, 0, 0);
|
|
}
|
|
|
|
//设置队伍可用复活币数量
|
|
function SetPartyMemberCoinLimit(Count) {
|
|
Sq_CallFunc(S_Ptr("0x085BE55A"), "pointer", ["pointer", "int"], this.C_Object, Count);
|
|
}
|
|
|
|
//遍历玩家并执行函数
|
|
function ForeachMember(Func) {
|
|
for (local i = 0; i< 4; i++) {
|
|
local SUser = GetUser(i);
|
|
if (SUser) {
|
|
Func(SUser, i);
|
|
}
|
|
}
|
|
}
|
|
|
|
//获取地下城清除状态
|
|
function Get_Dgn_Clear_State() {
|
|
return Sq_CallFunc(S_Ptr("0x0822D89C"), "int", ["pointer"], this.C_Object);
|
|
}
|
|
} |