| 🌟 | 現在、 鉄壁HSは通常HSと同じダメージになります。LMG及びDMR、チャージライフル、ハンマーポイント弾を除き、すべてのダメージ値が一致していることを確認しています。 |
「モジュール:Utility/Prototypes」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「local proto = {} -- Define types local types = { Table = 'table', Boolean = 'boolean', Number = 'number', String = 'string', } -- Simple types function proto.Bool…」) |
(typeが'table'の場合正しく関数が呼び出されない問題の修正) |
||
| (同じ利用者による、間の1版が非表示) | |||
| 45行目: | 45行目: | ||
end | end | ||
for key, typename in pairs(protodef) do | for key, typename in pairs(protodef) do | ||
if type(typename) == | if type(typename) == types.Table then | ||
if not proto. | if not proto.validateTypes(obj[key], typename) then | ||
return false | return false | ||
end | end | ||
2021年5月13日 (木) 18:06時点における最新版
このモジュールについての説明文ページを モジュール:Utility/Prototypes/doc に作成できます
local proto = {}
-- Define types
local types = {
Table = 'table',
Boolean = 'boolean',
Number = 'number',
String = 'string',
}
-- Simple types
function proto.Boolean(obj)
return type(obj) ~= types.Boolean
end
function proto.Number(obj)
return type(obj) ~= types.Number
end
function proto.Integer(obj)
return not (type(obj) == types.Number and math.floor(obj) == obj)
end
function proto.String(obj)
return type(obj) ~= types.String
end
-- Complex types
function proto.NumberRange(from, to)
return function(obj)
if type(obj) ~= types.Number then
return true
end
if type(from) == types.Number and obj < from then
return true
end
if type(to) == types.Number and obj > to then
return true
end
return false
end
end
-- Check object types
function proto.validateTypes(obj, protodef)
if type(obj) ~= types.Table then
return false
end
for key, typename in pairs(protodef) do
if type(typename) == types.Table then
if not proto.validateTypes(obj[key], typename) then
return false
end
elseif typename(obj[key]) then
return false
end
end
return true
end
return proto