0

我不确定这是否是游戏的正确部分,但仍然如此。我是开发中服务器的开发人员,我相信它使用 FAdmin 和 ULX 来管理 .. 事情.. 无论如何;我目前正在开发jobs.lua、ships.lua 和ammo.lua。应该是军用,所以显然有很多定制的团队。出货量?简单的。工作?简单的。弹药?好吧,如果这个问题有我正在寻找的解决方案,那可能会很容易。这是 2 个工作、2 个货物和 1 个弹药类型的摘录。我将针对每个部分进行解释。

TEAM_ARMY = DarkRP.createJob("Army Infantry", {
 color = Color(0, 0, 255, 0),
 model = "models/codmw2/codmw2h.mdl",    
 description = [[You are an Army Infantry! 
Please read the rules found in the !motd, it describes the limitations of each job very well!]],    
 weapons = {"fas2_g3", "fas2_glock20", "fas2_dv2"},
 command = "armyi",    
 max = 5,   
 salary = 80,
 admin = 0,
 vote = false,
 hasLicense = false
})

TEAM_ARMYSH = DarkRP.createJob("Army Shotgun", {
 color = Color(0, 0, 255, 0),
 model = "models/codmw2/codmw2.mdl",    
 description = [[You are an Army Support! 
Please read the rules found in the !motd, it describes the limitations of each job very well!]],    
 weapons = {"fas2_m3s90", "fas2_ots33", "fas2_dv2", "riot_shield"},
 command = "armys",    
 max = 4,   
 salary = 100,
 admin = 0,
 vote = false,
 hasLicense = false
})

这是两个自定义 ARMY 工作 [团队]。这是我面临的问题。我需要能够[比方说]为下面的弹药类型选择这两个以及无数其他工作,以使他们成为唯一可以购买该弹药类型的团队/工作。我在 DarkRP Wiki 上看过教程,但这不是该服务器的正确格式。弹药类型作为 FAS2 弹药导入。

DarkRP.createAmmoType("5.56x45MM",  {
 name = "5.56x45MM",
 model = "models/items/boxsrounds.mdl",
 price = 145,
 amountGiven = 60,
 customCheck = function(ply) return CLIENT or ply:IsTeam("TEAM_ARMY") or ply:IsTeam(TEAM_%ARMY$) or ply:IsUserGroup("owner") end,
  CustomCheckFailMsg = "You must be apart of the Army!"
})

我试图做的是这个;如果玩家在 TEAM_ARMY,或者是陆军步兵工作,或者在 TEAM_ARMY%,其中 % 应该是通配符,那么这意味着它可以针对陆军霰弹枪的 TEAM_ARMYSH 和陆军狙击手的 TEAM_ARMYS,如果这是仅有的另外两个以 ARMY 开头的工作 [尽管事实并非如此。]

货物使事情变得更容易;有一个简单的allowed = {}cmd 行,可以像这样使用。

AddCustomShipment("AK12", "models/weapons/world/rifles/w_ak12.mdl",  "fas2_ak12",  3500,  1  true,  3500,  true,  {TEAM_TALI})

AddCustomShipment("AK47",  "models/weapons/w_ak47.mdl",  "fas2_ak47",  4000,  1  true,  4000,  true,  {TEAM_TALI, TEAM_BMARKET})

属性[按顺序]:名称;模型; 实体; 价格; 数量; 分开;价格九月;无船;并允许。允许的只是让我针对使用的团队。可悲的是,弹药没有。所以我想弄清楚的是如何从一层中选择多个组:IsTeam("TEAM_ARMY") 以 'ARMY' 开头并且在 ARMY 之后有某种通配符供选择?这样我就不会用大量的弹药组来淹没弹药类型。

4

1 回答 1

1

您可以执行以下操作:

 customCheck = function(ply) return string.find(string.lower(team.GetName( ply:Team() )),"army") or ply:IsUserGroup("owner") end, 

string.find(<haystack>,<needle>)如果在以下位置找到<needle>,将返回一个数字<haystack>

例子:

string.find("ABC","B")返回2,因为它是第二个字母。

现在string.lower(<text>)返回小写版本<text>

例子:

string.lower("Hello World!")返回"hello world!"

现在team.GetName(<number>)让团队名称偏向于团队编号,并获得我使用ply:Team()的返回数字的数字。

希望这会对您有所帮助,并且您可以快速恢复工作。

如果它不起作用只是评论,则此代码未经测试。

于 2015-01-11T15:32:21.857 回答