1. Hey Guest, is it this your first time on the forums?

    Visit the Beginner's Box

    Introduce yourself, read some of the ins and outs of the community, access to useful links and information.

    Dismiss Notice

Shadowblitz16's Modding Questions

Discussion in 'Modding Help' started by Shadowblitz16, Mar 24, 2017.

  1. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    does anybody know where to mess with the bomb player damage and map damage?
     
  2. Blue_Tiger

    Blue_Tiger Haxor Tester

    Messages:
    899
    Bomb.as

    check onInit:

    SetupBomb(this, bomb_fuse, 48.0f, 3.0f, 24.0f, 0.4f, true);

    I believe 3.0f is the damage and 48.0f is the range. Water bombs are made somewhere inside the knight scripts by slightly modifying the bomb code or something, so you can do that to make more different bombs I think.
     
  3. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    what is 48.0 and 24.0?
     
  4. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    Messages:
    3,730
    Please try searching in all files before asking - if you're using an editor that can't do that, start using one that can (sublime text is a good choice, notepad++ can probably do it too)

    Here's the definition of SetupBomb - you can read the names of each parameter and probably guess what they mean. You can read the bomb code directly for exactly what they are used for.
    Code:
    void SetupBomb(CBlob@ this, const int fuseTicks, const f32 explRadius, const f32 explosive_damage, const f32 map_damage_radius, const f32 map_damage_ratio, const bool map_damage_raycast)
     
  5. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    I am using notepad++ It doesn't mean that notepad++ has intellasense for the kag api.
    also I did research it but I'm not sure what is up to date and what isn't.
     
  6. Verrazano

    Verrazano Flat Chested Haggy Old Souless Witchy Witch Witch THD Team Global Moderator Forum Moderator Tester
    1. Practitioners of War Extreme Revolution - POWER

    Messages:
    477
    The KAG API is found in the manual folder, the bomb functionality has nothing to do with the API. Just search all files in the base folder and you'll find it.
    [​IMG]
     
    Asu likes this.
  7. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    oh I see its not a built in api function its just a script function thankyou verrazano
     
  8. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    Messages:
    3,730
    As verra showed in the screenshot - search in all files under base (and manual), most of the time you'll find something and the rest the forums will happily help.

    In sublime if you set up a project that includes base as a folder, you can hit f12 to jump to the definition of a function if it's visible, which can show you very quickly if something is a script function or not.

    [​IMG]
     
  9. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    oh thankyou I will get the sublime text editor then
    EDIT: oh it cost money :/
     
  10. Verrazano

    Verrazano Flat Chested Haggy Old Souless Witchy Witch Witch THD Team Global Moderator Forum Moderator Tester
    1. Practitioners of War Extreme Revolution - POWER

    Messages:
    477
    just use the free version, and click no every time it asks for money, I've been using it for years.
     
  11. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    lol ok thats fine with me then
     
  12. Verrazano

    Verrazano Flat Chested Haggy Old Souless Witchy Witch Witch THD Team Global Moderator Forum Moderator Tester
    1. Practitioners of War Extreme Revolution - POWER

    Messages:
    477
    I'm renaming this thread so you can use it for all your general modding questions and closing the others in order to consolidate.
     
    Vamist likes this.
  13. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    I have another question.

    can someone explain in detail how to strip the basepngloader and store them in separate scripts?

    I was wanting to extend it as well here is an example of one of my scripts
    Code:
      
      
    u8 team = 0;
      
    switch (rgb)
    {
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // PitFall
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
        //Wood
        case wooden_pitfall_u_blue:
            CBlob@ blob = spawnBlob( map, "wooden_pitfall", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
          
        //Stone
        case stone_pitfall_u_blue:
            CBlob@ blob = spawnBlob( map, "stone_pitfall", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Platform
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
        //Wood Up
        case wooden_platform_u_blue:
            CBlob@ blob = spawnBlob( map, "wooden_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
          
        //Wood Down
        case wooden_platform_d_blue:
            CBlob@ blob = spawnBlob( map, "wooden_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 180.0f );
            shape.SetStatic( true );
            break;
          
        //Wood Left
        case wooden_platform_l_blue:
            CBlob@ blob = spawnBlob( map, "wooden_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( -90.0f );
            shape.SetStatic( true );
            break;
          
        //Wood Right
        case wooden_platform_r_blue:
            CBlob@ blob = spawnBlob( map, "wooden_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Up
        case stone_platform_u_blue:
            CBlob@ blob = spawnBlob( map, "stone_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
          
        //Stone Down
        case stone_platform_d_blue:
            CBlob@ blob = spawnBlob( map, "stone_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 180.0f );
            shape.SetStatic( true );
            break;
          
        //Stone Left
        case stone_platform_l_blue:
            CBlob@ blob = spawnBlob( map, "stone_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( -90.0f );
            shape.SetStatic( true );
            break;
          
        //Stone Right
        case stone_platform_r_blue:
            CBlob@ blob = spawnBlob( map, "stone_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
    
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // TrapBlock
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                  
        //Wood Normal
        case wooden_trapblock_n_blue:
            CBlob@ blob = spawnBlob( map, "wooden_trapblock", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Inverted
        case wooden_trapblock_i_blue:
            CBlob@ blob = spawnBlob( map, "wooden_trapblock", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Normal
        case stone_trapblock_n_blue:
            CBlob@ blob = spawnBlob( map, "stone_trapblock", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Inverted
        case stone_trapblock_i_blue:
            CBlob@ blob = spawnBlob( map, "stone_tapblock", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
          
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // DartTrap
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                  
        //Wood Up
        case wooden_darttrap_u_blue:
            CBlob@ blob = spawnBlob( map, "wooden_darttrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Down
        case wooden_darttrap_d_blue:
            CBlob@ blob = spawnBlob( map, "wooden_darttrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 180.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Left
        case wooden_darttrap_l_blue:
            CBlob@ blob = spawnBlob( map, "wooden_darttrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( -90.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Right
        case wooden_darttrap_r_blue:
            CBlob@ blob = spawnBlob( map, "wooden_darttrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
          
        //Stone Up
        case stone_darttrap_u_blue:
            CBlob@ blob = spawnBlob( map, "stone_darttrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Down
        case stone_darttrap_d_blue:
            CBlob@ blob = spawnBlob( map, "stone_darttrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 180.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Left
        case stone_darttrap_l_blue:
            CBlob@ blob = spawnBlob( map, "stone_darttrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( -90.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Right
        case stone_darttrap_r_blue:
            CBlob@ blob = spawnBlob( map, "stone_darttrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
    
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // BounceTrap
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                  
        //Wood Up
        case wooden_bouncer_u_blue:
            CBlob@ blob = spawnBlob( map, "wooden_bouncetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Down
        case wooden_bouncetrap_d_blue:
            CBlob@ blob = spawnBlob( map, "wooden_bouncetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 180.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Left
        case wooden_bouncetrap_l_blue:
            CBlob@ blob = spawnBlob( map, "wooden_bouncetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( -90.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Right
        case wooden_bouncer_r_blue:
            CBlob@ blob = spawnBlob( map, "wooden_bouncer", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
          
        //Stone Up
        case stone_bouncetrap_u_blue:
            CBlob@ blob = spawnBlob( map, "stone_bouncetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Down
        case stone_bouncetrap_d_blue:
            CBlob@ blob = spawnBlob( map, "stone_bouncetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 180.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Left
        case stone_bouncetrap_l_blue:
            CBlob@ blob = spawnBlob( map, "stone_bouncetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( -90.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Right
        case stone_bouncetrap_r_blue:
            CBlob@ blob = spawnBlob( map, "stone_bouncetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
          
    
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // BladeTrap
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                  
        //Wood Up
        case wooden_bladetrap_u_blue:
            CBlob@ blob = spawnBlob( map, "wooden_bladetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Down
        case wooden_bladetrap_d_blue:
            CBlob@ blob = spawnBlob( map, "wooden_bladetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 180.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Left
        case wooden_bladetrap_l_blue:
            CBlob@ blob = spawnBlob( map, "wooden_bladetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( -90.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Right
        case wooden_bladetrap_r_blue:
            CBlob@ blob = spawnBlob( map, "wooden_bladetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
          
        //Stone Up
        case stone_bladetrap_u_blue:
            CBlob@ blob = spawnBlob( map, "stone_bladetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Down
        case stone_bladetrap_d_blue:
            CBlob@ blob = spawnBlob( map, "stone_bladetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 180.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Left
        case stone_bladetrap_l_blue:
            CBlob@ blob = spawnBlob( map, "stone_bladetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( -90.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Right
        case stone_bladetrap_r_blue:
            CBlob@ blob = spawnBlob( map, "stone_bladetrap", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
          
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Door
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
        //Wood Vertical
        case wooden_trapblock_v_blue:
            CBlob@ blob = spawnBlob( map, "wooden_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Wood Horizontal
        case wooden_trapblock_i_blue:
            CBlob@ blob = spawnBlob( map, "wooden_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Vertical
        case wooden_trapblock_v_blue:
            CBlob@ blob = spawnBlob( map, "stone_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        //Stone Horizontal
        case wooden_trapblock_i_blue:
            CBlob@ blob = spawnBlob( map, "stone_door", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 90.0f );
            shape.SetStatic( true );
            break;
          
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // CTF
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
        case flag_blue:
            CBlob@ blob = spawnBlob( map, "flag", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
      
        case spawn_blue:
            CBlob@ blob = spawnBlob( map, "spawn", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
          
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // TTH
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
        case hall_blue:
            CBlob@ blob = spawnBlob( map, "hall", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
          
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Misc
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
        case chest_blue:
            CBlob@ blob = spawnBlob( map, "chest", offset, team, false );
            offsets[autotile_offset].push_back( offset );
            CShape@ shape = blob.getShape();
            blob.setAngleDegrees( 0.0f );
            shape.SetStatic( true );
            break;
    }
    
    --- Double Post Merged, Mar 28, 2017, Original Post Date: Mar 28, 2017 ---
    here is another question.
    I'm trying to rearrange the material icons and make them show in my gamemode
    I see that the material_*.cfg doesn't have a frame property for the generic sprite
    but I do see it has a script property pointing to materials.as

    however when I take a look into the script I don't see anything determining what frame is used.
    can someone care to explain?
     
  14. Skinney

    Skinney THD Team THD Team Forum Moderator Tester

    Messages:
    468
    You can for the most part just extract chunks and store them in #include "another_script.as"; just like LoaderColors.as or LoaderUtilities.as.

    In the config there is the default animation which holds all the sprites for that particular material.
    Code:
    $sprite_factory                        = generic_sprite
    
    @$sprite_scripts                       = Materials.as;
    $sprite_texture                        = Materials.png
    s32_sprite_frame_width                 = 16
    s32_sprite_frame_height                = 16
    f32 sprite_offset_x                    = 0
    f32 sprite_offset_y                    = -3
    
        $sprite_gibs_start                 = *start*
    
        $gib_type                          = predefined
        $gib_style                         = dirt
        u8_gib_count                       = 4
        @u8_gib_frame                      = 4; 5; 6; 7;
        f32 velocity                       = 10.0
        f32 offset_x                       = 0.0
        f32 offset_y                       = 0.0
    
        $sprite_gibs_end                   = *end*
    
      $sprite_animation_start              = *start*
    
      # default
      $sprite_animation_default_name       = default
      u16 sprite_animation_default_time    = 0
      u8_sprite_animation_default_loop     = 0
      @u16 sprite_animation_default_frames = 2; 10; 18; 26;
    
      $sprite_animation_end                = *end*
    In Materials.as there is a function which is used to change the frame based on the current quantity.
    Code:
    void UpdateFrame(CSprite@ this)
    {
        // set the frame according to the material quantity
        Animation@ anim = this.getAnimation("default");
    
        if (anim !is null)
        {
            u16 max = this.getBlob().maxQuantity;
            int frames = anim.getFramesCount();
            int quantity = this.getBlob().getQuantity();
            f32 div = float(max / 4);
            int frame = div < 0.01f ? 0 : Maths::Min(frames - 1, int(Maths::Floor(float(quantity) / div)));
            anim.SetFrameIndex(frame);
            CBlob@ blob = this.getBlob();
            blob.SetInventoryIcon(blob.getSprite().getConsts().filename, anim.getFrame(frame), Vec2f(blob.getSprite().getConsts().frameWidth, blob.getSprite().getConsts().frameHeight));
        }
    }
    
     
    Last edited: Mar 28, 2017
  15. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    @Skinney thankyou I will ask you more about the pngloader later however about the materials..

    I have no idea what paramater is actually telling it what frame to use though.
    I guess it would be..
    Code:
    f32 sprite_offset_x = 0
    f32 sprite_offset_y = -3
    
    but that doesn't make any sense since the x and y don't match up with with the frame used
     
  16. Skinney

    Skinney THD Team THD Team Forum Moderator Tester

    Messages:
    468
    The frames are listed under the default animation in the config file.
    Code:
      @u16 sprite_animation_default_frames = 2; 10; 18; 26;
    Then they are set based on conditions within Materials.as.
     
  17. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    ok thankyou.
    however I can seem to get my custom bombs working.
    when I view them in the shop or in my inventory the icons are question marks and I can't use them.

    Edit: nevermind I think I found the icon issue.
    I haven't edited BasicHelps.as yet.

    Edit Again: looks like this is only for the inventory icons. :(
     
    Last edited: Mar 28, 2017
  18. Verrazano

    Verrazano Flat Chested Haggy Old Souless Witchy Witch Witch THD Team Global Moderator Forum Moderator Tester
    1. Practitioners of War Extreme Revolution - POWER

    Messages:
    477
    there is another location where all the icons are added don't remember where exactly just look for something about icon/register/add
     
  19. Skinney

    Skinney THD Team THD Team Forum Moderator Tester

    Messages:
    468
    Most icons are added within DefaultGUI.as with one of the following functions.
    Code:
    void ::AddIconToken(const string&in, const string&in, Vec2f frameDimension, int frame, int teamColor)
    void ::AddIconToken(const string&in, const string&in, Vec2f frameDimension, int frame, SColor color)
    void ::AddIconToken(const string&in, const string&in, Vec2f frameDimension, int frame)
     
  20. Shadowblitz16

    Shadowblitz16 Ballista Bolt Thrower

    Messages:
    158
    ya I don't know I see that in my BombJumpingCTF mod I just declared the Icons in KnighShop.as so I don't actually know where this belongs.
    @Skinney is this hardcoded in? I did a search for "icon", "register", and "add" in my base folder like Verra suggested.

    Edit: lol you replied before I could. :P
    but ya its not in there.
     
    Last edited: Mar 28, 2017