219 lines
9.1 KiB
Lua
219 lines
9.1 KiB
Lua
require("Script.Global.Table.ItemTable");
|
||
|
||
ESoldierType = {
|
||
SuicideSquad = 1, -- 敢死队
|
||
Sniper = 2, -- 狙击手
|
||
Rifleman = 3, -- 突击兵
|
||
MedicalCorps = 4, -- 医疗兵
|
||
Demolitions = 5, -- 爆破兵
|
||
Commander = 6, -- 指挥官
|
||
Volunteer = 7, -- 志愿兵
|
||
SpecialSoldier = 8, -- 特战兵
|
||
AntichemicalCorp = 9, -- 防化兵
|
||
HeavyCorp = 10, -- 重装兵
|
||
Archer = 11, -- 弓箭手
|
||
Musketeer = 12, -- 火枪手
|
||
Scout = 13, -- 侦察兵
|
||
};
|
||
|
||
ESoldierAddType = {
|
||
MaxHealth = 1;
|
||
Damage = 2;
|
||
Speed = 3;
|
||
Poison = 4;
|
||
Defence = 5;
|
||
Jump = 6;
|
||
};
|
||
|
||
ESoldierAddName = {
|
||
[ESoldierAddType.MaxHealth] = { "生命", 1 },
|
||
[ESoldierAddType.Damage] = { "伤害", 1 },
|
||
[ESoldierAddType.Speed] = { "速度", 1 },
|
||
[ESoldierAddType.Poison] = { "信号", 1 },
|
||
[ESoldierAddType.Defence] = { "防御", 1 },
|
||
[ESoldierAddType.Jump] = { "跳跃", 1 },
|
||
}
|
||
|
||
--- 默认添加的物品
|
||
SoldierCommonInfo = {
|
||
Bombs = { Grenade = 1, FireBomb = 1, StunGrenade = 0, SmokeBomb = 1, },
|
||
Medications = { Drink = 1, Injection = 0, Pills = 1, Bandage = 5, FirstAid = 1 },
|
||
Bag = EBagType.Bag1,
|
||
}
|
||
|
||
SoldierConfig = {
|
||
[ESoldierType.SuicideSquad] = {
|
||
Benefit = { MaxHealth = 1.5, Damage = 1.5, Speed = 1.5, },
|
||
Info = { Name = "冲锋兵", ShortDesc = "血厚-高伤-高移速", Desc = "勇猛向前,无惧困难\n技能:无敌\n可在短时间内无敌", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_Melee },
|
||
Bomb = { StunGrenade = 1, SmokeBomb = -1, } -- 相较于普通兵种来说
|
||
},
|
||
Medications = { Bandage = -3, FirstAid = -1 },
|
||
Armors = { EArmorType.Armor1, EHelmetType.Helmet1, };
|
||
Buff = {
|
||
Name = "Invincible",
|
||
}
|
||
},
|
||
[ESoldierType.Sniper] = {
|
||
Benefit = { Damage = 2, },
|
||
Info = { Name = "狙击手", ShortDesc = "伤害非常高", Desc = "不瞒你说,素有鹰眼之称\n技能:鹰眼\n己方可以看到敌方玩家的位置", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_SingleShotSniper, EWeaponTypeNew.EWeaponTypeNew_BurstShotSniper, },
|
||
},
|
||
Armors = { EArmorType.Armor3, EHelmetType.Helmet3, };
|
||
Buff = { Name = "ShowEnemyPos", },
|
||
},
|
||
[ESoldierType.Rifleman] = {
|
||
--Benefit = { MaxHealth = 1.5, Damage = 1.5, Speed = 1.5, },
|
||
Info = { Name = "突击兵", ShortDesc = "呼吸恢复", Desc = "满血俺向前,残血俺就跑\n技能:呼吸回血\n脱离战斗几秒后回血", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_Rifle, EWeaponTypeNew.EWeaponTypeNew_Submachine, },
|
||
--Bomb = { StunGrenade = 1, SmokeBomb = -1, } -- 相较于普通兵中来说
|
||
},
|
||
Armors = { EArmorType.Armor2, EHelmetType.Helmet2, };
|
||
Funcs = {
|
||
OnPawnInit = function(Pawn)
|
||
-- 添加进去
|
||
UGCEventSystem.SendEvent(EventTypes.AddAutoHealing, Pawn.PlayerKey, UGCPawnAttrSystem.GetTeamID(Pawn), true);
|
||
end
|
||
}
|
||
},
|
||
[ESoldierType.MedicalCorps] = {
|
||
Benefit = { MaxHealth = 1.5, Poison = 0.75, }, -- 小于平均值更容易受信号圈的伤害
|
||
Info = { Name = "医疗兵", ShortDesc = "奶妈", Desc = "没事,有我呢!\n技能:全体治疗\n瞬间治疗,其他医疗兵回复减半", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_Rifle, EWeaponTypeNew.EWeaponTypeNew_Submachine, },
|
||
--Bomb = { StunGrenade = 1, SmokeBomb = -1, } -- 相较于普通兵中来说
|
||
},
|
||
Medications = { Bandage = -3 },
|
||
Armors = { EArmorType.Armor2, EHelmetType.Helmet2, };
|
||
Buff = { Name = "AddHealth", }
|
||
},
|
||
[ESoldierType.Demolitions] = {
|
||
Info = { Name = "爆破兵", ShortDesc = "高爆手雷", Desc = "艺术就是爆炸\n特征:拥有更多的炸弹,投掷物伤害增强", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_Submachine, },
|
||
Bomb = { Grenade = 3, FireBomb = 2, StunGrenade = 1, } -- 相较于普通兵中来说
|
||
},
|
||
Armors = { EArmorType.Armor2, EHelmetType.Helmet2, };
|
||
},
|
||
[ESoldierType.Scout] = {
|
||
Benefit = { MaxHealth = 1.2, Damage = 1.2, Speed = 1.5, Jump = 1.5, },
|
||
Info = { Name = "侦察兵", ShortDesc = "移速非常快", Desc = "小喽啰一枚", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_Pistol, },
|
||
Bomb = { StunGrenade = 1, SmokeBomb = -1, } -- 相较于普通兵中来说
|
||
},
|
||
Medications = { Drink = 1, Injection = 1, Pills = 1, FirstAid = 1, },
|
||
Armors = { EArmorType.Armor1, EHelmetType.Helmet1, };
|
||
},
|
||
[ESoldierType.Commander] = {
|
||
--Benefit = { MaxHealth = 1.5, Damage = 1.5, Speed = 1.5, },
|
||
Info = { Name = "指挥官", ShortDesc = "全队强化", Desc = "好好干,明年就给你加薪!\n技能:提升士气\n全队攻击力提升1.3倍", },
|
||
LimitCount = 1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_Pistol, EWeaponTypeNew.EWeaponTypeNew_Rifle, },
|
||
Count = 2,
|
||
Bomb = { StunGrenade = 1, SmokeBomb = -1, }, -- 相较于普通兵中来说
|
||
},
|
||
Armors = { EArmorType.Armor2, EHelmetType.Helmet2, };
|
||
Buff = { Name = "AddDamage" }
|
||
},
|
||
[ESoldierType.Volunteer] = {
|
||
--Benefit = { MaxHealth = 1.5, Damage = 1.5, Speed = 1.5, },
|
||
Info = { Name = "支援兵", ShortDesc = "无限子弹", Desc = "数量没输过,伤害没赢过\n技能:无限子弹", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_MachineGun, },
|
||
Bomb = { StunGrenade = 1, SmokeBomb = -1, } -- 相较于普通兵中来说
|
||
},
|
||
Armors = { EArmorType.Armor2, EHelmetType.Helmet2, };
|
||
Funcs = {
|
||
OnPlayerGetWeapon = function(Pawn, Weapon)
|
||
UGCLogSystem.Log("[SoldierConfig:Volunteer] %s 获取武器 %s", UGCPawnAttrSystem.GetPlayerName(Pawn), UGCWeaponManagerSystem.GetWeaponName(Weapon));
|
||
if ItemTool.IsShootWeapon(Weapon) then
|
||
-- 设置为无限子弹
|
||
ItemTool.SetWeaponInfinite(Pawn, Weapon, EFillBulletType.Infinite, true);
|
||
end
|
||
end
|
||
},
|
||
},
|
||
[ESoldierType.SpecialSoldier] = {
|
||
--Benefit = { MaxHealth = 1.5, Damage = 1.5, Speed = 1.5, },
|
||
Info = { Name = "特战兵", ShortDesc = "特殊武器", Desc = "没有任何困难是RPG解决不了的\n特征:拥有特殊武器", },
|
||
LimitCount = 2,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_Special, EWeaponTypeNew.EWeaponTypeNew_Pistol, },
|
||
Count = 2,
|
||
Bomb = { StunGrenade = 1, SmokeBomb = -1, } -- 相较于普通兵中来说
|
||
},
|
||
Armors = { EArmorType.Armor2, EHelmetType.Helmet2, };
|
||
},
|
||
[ESoldierType.AntichemicalCorp] = {
|
||
Benefit = { Poison = 1, },
|
||
Info = { Name = "防化兵", ShortDesc = "免疫增加", Desc = "安全区外很安全!\n技能:一段时间内无视安全区的效果", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_SingleShotSniper, EWeaponTypeNew.EWeaponTypeNew_BurstShotSniper, },
|
||
Bomb = { SmokeBomb = 1, } -- 相较于普通兵中来说
|
||
},
|
||
Armors = { EArmorType.Armor3, EHelmetType.Helmet2, };
|
||
Buff = { Name = "IgnorePoison" },
|
||
},
|
||
[ESoldierType.HeavyCorp] = {
|
||
Benefit = { MaxHealth = 2, Damage = 1.2, Speed = 0.75, },
|
||
Info = { Name = "重装兵", ShortDesc = "血厚-高伤-移速慢", Desc = "主打的就是一个安全感\n技能:全队防御力提升0.5倍", },
|
||
LimitCount = 2,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_MachineGun, },
|
||
Bomb = { StunGrenade = 1, SmokeBomb = -1, } -- 相较于普通兵中来说
|
||
},
|
||
Armors = { EArmorType.Armor3, EHelmetType.Helmet3, };
|
||
Buff = { Name = "AllDefence" },
|
||
},
|
||
[ESoldierType.Archer] = {
|
||
--Benefit = { MaxHealth = 1.5, Damage = 1.5, Speed = 1.5, },
|
||
Info = { Name = "弓箭手", ShortDesc = "爆炸弩箭", Desc = "我有一箭!!\n特征:弓箭在落地会爆炸", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_Crossbow, },
|
||
Bomb = { StunGrenade = 1, SmokeBomb = -1, } -- 相较于普通兵中来说
|
||
},
|
||
Armors = { EArmorType.Armor2, EHelmetType.Helmet2, };
|
||
Funcs = {
|
||
---@param HitInfo FHitResult
|
||
OnWeaponBulletHit = function(Pawn, ShootWeapon, Bullet, HitInfo)
|
||
-- 在该位置放炸弹
|
||
UGCLogSystem.Log("[SoldierConfig:Archer] 武器 %s 射击", UGCWeaponManagerSystem.GetWeaponName(ShootWeapon));
|
||
if IsServer then
|
||
BuffManager:Add(Pawn.PlayerKey, EBuffType["BombExplosion"], VectorHelper.ToLuaTable(HitInfo.Location));
|
||
end
|
||
end,
|
||
OnPlayerGetWeapon = function(Pawn, Weapon)
|
||
-- 设置换弹时间
|
||
if ItemTool.IsShootWeapon(Weapon) then
|
||
UGCGunSystem.SetReloadTime(Weapon, 0.5);
|
||
end
|
||
end,
|
||
}
|
||
},
|
||
[ESoldierType.Musketeer] = {
|
||
Benefit = { MaxHealth = 1.2, },
|
||
Info = { Name = "火枪手", ShortDesc = "近战之神", Desc = "真男人不需要解释", },
|
||
LimitCount = -1,
|
||
Weapons = {
|
||
Main = { EWeaponTypeNew.EWeaponTypeNew_ShotGun, },
|
||
Bomb = { StunGrenade = 1, SmokeBomb = -1, }, -- 相较于普通兵中来说
|
||
Others = { { "突击盾牌", 1, } }, -- 给个盾牌
|
||
},
|
||
Medications = { Drink = 1, },
|
||
Armors = { EArmorType.Armor3, EHelmetType.Helmet3, };
|
||
},
|
||
} |