(加里的Mod DarkRP)ammo.lua search jobs.lua中的通配符选择器

(加里的Mod DarkRP)ammo.lua search jobs.lua中的通配符选择器,lua,garrys-mod,Lua,Garrys Mod,我不确定这是否是游戏的正确部分,但仍然如此。我是一个开发中服务器的开发人员,我相信它使用FAdmin和ULX作为管理员。。东西。。无论如何我目前正在开发jobs.lua、shippings.lua和ammo.lua。它应该是一个军事RP,所以显然有很多定制的团队。装运?容易的工作?容易的弹药?好吧,如果这个问题有我想要的解决方案,可能会很容易。下面是两份工作、两次装运和一种弹药类型的摘录。我会解释每一部分 TEAM_ARMY = DarkRP.createJob("Army Infantry",

我不确定这是否是游戏的正确部分,但仍然如此。我是一个开发中服务器的开发人员,我相信它使用FAdmin和ULX作为管理员。。东西。。无论如何我目前正在开发jobs.lua、shippings.lua和ammo.lua。它应该是一个军事RP,所以显然有很多定制的团队。装运?容易的工作?容易的弹药?好吧,如果这个问题有我想要的解决方案,可能会很容易。下面是两份工作、两次装运和一种弹药类型的摘录。我会解释每一部分

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
})
这里有两个定制的陆军工作[团队]。这就是我面临的问题。我需要能够[比方说]为下面的弹药类型选择这两个以及无数其他工作,目标是他们成为唯一可以购买该弹药类型的团队/工作。我已经在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!"
})
我试图做的就是这样; 如果玩家在陆军团队,或陆军步兵工作,或在陆军团队%,其中%应该是通配符,那么这意味着它可以瞄准陆军猎枪团队,也可以瞄准陆军狙击手团队,如果这是陆军开始的唯一两个其他工作[尽管情况并非如此。]

装运使之更容易;有一个简单的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})

属性按[顺序]:名称;模型实体价格数量分离;普莱斯普;饮食;允许。allowed只允许我针对一个团队进行使用。可悲的是,弹药没有。所以我想弄清楚的是,如何从一个层面上选择多个组:IsTeamTEAM_ARMY,以“ARMY”开头,在ARMY之后有某种通配符进行选择?这样我就不会在弹药类型中大量使用成吨的弹药组。

您可以执行以下操作:

 customCheck = function(ply) return string.find(string.lower(team.GetName( ply:Team() )),"army") or ply:IsUserGroup("owner") end, 
string.find,如果在以下位置找到,则将返回一个数字:

例如:

findABC,B返回2,因为它是第二个字母

现在string.lower返回的是

例如:

string.lowerHello世界!返回你好世界

现在,team.GetName将根据团队编号获取团队名称,并获取我使用的编号ply:team,该编号返回一个数字

希望这会对你有所帮助,你可以很快恢复工作

如果它不工作,只需注释,则此代码未经测试