一.巨人
sbyte boneIndex = Skeleton.GetBoneIndexFromName(Mission
.MainAgent.AgentVisuals.GetSkeleton().GetName(), "r_hand");
cp = Mission.MainAgent.AgentVisuals
.AddPrefabToAgentVisualBoneByRealBoneIndex("p_sword_a", boneIndex);
float agentScale = Mission.MainAgent.AgentScale;
agentScale += 9f;
MethodInfo method = AccessTools.Method(typeof(Agent), "SetInitialAgentScale");
method.Invoke(Mission.MainAgent, new object[1] { agentScale });
二.巨人践踏
public class HugeManTimer_1 : PLCommonBasicMissionTimer
{
private Mission _mission;
public HugeManTimer_1(Mission mission, float triggerInterval, bool isTriggerOnce) : base(triggerInterval, isTriggerOnce)
{
_mission = mission;
}
public override void TriggerTimerScript()
{
try
{
MainAgentSpeedUp();
MainAgentSwordAttack();
}
catch (Exception ex)
{
File.AppendAllLines(PLModuleConstans.ModuleCrashLogPath, new string[] { ex.ToString(), ex.Message, ex.StackTrace });
}
}
private void MainAgentSpeedUp()
{
if (Input.IsKeyDown(InputKey.W))
{
PLAgentUtilities.AgentMoveAlongAxix(_mission.MainAgent, 0.3f, PLAgentUtilities.Axix.Y);
}
if (Input.IsKeyDown(InputKey.S))
{
PLAgentUtilities.AgentMoveAlongAxix(_mission.MainAgent, -0.3f, PLAgentUtilities.Axix.Y);
}
if (Input.IsKeyDown(InputKey.A))
{
PLAgentUtilities.AgentMoveAlongAxix(_mission.MainAgent, -0.3f, PLAgentUtilities.Axix.X);
}
if (Input.IsKeyDown(InputKey.D))
{
PLAgentUtilities.AgentMoveAlongAxix(_mission.MainAgent, 0.3f, PLAgentUtilities.Axix.X);
}
}
private void MainAgentSwordAttack()
{
if (MissionAgentBehavior.cp == null)
{
return;
}
if (Input.IsKeyPressed(InputKey.LeftMouseButton))
{
MBList<Agent> enemyAgentList = new MBList<Agent>();
_mission.GetNearbyEnemyAgents(new Vec2(_mission.MainAgent.Frame.origin.x, _mission.MainAgent.Frame.origin.y),
5f, _mission.MainAgent.Team, enemyAgentList);
foreach (Agent enemyAgent in enemyAgentList)
{
PLAgentUtilities.GiveDamageToAgent(_mission.MainAgent, enemyAgent, 60);
}
}
if (Input.IsKeyPressed(InputKey.Space))
{
MBList<Agent> enemyAgentList = new MBList<Agent>();
_mission.GetNearbyEnemyAgents(new Vec2(_mission.MainAgent.Frame.origin.x, _mission.MainAgent.Frame.origin.y),
5f, _mission.MainAgent.Team, enemyAgentList);
foreach (Agent enemyAgent in enemyAgentList)
{
PLAgentUtilities.GiveDamageToAgent(_mission.MainAgent, enemyAgent, 100);
}
}
}
}