mirror of
https://github.com/DaKerboul/perun.git
synced 2026-08-09 17:05:39 +02:00
Multicrew support in the decent form was added
This commit is contained in:
@@ -210,6 +210,8 @@ Perun.GetMulticrewAllParameters = function (PlayerId)
|
|||||||
elseif string.find(_player_slot, 'observer') then
|
elseif string.find(_player_slot, 'observer') then
|
||||||
_master_type = "observer"
|
_master_type = "observer"
|
||||||
end
|
end
|
||||||
|
_master_slot = -1
|
||||||
|
_sub_slot = 0
|
||||||
end
|
end
|
||||||
return _master_type,_master_slot,_sub_slot
|
return _master_type,_master_slot,_sub_slot
|
||||||
end
|
end
|
||||||
@@ -361,7 +363,8 @@ Perun.LogStats = function(playerID)
|
|||||||
local _PlayerStatsTable=Perun.LogStatsGet(playerID)
|
local _PlayerStatsTable=Perun.LogStatsGet(playerID)
|
||||||
local _TempData={}
|
local _TempData={}
|
||||||
_TempData['stat_data_perun']=_PlayerStatsTable
|
_TempData['stat_data_perun']=_PlayerStatsTable
|
||||||
_TempData['stat_data_type']=_PlayerStatsTable['ps_type'];
|
_TempData['stat_data_type']= _PlayerStatsTable['ps_type'];
|
||||||
|
_TempData['stat_data_masterslot'] = _PlayerStatsTable['ps_masterslot'];
|
||||||
_TempData['stat_ucid']=net.get_player_info(playerID, 'ucid')
|
_TempData['stat_ucid']=net.get_player_info(playerID, 'ucid')
|
||||||
_TempData['stat_name']=net.get_player_info(playerID, 'name')
|
_TempData['stat_name']=net.get_player_info(playerID, 'name')
|
||||||
_TempData['stat_datetime']=os.date('%Y-%m-%d %H:%M:%S')
|
_TempData['stat_datetime']=os.date('%Y-%m-%d %H:%M:%S')
|
||||||
@@ -393,6 +396,7 @@ Perun.LogStatsCount = function(argPlayerID,argAction)
|
|||||||
-- Create empty element
|
-- Create empty element
|
||||||
local _TempData={}
|
local _TempData={}
|
||||||
_TempData['ps_type'] = Perun.GetMulticrewParameter(argPlayerID,"subtype")
|
_TempData['ps_type'] = Perun.GetMulticrewParameter(argPlayerID,"subtype")
|
||||||
|
_TempData['ps_masterslot'] = Perun.GetMulticrewParameter(argPlayerID,"masterslot")
|
||||||
_TempData['ps_pvp'] = 0
|
_TempData['ps_pvp'] = 0
|
||||||
_TempData['ps_deaths'] = 0
|
_TempData['ps_deaths'] = 0
|
||||||
_TempData['ps_ejections'] = 0
|
_TempData['ps_ejections'] = 0
|
||||||
@@ -419,12 +423,14 @@ Perun.LogStatsCount = function(argPlayerID,argAction)
|
|||||||
Perun.StatData[_player_hash]=_TempData
|
Perun.StatData[_player_hash]=_TempData
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- TBD BELLOW SEEMS TO BE OBSOLETE, CHECK AND DELETE
|
||||||
if argType ~= nil then
|
if argType ~= nil then
|
||||||
Perun.StatData[_player_hash]['ps_type']=Perun.GetMulticrewParameter(argPlayerID,"subtype");
|
Perun.StatData[_player_hash]['ps_type']=Perun.GetMulticrewParameter(argPlayerID,"subtype");
|
||||||
Perun.StatDataLastType[net.get_player_info(argPlayerID, 'ucid')]=_player_hash
|
Perun.StatDataLastType[net.get_player_info(argPlayerID, 'ucid')]=_player_hash
|
||||||
else
|
else
|
||||||
-- Do nothing
|
-- Do nothing
|
||||||
end
|
end
|
||||||
|
-- TBD ABOVE SEEMS TO BE OBSOLETE, CHECK AND DELETE
|
||||||
|
|
||||||
if argAction == "eject" then
|
if argAction == "eject" then
|
||||||
Perun.StatData[_player_hash]['ps_ejections']=Perun.StatData[_player_hash]['ps_ejections']+1
|
Perun.StatData[_player_hash]['ps_ejections']=Perun.StatData[_player_hash]['ps_ejections']+1
|
||||||
@@ -475,10 +481,20 @@ Perun.LogStatsCount = function(argPlayerID,argAction)
|
|||||||
Perun.StatData[_player_hash]['ps_other_takeoffs']=Perun.StatData[_player_hash]['ps_other_takeoffs']+1
|
Perun.StatData[_player_hash]['ps_other_takeoffs']=Perun.StatData[_player_hash]['ps_other_takeoffs']+1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Always update master slot
|
||||||
|
Perun.StatData[_player_hash]['ps_masterslot'] = Perun.GetMulticrewParameter(argPlayerID,"masterslot")
|
||||||
|
|
||||||
Perun.AddLog("Stats data prepared",2)
|
Perun.AddLog("Stats data prepared",2)
|
||||||
Perun.LogStats(argPlayerID);
|
Perun.LogStats(argPlayerID);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Perun.LogStatsCountCrew = function (MasterPilotID,ActionType)
|
||||||
|
-- Change stats for the whole crew
|
||||||
|
local _pilots_accounted = Perun.GetMulticrewCrew(MasterPilotID)
|
||||||
|
for _, pilotID in ipairs(_pilots_accounted) do
|
||||||
|
Perun.LogStatsCount(pilotID,ActionType)
|
||||||
|
end
|
||||||
|
end
|
||||||
-- ################################ Data preparation ################################
|
-- ################################ Data preparation ################################
|
||||||
|
|
||||||
Perun.LogStatsGet = function(playerID)
|
Perun.LogStatsGet = function(playerID)
|
||||||
@@ -722,19 +738,13 @@ Perun.onGameEvent = function (eventName,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
|||||||
_temp_event_type="kill_Other"
|
_temp_event_type="kill_Other"
|
||||||
end
|
end
|
||||||
if net.get_player_info(arg4, "name") ~= nil and arg3 ~= arg6 then
|
if net.get_player_info(arg4, "name") ~= nil and arg3 ~= arg6 then
|
||||||
pilots_accounted = Perun.GetMulticrewCrew(arg1)
|
Perun.LogStatsCountCrew (arg1,"kill_PvP")
|
||||||
for _, pilotID in ipairs(pilots_accounted) do
|
|
||||||
Perun.LogStatsCount(pilotID,"kill_PvP");
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
_temp_event_type="friendly_fire"
|
_temp_event_type="friendly_fire"
|
||||||
end
|
end
|
||||||
|
|
||||||
pilots_accounted = Perun.GetMulticrewCrew(arg1)
|
Perun.LogStatsCountCrew (arg1,_temp_event_type)
|
||||||
for _, pilotID in ipairs(pilots_accounted) do
|
|
||||||
Perun.LogStatsCount(pilotID,_temp_event_type);
|
|
||||||
end
|
|
||||||
|
|
||||||
else
|
else
|
||||||
_temp_killer = " AI ";
|
_temp_killer = " AI ";
|
||||||
@@ -776,18 +786,12 @@ Perun.onGameEvent = function (eventName,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
|||||||
|
|
||||||
elseif eventName == "crash" then
|
elseif eventName == "crash" then
|
||||||
--"crash", playerID, unit_missionID
|
--"crash", playerID, unit_missionID
|
||||||
pilots_accounted = Perun.GetMulticrewCrew(arg1)
|
Perun.LogStatsCountCrew (arg1,"crash")
|
||||||
for _, pilotID in ipairs(pilots_accounted) do
|
|
||||||
Perun.LogStatsCount(pilotID,"crash");
|
|
||||||
end
|
|
||||||
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " crashed in " .. DCS.getUnitType(arg2),nil,nil);
|
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " crashed in " .. DCS.getUnitType(arg2),nil,nil);
|
||||||
|
|
||||||
elseif eventName == "eject" then
|
elseif eventName == "eject" then
|
||||||
--"eject", playerID, unit_missionID
|
--"eject", playerID, unit_missionID
|
||||||
pilots_accounted = Perun.GetMulticrewCrew(arg1)
|
Perun.LogStatsCountCrew (arg1,"eject")
|
||||||
for _, pilotID in ipairs(pilots_accounted) do
|
|
||||||
Perun.LogStatsCount(pilotID,"eject");
|
|
||||||
end
|
|
||||||
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " ejected " .. DCS.getUnitType(arg2),nil,nil);
|
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " ejected " .. DCS.getUnitType(arg2),nil,nil);
|
||||||
|
|
||||||
elseif eventName == "takeoff" then
|
elseif eventName == "takeoff" then
|
||||||
@@ -809,10 +813,7 @@ Perun.onGameEvent = function (eventName,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
|||||||
_temp_type="tookoff_OTHER"
|
_temp_type="tookoff_OTHER"
|
||||||
end
|
end
|
||||||
|
|
||||||
pilots_accounted = Perun.GetMulticrewCrew(arg1)
|
Perun.LogStatsCountCrew (arg1,_temp_type)
|
||||||
for _, pilotID in ipairs(pilots_accounted) do
|
|
||||||
Perun.LogStatsCount(pilotID,_temp_type)
|
|
||||||
end
|
|
||||||
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " took off in ".. DCS.getUnitType(arg2) .. _temp_airfield,arg3,nil);
|
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " took off in ".. DCS.getUnitType(arg2) .. _temp_airfield,arg3,nil);
|
||||||
|
|
||||||
elseif eventName == "landing" then
|
elseif eventName == "landing" then
|
||||||
@@ -834,18 +835,12 @@ Perun.onGameEvent = function (eventName,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
|||||||
_temp_type = "landing_OTHER"
|
_temp_type = "landing_OTHER"
|
||||||
end
|
end
|
||||||
|
|
||||||
pilots_accounted = Perun.GetMulticrewCrew(arg1)
|
Perun.LogStatsCountCrew (arg1,_temp_type)
|
||||||
for _, pilotID in ipairs(pilots_accounted) do
|
|
||||||
Perun.LogStatsCount(pilotID,_temp_type)
|
|
||||||
end
|
|
||||||
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " landed in " .. DCS.getUnitType(arg2).. _temp_airfield,arg3,nil);
|
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " landed in " .. DCS.getUnitType(arg2).. _temp_airfield,arg3,nil);
|
||||||
|
|
||||||
elseif eventName == "pilot_death" then
|
elseif eventName == "pilot_death" then
|
||||||
--"pilot_death", playerID, unit_missionID
|
--"pilot_death", playerID, unit_missionID
|
||||||
pilots_accounted = Perun.GetMulticrewCrew(arg1)
|
Perun.LogStatsCountCrew (arg1,"pilot_death")
|
||||||
for _, pilotID in ipairs(pilots_accounted) do
|
|
||||||
Perun.LogStatsCount(pilotID,"pilot_death")
|
|
||||||
end
|
|
||||||
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " in " .. DCS.getUnitType(arg2) .. " died",nil,nil);
|
Perun.LogEvent(eventName, Perun.SideID2Name( net.get_player_info(arg1, "side")) .. " player " .. net.get_player_info(arg1, "name") .. " in " .. DCS.getUnitType(arg2) .. " died",nil,nil);
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public class DatabaseController
|
|||||||
SQLQueryTxt += "UPDATE `pe_DataPlayers` SET `pe_DataPlayers_updated`=" + TCPFrameTimestamp + " WHERE `pe_DataPlayers_ucid`='" + TCPFrame.payload.stat_ucid + "';";
|
SQLQueryTxt += "UPDATE `pe_DataPlayers` SET `pe_DataPlayers_updated`=" + TCPFrameTimestamp + " WHERE `pe_DataPlayers_ucid`='" + TCPFrame.payload.stat_ucid + "';";
|
||||||
SQLQueryTxt += "INSERT INTO `pe_DataTypes` (`pe_DataTypes_name`) SELECT '" + TCPFrame.payload.stat_data_type + "' FROM DUAL WHERE NOT EXISTS (SELECT * FROM `pe_DataTypes` where `pe_DataTypes_name` = '" + TCPFrame.payload.stat_data_type + "');";
|
SQLQueryTxt += "INSERT INTO `pe_DataTypes` (`pe_DataTypes_name`) SELECT '" + TCPFrame.payload.stat_data_type + "' FROM DUAL WHERE NOT EXISTS (SELECT * FROM `pe_DataTypes` where `pe_DataTypes_name` = '" + TCPFrame.payload.stat_data_type + "');";
|
||||||
SQLQueryTxt += "INSERT INTO `pe_LogStats` (`pe_LogStats_playerid`,`pe_LogStats_missionhash_id`,`pe_LogStats_typeid`) SELECT (SELECT `pe_DataPlayers_id` from `pe_DataPlayers` WHERE `pe_DataPlayers_ucid` = '" + TCPFrame.payload.stat_ucid + "'), (SELECT `pe_DataMissionHashes_id` FROM `pe_DataMissionHashes` WHERE `pe_DataMissionHashes_hash` = '" + TCPFrame.payload.stat_missionhash + "'), (SELECT pe_DataTypes_id FROM `pe_DataTypes` where `pe_DataTypes_name` = '" + TCPFrame.payload.stat_data_type + "') FROM DUAL WHERE NOT EXISTS (SELECT * FROM `pe_LogStats` WHERE `pe_LogStats_missionhash_id`=(SELECT `pe_DataMissionHashes_id` FROM `pe_DataMissionHashes` WHERE `pe_DataMissionHashes_hash` = '" + TCPFrame.payload.stat_missionhash + "') AND `pe_LogStats_playerid` = (SELECT `pe_DataPlayers_id` from `pe_DataPlayers` WHERE `pe_DataPlayers_ucid` = '" + TCPFrame.payload.stat_ucid + "') AND `pe_LogStats_typeid`= (SELECT pe_DataTypes_id FROM `pe_DataTypes` where `pe_DataTypes_name` = '" + TCPFrame.payload.stat_data_type + "'));";
|
SQLQueryTxt += "INSERT INTO `pe_LogStats` (`pe_LogStats_playerid`,`pe_LogStats_missionhash_id`,`pe_LogStats_typeid`) SELECT (SELECT `pe_DataPlayers_id` from `pe_DataPlayers` WHERE `pe_DataPlayers_ucid` = '" + TCPFrame.payload.stat_ucid + "'), (SELECT `pe_DataMissionHashes_id` FROM `pe_DataMissionHashes` WHERE `pe_DataMissionHashes_hash` = '" + TCPFrame.payload.stat_missionhash + "'), (SELECT pe_DataTypes_id FROM `pe_DataTypes` where `pe_DataTypes_name` = '" + TCPFrame.payload.stat_data_type + "') FROM DUAL WHERE NOT EXISTS (SELECT * FROM `pe_LogStats` WHERE `pe_LogStats_missionhash_id`=(SELECT `pe_DataMissionHashes_id` FROM `pe_DataMissionHashes` WHERE `pe_DataMissionHashes_hash` = '" + TCPFrame.payload.stat_missionhash + "') AND `pe_LogStats_playerid` = (SELECT `pe_DataPlayers_id` from `pe_DataPlayers` WHERE `pe_DataPlayers_ucid` = '" + TCPFrame.payload.stat_ucid + "') AND `pe_LogStats_typeid`= (SELECT pe_DataTypes_id FROM `pe_DataTypes` where `pe_DataTypes_name` = '" + TCPFrame.payload.stat_data_type + "'));";
|
||||||
SQLQueryTxt += "UPDATE `pe_LogStats` SET `ps_kills_fortification`=" + TCPFrame.payload.stat_data_perun.ps_kills_fortification + ",`ps_other_landings`=" + TCPFrame.payload.stat_data_perun.ps_other_landings + ",`ps_other_takeoffs`=" + TCPFrame.payload.stat_data_perun.ps_other_takeoffs + ",`ps_pvp`=" + TCPFrame.payload.stat_data_perun.ps_pvp + ",`ps_deaths`=" + TCPFrame.payload.stat_data_perun.ps_deaths + ",`ps_ejections`=" + TCPFrame.payload.stat_data_perun.ps_ejections + ",`ps_crashes`=" + TCPFrame.payload.stat_data_perun.ps_crashes + ",`ps_teamkills`=" + TCPFrame.payload.stat_data_perun.ps_teamkills + ",`ps_kills_planes`=" + TCPFrame.payload.stat_data_perun.ps_kills_planes + ",`ps_kills_helicopters`=" + TCPFrame.payload.stat_data_perun.ps_kills_helicopters + ",`ps_kills_air_defense`=" + TCPFrame.payload.stat_data_perun.ps_kills_air_defense + ",`ps_kills_armor`=" + TCPFrame.payload.stat_data_perun.ps_kills_armor + ",`ps_kills_unarmed`=" + TCPFrame.payload.stat_data_perun.ps_kills_unarmed + ",`ps_kills_infantry`=" + TCPFrame.payload.stat_data_perun.ps_kills_infantry + ",`ps_kills_ships`=" + TCPFrame.payload.stat_data_perun.ps_kills_ships + ",`ps_kills_other`=" + TCPFrame.payload.stat_data_perun.ps_kills_other + ",`ps_airfield_takeoffs`=" + TCPFrame.payload.stat_data_perun.ps_airfield_takeoffs + ",`ps_airfield_landings`=" + TCPFrame.payload.stat_data_perun.ps_airfield_landings + ",`ps_ship_takeoffs`=" + TCPFrame.payload.stat_data_perun.ps_ship_takeoffs + ",`ps_ship_landings`=" + TCPFrame.payload.stat_data_perun.ps_ship_landings + ",`ps_farp_takeoffs`=" + TCPFrame.payload.stat_data_perun.ps_farp_takeoffs + ",`ps_farp_landings`=" + TCPFrame.payload.stat_data_perun.ps_farp_landings + ", `pe_LogStats_datetime`='" + TCPFrame.payload.stat_datetime + "',`pe_LogStats_playerid` = (SELECT `pe_DataPlayers_id` from `pe_DataPlayers` WHERE `pe_DataPlayers_ucid` = '" + TCPFrame.payload.stat_ucid + "'),`pe_LogStats_missionhash_id`=(SELECT `pe_DataMissionHashes_id` FROM `pe_DataMissionHashes` WHERE `pe_DataMissionHashes_hash` = '" + TCPFrame.payload.stat_missionhash + "') WHERE `pe_LogStats_missionhash_id`=(SELECT `pe_DataMissionHashes_id` FROM `pe_DataMissionHashes` WHERE `pe_DataMissionHashes_hash` = '" + TCPFrame.payload.stat_missionhash + "') AND `pe_LogStats_playerid` = (SELECT `pe_DataPlayers_id` from `pe_DataPlayers` WHERE `pe_DataPlayers_ucid` = '" + TCPFrame.payload.stat_ucid + "') AND `pe_LogStats_typeid`=(SELECT pe_DataTypes_id FROM `pe_DataTypes` where `pe_DataTypes_name` = '" + TCPFrame.payload.stat_data_type + "');";
|
SQLQueryTxt += "UPDATE `pe_LogStats` SET `pe_LogStats_masterslot`=" + TCPFrame.payload.stat_data_masterslot + ",`ps_kills_fortification`=" + TCPFrame.payload.stat_data_perun.ps_kills_fortification + ",`ps_other_landings`=" + TCPFrame.payload.stat_data_perun.ps_other_landings + ",`ps_other_takeoffs`=" + TCPFrame.payload.stat_data_perun.ps_other_takeoffs + ",`ps_pvp`=" + TCPFrame.payload.stat_data_perun.ps_pvp + ",`ps_deaths`=" + TCPFrame.payload.stat_data_perun.ps_deaths + ",`ps_ejections`=" + TCPFrame.payload.stat_data_perun.ps_ejections + ",`ps_crashes`=" + TCPFrame.payload.stat_data_perun.ps_crashes + ",`ps_teamkills`=" + TCPFrame.payload.stat_data_perun.ps_teamkills + ",`ps_kills_planes`=" + TCPFrame.payload.stat_data_perun.ps_kills_planes + ",`ps_kills_helicopters`=" + TCPFrame.payload.stat_data_perun.ps_kills_helicopters + ",`ps_kills_air_defense`=" + TCPFrame.payload.stat_data_perun.ps_kills_air_defense + ",`ps_kills_armor`=" + TCPFrame.payload.stat_data_perun.ps_kills_armor + ",`ps_kills_unarmed`=" + TCPFrame.payload.stat_data_perun.ps_kills_unarmed + ",`ps_kills_infantry`=" + TCPFrame.payload.stat_data_perun.ps_kills_infantry + ",`ps_kills_ships`=" + TCPFrame.payload.stat_data_perun.ps_kills_ships + ",`ps_kills_other`=" + TCPFrame.payload.stat_data_perun.ps_kills_other + ",`ps_airfield_takeoffs`=" + TCPFrame.payload.stat_data_perun.ps_airfield_takeoffs + ",`ps_airfield_landings`=" + TCPFrame.payload.stat_data_perun.ps_airfield_landings + ",`ps_ship_takeoffs`=" + TCPFrame.payload.stat_data_perun.ps_ship_takeoffs + ",`ps_ship_landings`=" + TCPFrame.payload.stat_data_perun.ps_ship_landings + ",`ps_farp_takeoffs`=" + TCPFrame.payload.stat_data_perun.ps_farp_takeoffs + ",`ps_farp_landings`=" + TCPFrame.payload.stat_data_perun.ps_farp_landings + ", `pe_LogStats_datetime`='" + TCPFrame.payload.stat_datetime + "',`pe_LogStats_playerid` = (SELECT `pe_DataPlayers_id` from `pe_DataPlayers` WHERE `pe_DataPlayers_ucid` = '" + TCPFrame.payload.stat_ucid + "'),`pe_LogStats_missionhash_id`=(SELECT `pe_DataMissionHashes_id` FROM `pe_DataMissionHashes` WHERE `pe_DataMissionHashes_hash` = '" + TCPFrame.payload.stat_missionhash + "') WHERE `pe_LogStats_missionhash_id`=(SELECT `pe_DataMissionHashes_id` FROM `pe_DataMissionHashes` WHERE `pe_DataMissionHashes_hash` = '" + TCPFrame.payload.stat_missionhash + "') AND `pe_LogStats_playerid` = (SELECT `pe_DataPlayers_id` from `pe_DataPlayers` WHERE `pe_DataPlayers_ucid` = '" + TCPFrame.payload.stat_ucid + "') AND `pe_LogStats_typeid`=(SELECT pe_DataTypes_id FROM `pe_DataTypes` where `pe_DataTypes_name` = '" + TCPFrame.payload.stat_data_type + "');";
|
||||||
}
|
}
|
||||||
else if (TCPFrameType == "53")
|
else if (TCPFrameType == "53")
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user