diff --git a/lua/ulx/modules/sh/metrostroi.lua b/lua/ulx/modules/sh/metrostroi.lua index 9a81600..3e6da25 100644 --- a/lua/ulx/modules/sh/metrostroi.lua +++ b/lua/ulx/modules/sh/metrostroi.lua @@ -321,7 +321,7 @@ function ulx.changecab( calling_ply ) if not IsValid(calling_ply) then return end local Wagon = calling_ply:GetTrain() if not IsValid(Wagon) then - ULib.tsayError( calling_ply, "You ,ust sit in train",true) + ULib.tsayError( calling_ply, "You must sit in train",true) return end @@ -505,6 +505,75 @@ tps:addParam{ type=ULib.cmds.StringArg, hint="Station or station number", ULib.c tps:defaultAccess( ULib.ACCESS_ALL ) tps:help( "Teleport between stations." ) + +function ulx.sroutes( calling_ply, sig ) + if not IsValid(calling_ply) then return end + local Train = calling_ply:GetTrain() + if IsValid(Train) and (not sig or sig == "") then + local signal + -- Get train position + local pos = Metrostroi.TrainPositions[Train] + if pos then pos = pos[1] end + -- Get previous ARS section + if pos then + signal = Metrostroi.GetARSJoint(pos.node1,pos.x,Metrostroi.TrainDirections[Train], Train) + end + if signal then + local found = false + for k,v in pairs(signal.Routes or {}) do + if v.RouteName != "" then + found = true + break + end + end + if not found then + ULib.tsayError( calling_ply, "Signal routes not found", true) + return + end + ulx.fancyLog("Routes of signal #s:", signal.Name) + for k,v in pairs(signal.Routes) do + if v.RouteName != "" then + ulx.fancyLog("#s", v.RouteName) + end + end + else + ULib.tsayError( calling_ply, "Signal not found", true) + end + else + local signal = Metrostroi.GetSignalByName(sig) + if not signal and sig then + signal = Metrostroi.GetSignalByName(sig:upper()) + end + if not signal then + ULib.tsayError( calling_ply, "Signal not found", true) + return + end + + local found = false + for k,v in pairs(signal.Routes or {}) do + if v.RouteName != "" then + found = true + break + end + end + if not found then + ULib.tsayError( calling_ply, "Signal routes not found", true) + return + end + ulx.fancyLog("Routes of signal #s:", signal.Name) + for k,v in pairs(signal.Routes) do + if v.RouteName != "" then + ulx.fancyLog("#s", v.RouteName) + end + end + end +end +local sroutes = ulx.command( CATEGORY_NAME, "ulx sroutes", ulx.sroutes, "!sroutes" ) +sroutes:addParam{ type=ULib.cmds.StringArg, hint="Signal", ULib.cmds.optional } +sroutes:defaultAccess( ULib.ACCESS_ALL ) +sroutes:help( "Print routes of next signal" ) + + --Костылииии function ulx.sopen( calling_ply, arg ) MSignalSayHook(calling_ply,"!sopen "..arg, true)