update: 玩家出生装备, 队伍和个人兼容.
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
* @file config.c
|
* @file config.c
|
||||||
* @author 稻草人
|
* @author 稻草人
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @date 2025-00-01
|
* @date 2025-02-12
|
||||||
* @copyright Copyright (c) 2025
|
* @copyright Copyright (c) 2025
|
||||||
*
|
*
|
||||||
* @brief This file contains the configuration for the custom revival suit feature.
|
* @brief This file contains the configuration for the custom revival suit feature.
|
||||||
@@ -52,28 +52,21 @@ class CustomRevivalSuitCfg
|
|||||||
ref PlayerRevivalEquipmentData GetPlayerRevivalEquipmentData( string steamid )
|
ref PlayerRevivalEquipmentData GetPlayerRevivalEquipmentData( string steamid )
|
||||||
{
|
{
|
||||||
foreach ( ref PlayerRevivalEquipmentData playerData : PlayerRevivalEquipmentDataList )
|
foreach ( ref PlayerRevivalEquipmentData playerData : PlayerRevivalEquipmentDataList )
|
||||||
if ( playerData.SteamId == steamid )
|
{
|
||||||
|
if ( !playerData ) continue;
|
||||||
|
ref TStringArray TeamMembers = playerData.TeamMembers;
|
||||||
|
if ( TeamMembers && TeamMembers.Find( steamid ) > -1 )
|
||||||
return playerData;
|
return playerData;
|
||||||
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemovePlayerRevivalEquipmentData( string steamid )
|
|
||||||
{
|
|
||||||
foreach ( ref PlayerRevivalEquipmentData playerData : PlayerRevivalEquipmentDataList )
|
|
||||||
{
|
|
||||||
if ( playerData.SteamId == steamid )
|
|
||||||
{
|
|
||||||
PlayerRevivalEquipmentDataList.RemoveItem( playerData );
|
|
||||||
SaveConfig()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class PlayerRevivalEquipmentData
|
class PlayerRevivalEquipmentData
|
||||||
{
|
{
|
||||||
string SteamId;
|
// string SteamId;
|
||||||
|
ref TStringArray TeamMembers;
|
||||||
|
|
||||||
ref TStringArray Equipments;
|
ref TStringArray Equipments;
|
||||||
ref TStringArray ItemList;
|
ref TStringArray ItemList;
|
||||||
@@ -81,7 +74,10 @@ class PlayerRevivalEquipmentData
|
|||||||
|
|
||||||
void PlayerRevivalEquipmentData( string steamid )
|
void PlayerRevivalEquipmentData( string steamid )
|
||||||
{
|
{
|
||||||
SteamId = steamid;
|
// SteamId = steamid;
|
||||||
|
TeamMembers = new TStringArray();
|
||||||
|
TeamMembers.Insert( steamid );
|
||||||
|
|
||||||
Equipments = { "WoolGloves_White", "BaseballCap_Black",
|
Equipments = { "WoolGloves_White", "BaseballCap_Black",
|
||||||
"Jeans_Blue", "Wellies_Black", "TShirt_Black"
|
"Jeans_Blue", "Wellies_Black", "TShirt_Black"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,12 +2,10 @@
|
|||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
//INIT ECONOMY--------------------------------------
|
|
||||||
Hive ce = CreateHive();
|
Hive ce = CreateHive();
|
||||||
if ( ce )
|
if ( ce )
|
||||||
ce.InitOffline();
|
ce.InitOffline();
|
||||||
|
|
||||||
//DATE RESET AFTER ECONOMY INIT-------------------------
|
|
||||||
int year, month, day, hour, minute;
|
int year, month, day, hour, minute;
|
||||||
int reset_month = 9, reset_day = 20;
|
int reset_month = 9, reset_day = 20;
|
||||||
GetGame().GetWorld().GetDate(year, month, day, hour, minute);
|
GetGame().GetWorld().GetDate(year, month, day, hour, minute);
|
||||||
@@ -34,6 +32,10 @@ void main()
|
|||||||
|
|
||||||
class CustomMission: MissionServer
|
class CustomMission: MissionServer
|
||||||
{
|
{
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
// 初始化方法:在服务器启动时调用
|
||||||
|
// 功能:加载复活套装配置并打印加载状态
|
||||||
|
//------------------------------------------------------------------
|
||||||
override void OnInit()
|
override void OnInit()
|
||||||
{
|
{
|
||||||
super.OnInit();
|
super.OnInit();
|
||||||
@@ -42,7 +44,15 @@ class CustomMission: MissionServer
|
|||||||
if ( g_CustomRevivalSuitCfg )
|
if ( g_CustomRevivalSuitCfg )
|
||||||
Print( "[复活套装]: 已加载" );
|
Print( "[复活套装]: 已加载" );
|
||||||
}
|
}
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
// 创建角色方法:在玩家首次加入或重生时调用
|
||||||
|
// 参数:
|
||||||
|
// identity - 玩家身份信息
|
||||||
|
// pos - 出生位置
|
||||||
|
// ctx - 上下文参数
|
||||||
|
// characterName - 角色名称
|
||||||
|
// 返回:PlayerBase - 创建的角色对象
|
||||||
|
//------------------------------------------------------------------
|
||||||
override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
|
override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
|
||||||
{
|
{
|
||||||
Entity playerEnt;
|
Entity playerEnt;
|
||||||
@@ -53,7 +63,15 @@ class CustomMission: MissionServer
|
|||||||
|
|
||||||
return m_player;
|
return m_player;
|
||||||
}
|
}
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
// 初始装备设置方法:在玩家重生时调用
|
||||||
|
// 功能:根据玩家身份加载VIP装备,并设置默认装备, 如果玩家不是VIP,则使用
|
||||||
|
// 默认的系统装备, 注意如果你要添加非VIP玩家的装备,
|
||||||
|
// 请在 DefaultPlayerEquipment 方法中添加.
|
||||||
|
// 参数:
|
||||||
|
// player - 玩家对象
|
||||||
|
// clothesChosen - 是否已选择服装
|
||||||
|
//------------------------------------------------------------------
|
||||||
override void StartingEquipSetup( PlayerBase player, bool clothesChosen )
|
override void StartingEquipSetup( PlayerBase player, bool clothesChosen )
|
||||||
{
|
{
|
||||||
GetCustomRevivalSuitCfg();
|
GetCustomRevivalSuitCfg();
|
||||||
@@ -66,7 +84,13 @@ class CustomMission: MissionServer
|
|||||||
|
|
||||||
DefaultPlayerEquipment( player, clothesChosen );
|
DefaultPlayerEquipment( player, clothesChosen );
|
||||||
}
|
}
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
// 处理VIP装备方法:为VIP玩家设置自定义装备
|
||||||
|
// 参数:
|
||||||
|
// player - 玩家对象
|
||||||
|
// equ_data - VIP装备数据
|
||||||
|
// VIP玩家的出生装备处理方法, 这里根据josn配置的来生成, 不懂,请勿改动
|
||||||
|
//------------------------------------------------------------------
|
||||||
void ProcessVIPEquipment( PlayerBase player, ref PlayerRevivalEquipmentData equ_data )
|
void ProcessVIPEquipment( PlayerBase player, ref PlayerRevivalEquipmentData equ_data )
|
||||||
{
|
{
|
||||||
if ( !equ_data ) return;
|
if ( !equ_data ) return;
|
||||||
@@ -99,7 +123,11 @@ class CustomMission: MissionServer
|
|||||||
ItemBase.Cast( weapon.GetInventory().CreateInInventory( attachment ) );
|
ItemBase.Cast( weapon.GetInventory().CreateInInventory( attachment ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
// 设置随机健康值方法:为物品设置随机的健康值
|
||||||
|
// 参数:
|
||||||
|
// itemEnt - 物品实体
|
||||||
|
//------------------------------------------------------------------
|
||||||
void SetRandomHealth(EntityAI itemEnt)
|
void SetRandomHealth(EntityAI itemEnt)
|
||||||
{
|
{
|
||||||
if (itemEnt)
|
if (itemEnt)
|
||||||
@@ -108,7 +136,13 @@ class CustomMission: MissionServer
|
|||||||
itemEnt.SetHealth01( "", "", rndHlt );
|
itemEnt.SetHealth01( "", "", rndHlt );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
// 默认装备设置方法:为玩家设置默认的初始装备
|
||||||
|
// 参数:
|
||||||
|
// player - 玩家对象
|
||||||
|
// clothesChosen - 是否已选择服装
|
||||||
|
// 这里的代码是原版init.c中 StartingEquipSetup 方法中的内容, 只是换了个方法名字
|
||||||
|
//------------------------------------------------------------------
|
||||||
void DefaultPlayerEquipment( PlayerBase player, bool clothesChosen )
|
void DefaultPlayerEquipment( PlayerBase player, bool clothesChosen )
|
||||||
{
|
{
|
||||||
EntityAI itemClothing;
|
EntityAI itemClothing;
|
||||||
|
|||||||
Reference in New Issue
Block a user