2014-11-27 3 views
0

Я не уверен, что это правильный раздел для игр, но все же. Я разработчик для in-dev-сервера, который, я считаю, использует FAdmin & ULX для администратора .. все в любом случае; В настоящее время я занимаюсь разработкой jobs.lua, shipments.lua и ammo.lua. Предполагается, что это военный корабль, так что, очевидно, много команд на заказ. Отгрузки? Легко. Работа? Легко. Патроны? Ну, это может быть легко, если у этого вопроса есть решение, которое я ищу. Вот выдержка из 2 рабочих мест, 2 отгрузки и 1 тип боеприпасов. Я объясню для каждого раздела.(Garry's Mod DarkRP) Подстановочный переключатель от ammo.lua search jobs.lua

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 или армейской пехоте, OR находится на 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}) 

Атрибуты go [in order]: Name; Модель; Сущность; Цена; Количество; Seperate; PriceSep; NoShip; и разрешено. Разрешенное просто позволяет мне нацелить команду на использование. К сожалению, боеприпасов нет. Так что я пытаюсь выяснить, как я могу выбрать несколько групп из одного слоя: IsTeam («TEAM_ARMY»), которые начинаются с «ARMY» и имеют какой-то подстановочный знак после ARMY для выбора? Это так, что я не наводняю типы боеприпасов тоннами и тоннами групп.

ответ

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(), который возвращает число.

Надеюсь, это поможет вам, и вы сможете быстро вернуться к работе над ним.

Если это не работает просто комментарий, этот код не проверен.