update: 玩家出生装备, 队伍和个人兼容.

This commit is contained in:
Dcr
2025-02-12 13:24:21 +08:00
parent ef879dd95b
commit a501487e93
2 changed files with 54 additions and 24 deletions

View File

@@ -2,12 +2,10 @@
void main()
{
//INIT ECONOMY--------------------------------------
Hive ce = CreateHive();
if ( ce )
ce.InitOffline();
//DATE RESET AFTER ECONOMY INIT-------------------------
int year, month, day, hour, minute;
int reset_month = 9, reset_day = 20;
GetGame().GetWorld().GetDate(year, month, day, hour, minute);
@@ -34,6 +32,10 @@ void main()
class CustomMission: MissionServer
{
//------------------------------------------------------------------
// 初始化方法:在服务器启动时调用
// 功能:加载复活套装配置并打印加载状态
//------------------------------------------------------------------
override void OnInit()
{
super.OnInit();
@@ -42,7 +44,15 @@ class CustomMission: MissionServer
if ( g_CustomRevivalSuitCfg )
Print( "[复活套装]: 已加载" );
}
//------------------------------------------------------------------
// 创建角色方法:在玩家首次加入或重生时调用
// 参数:
// identity - 玩家身份信息
// pos - 出生位置
// ctx - 上下文参数
// characterName - 角色名称
// 返回PlayerBase - 创建的角色对象
//------------------------------------------------------------------
override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
{
Entity playerEnt;
@@ -53,7 +63,15 @@ class CustomMission: MissionServer
return m_player;
}
//------------------------------------------------------------------
// 初始装备设置方法:在玩家重生时调用
// 功能根据玩家身份加载VIP装备并设置默认装备, 如果玩家不是VIP,则使用
// 默认的系统装备, 注意如果你要添加非VIP玩家的装备,
// 请在 DefaultPlayerEquipment 方法中添加.
// 参数:
// player - 玩家对象
// clothesChosen - 是否已选择服装
//------------------------------------------------------------------
override void StartingEquipSetup( PlayerBase player, bool clothesChosen )
{
GetCustomRevivalSuitCfg();
@@ -66,7 +84,13 @@ class CustomMission: MissionServer
DefaultPlayerEquipment( player, clothesChosen );
}
//------------------------------------------------------------------
// 处理VIP装备方法为VIP玩家设置自定义装备
// 参数:
// player - 玩家对象
// equ_data - VIP装备数据
// VIP玩家的出生装备处理方法, 这里根据josn配置的来生成, 不懂,请勿改动
//------------------------------------------------------------------
void ProcessVIPEquipment( PlayerBase player, ref PlayerRevivalEquipmentData equ_data )
{
if ( !equ_data ) return;
@@ -99,7 +123,11 @@ class CustomMission: MissionServer
ItemBase.Cast( weapon.GetInventory().CreateInInventory( attachment ) );
}
}
//------------------------------------------------------------------
// 设置随机健康值方法:为物品设置随机的健康值
// 参数:
// itemEnt - 物品实体
//------------------------------------------------------------------
void SetRandomHealth(EntityAI itemEnt)
{
if (itemEnt)
@@ -108,7 +136,13 @@ class CustomMission: MissionServer
itemEnt.SetHealth01( "", "", rndHlt );
}
}
//------------------------------------------------------------------
// 默认装备设置方法:为玩家设置默认的初始装备
// 参数:
// player - 玩家对象
// clothesChosen - 是否已选择服装
// 这里的代码是原版init.c中 StartingEquipSetup 方法中的内容, 只是换了个方法名字
//------------------------------------------------------------------
void DefaultPlayerEquipment( PlayerBase player, bool clothesChosen )
{
EntityAI itemClothing;