home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / demowot_english.exe / Script / Source / antiair.inc < prev    next >
Text File  |  2005-03-11  |  3KB  |  104 lines

  1. /*
  2. #include antiair.inc
  3.     HackAntiAirInit();
  4. */
  5.  
  6.  
  7. public HackAntiAirInit()
  8. {
  9.     RemoveEvent( "HackAntiAirSomeArea" );
  10.     RemoveEvent( "HackAntiAirKovesd" );
  11.     new Iterator:iti=Iterate("antiair");
  12.     new DrID:HAAIArea;
  13.     new lTmpStr[166];
  14.     new lTmpStr2[166];
  15.     new Float:lTmpVec3[vec3];
  16.     while(ItNext(iti))
  17.     {
  18.         GetPropertyVec3( ItEntity(iti), "Pos", lTmpVec3);
  19.         GetPropertyString( ItEntity(iti), "StringID", 146, lTmpStr );
  20.         ConcatString( lTmpStr2, 166, lTmpStr, "area" );
  21.         if(GetEntity( lTmpStr2 )==DrID:0)
  22.         {
  23.             AddAKEntityEvent( "HackAntiAirMeghalt", ItEntity(iti), UNIT_TEAM_CHANGED);
  24.             HAAIArea=CreateEntity( "sys_circlearea", lTmpVec3 );
  25.             SetPropertyFloat( HAAIArea, "Radius", 55.0 );
  26.             SetPropertyString( HAAIArea, "StringID", lTmpStr2 );
  27.             AddToGroup( "HackAntiAirArea", HAAIArea );
  28.         }
  29.         CmdSetWM( ItEntity(iti), Q_ENQUEUE, WM_GROUND );        
  30.     }
  31.     AddAKEntityEvent( "HackAntiAirSomeArea", ANY_ENTITY, UNIT_AREA_ENTER);
  32.     AddTimerEvent( "HackAntiAirKovesd", 1.0 );
  33. }
  34.  
  35. public HackAntiAirSomeArea(DrID:UndWho)
  36. {
  37.     new DrID:UndWhere=GetMsgParamObject();
  38.     new DrID:AzAntiAirMaga;
  39.     new lTmpStr[166];
  40.     if(IsInSelector(UndWhere, "HackAntiAirArea" )&&IsInstanceOf( UndWho, GetClassID( "cAirplane") ))
  41.     {
  42.         GetPropertyString( UndWhere, "StringID", 166, lTmpStr );
  43.         StrMid(lTmpStr,lTmpStr,0,(strlen(lTmpStr)-4));
  44.         AzAntiAirMaga=GetEntity( lTmpStr );
  45.         CmdSetWM( AzAntiAirMaga, Q_OVERRIDE, WM_AIR );
  46.         CmdAttack( AzAntiAirMaga, Q_ENQUEUE, UndWho );
  47.         AddAKEntityEvent( "HackAntiAirBackToGround", AzAntiAirMaga, UNIT_END_COMBAT );
  48.     }
  49. }
  50.  
  51. public HackAntiAirMeghalt(DrID:UndWho)
  52. {
  53.     new lTmpStr[166];
  54.     new lTmpStr2[166];
  55.     GetPropertyString( UndWho, "StringID", 146, lTmpStr );
  56.     ConcatString( lTmpStr2, 166, lTmpStr, "area" );
  57.     if(GetEntity( lTmpStr2 )!=DrID:0)
  58.     {
  59.         DeActivateEntity( GetEntity( lTmpStr2 ) );    
  60.     }
  61. }
  62.  
  63. public HackAntiAirKovesd()
  64. {
  65.     new Iterator:iti=Iterate("antiair");
  66.     new lTmpStr[166];
  67.     new lTmpStr2[166];
  68.     new Float:lTmpVec3[vec3];
  69.     while(ItNext(iti))
  70.     {
  71.         GetPropertyVec3( ItEntity(iti), "Pos", lTmpVec3);
  72.         if(lTmpVec3[vec3:x]!=0.0||lTmpVec3[vec3:y]!=0.0||lTmpVec3[vec3:z]!=0.0)
  73.         {
  74.             GetPropertyString( ItEntity(iti), "StringID", 146, lTmpStr );
  75.             ConcatString( lTmpStr2, 166, lTmpStr, "area" );
  76.             if(GetEntity( lTmpStr2 )!=DrID:0)
  77.             {
  78.                 SetPropertyVec3( GetEntity( lTmpStr2 ), "Pos", lTmpVec3);
  79.             }
  80.         }
  81.         else
  82.         {
  83.             HackAntiAirMeghalt(ItEntity(iti));
  84.         }
  85.     }
  86. }
  87.  
  88. public HackAntiAirBackToGround(DrID:UndWho)
  89. {
  90.     RemoveEntityEvent("HackAntiAirBackToGround", UndWho);
  91.     CmdSetWM( UndWho, Q_ENQUEUE, WM_GROUND );
  92. }
  93.  
  94. public HackAntiAirAddEntity(DrID:UndWho)
  95. {
  96.     new HAAAE_Str[166];
  97.     GetPropertyString( UndWho, "EditorHierarchyPath", 166, HAAAE_Str )
  98.     if(CompareString( HAAAE_Str, "Dynamic/Vehicle/Anti Aircraft")==0)
  99.     {
  100.         AddToGroup( "antiair", UndWho );
  101.         HackAntiAirInit();
  102.     }
  103. }
  104.