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);
 | |
|     }
 | |
| } |