Ignore:
Timestamp:
07/19/10 17:47:11 (22 months ago)
Author:
tolteque
Message:

o LOTATC

  • Add filtering in LUA, and add a parameter (isDetectable) in NEW_OBJECT frame
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lotatc_server/lotatc_FC2.lua

    r2092 r2118  
    9595  -- ========================================================================== 
    9696  getLotatcTypeFromLockonType = function( self, lockonType) 
    97     local lotatcObjectType = nil ; 
    98      
    99     -- First level 
    100     if self.ObjectTypeLUT[lockonType.level1] then 
    101       if self.ObjectTypeLUT[ lockonType.level1 ][lockonType.level2] then 
    102         lotatcObjectType = self.ObjectTypeLUT[ lockonType.level1 ][lockonType.level2] 
     97    info = { 0, nil} 
     98 
     99    -- Process level by level 
     100    if self.objectTypeLUT[lockonType.level1] then 
     101      if self.objectTypeLUT[lockonType.level1][lockonType.level2] then 
     102        if self.objectTypeLUT[lockonType.level1][lockonType.level2][lockonType.level3] then 
     103          if self.objectTypeLUT[lockonType.level1 ][lockonType.level2][lockonType.level3][lockonType.level4] then 
     104            info = self.objectTypeLUT[lockonType.level1][lockonType.level2][lockonType.level3][lockonType.level4] 
     105          else 
     106            info = self.objectTypeLUT[lockonType.level1][lockonType.level2][lockonType.level3] 
     107          end 
     108        else 
     109          info = self.objectTypeLUT[lockonType.level1][lockonType.level2] 
     110        end 
     111      else 
     112        info = self.objectTypeLUT[lockonType.level1] 
    103113      end 
    104114    end 
    105     return lotatcObjectType 
     115    return info["flag"], info["tag"] 
    106116  end, 
     117 
    107118   
    108119  -- ========================================================================== 
     
    111122        Start = function( self) 
    112123    -- Lookup table used to transcode lockonType to lotatcType 
    113     self.ObjectTypeLUT = { [wsType_Air]    = { [wsType_Airplane]   = self.AIRPLANE  
    114                                              , [wsType_Helicopter] = self.HELICOPTER  
    115                                              , [wsType_Free_Fall]  = self.CHAFF_FLARE  
     124    self.objectTypeLUT = { [wsType_Air]    = { [wsType_Airplane]                              = { ["flag"] = 1, ["tag"] = self.AIRPLANE  } 
     125                                             , [wsType_Helicopter]                            = { ["flag"] = 1, ["tag"] = self.HELICOPTER} 
    116126                                             } 
    117                          , [wsType_Weapon] = { [wsType_Missile]    = self.MISSILE 
    118                                              , [wsType_Bomb]       = self.BOMB 
    119                                              , [wsType_Shell]      = self.SHELL 
    120                                              , [wsType_NURS]       = self.ROCKET 
     127                         , [wsType_Ground] = { [wsType_Moving]                                = { ["flag"] = 1, ["tag"] = self.GROUND_MOVING } 
     128                                             , [wsType_Tank]       = { [wsType_Gun]           = { ["flag"] = 0, ["tag"] = self.TANK} 
     129                                                                     , [wsType_MissGun]       = { ["flag"] = 0, ["tag"] = self.TANK} 
     130                                                                     , [wsType_Miss]          = { ["flag"] = 0, ["tag"] = self.TANK} 
     131                                                                     , [wsType_Radar]         = { ["flag"] = 1, ["tag"] = self.TANK} 
     132                                                                     , [wsType_NoWeapon]      = { ["flag"] = 0, ["tag"] = self.TANK} 
     133                                                                     } 
     134                                             , [wsType_SAM]        = { [wsType_Gun]           = { ["flag"] = 0, ["tag"] = self.SAM} 
     135                                                                     , [wsType_Miss]          = { ["flag"] = 0, ["tag"] = self.SAM} 
     136                                                                     , [wsType_MissGun]       = { ["flag"] = 0, ["tag"] = self.SAM} 
     137                                                                     , [wsType_Radar]         = { ["flag"] = 1, ["tag"] = self.SAM} 
     138                                                                     , [wsType_Radar_Gun]     = { ["flag"] = 1, ["tag"] = self.SAM} 
     139                                                                     , [wsType_Radar_Miss]    = { ["flag"] = 1, ["tag"] = self.SAM} 
     140                                                                     , [wsType_Radar_MissGun] = { ["flag"] = 1, ["tag"] = self.SAM} 
     141                                                                     , [wsType_NoWeapon]      = { ["flag"] = 0, ["tag"] = self.SAM} 
     142                                                                     } 
    121143                                             } 
    122                          , [wsType_Ground] = { [wsType_Moving]     = self.GROUND_MOVING 
    123                                              , [wsType_Standing]   = self.GROUND_STANDING 
    124                                              , [wsType_Tank]       = self.TANK 
    125                                              , [wsType_SAM]        = self.SAM 
    126                                              } 
    127                          , [wsType_Navy]   = { [wsType_Ship]       = self.SHIP 
     144                         , [wsType_Navy]   = { [wsType_Ship]                                  = { ["flag"] = 1, ["tag"] = self.SHIP} 
    128145                                             } 
    129146                         } 
     147     
    130148   
    131149    -- -------------------------------------------------------- 
     
    191209    local worldObjects = LoGetWorldObjects()  
    192210    for objectId, objectInfo in pairs( worldObjects) do 
    193    
    194211      -- --------------------------------------------------- 
    195212      -- Use lookUpTable to convert Lockon Type 
    196       local objectType = self.getLotatcTypeFromLockonType( self, objectInfo.Type) 
     213      local isDetectable 
     214      local objectType 
     215      isDetectable, objectType = self.getLotatcTypeFromLockonType( self, objectInfo.Type) 
    197216      if objectType then 
    198217        -- --------------------------------------------------- 
     
    261280            groupName = "" 
    262281          end 
     282          if not unitName then 
     283            unitName = "" 
     284          end 
    263285          if not pilotName then 
    264286            pilotName = "" 
     
    267289          -- --------------------------------------------------- 
    268290          -- Fill the buffer with NEW_OBJECT message 
    269           message = message..string.format( "%s|%s|%s|%s|%s|%s|%s", self.NEW_OBJECT, objectId, objectType, unitName, pilotName, coalition, groupName) 
     291          message = message..string.format( "%s|%s|%s|%s|%s|%s|%s|%s" 
     292                                          , self.NEW_OBJECT 
     293                                          , objectId 
     294                                          , objectType 
     295                                          , unitName 
     296                                          , pilotName 
     297                                          , coalition 
     298                                          , groupName 
     299                                          , isDetectable 
     300                                          ) 
    270301        end -- end of: if createObject==true then 
    271302   
Note: See TracChangeset for help on using the changeset viewer.