Jump to content

pete_smith1229

Members
  • Posts

    135
  • Joined

  • Last visited

Posts posted by pete_smith1229

  1. @jastey Thanks, I mean changing the light source. For example, in the centre of the image, the ground is illuminated in the middle of the room.

    How easy is it to change the graphics of the area to remove that light effect?

    And is it easy to edit the "light map"?

    Having trouble trying to find resources for this (if one exists).

  2. Some parts of Temple of the Forgotten God (IWD:EE) have bright lighting and I would like to change this if possible.

    I noticed there's various files associated with graphics for areas (MOS, TIS, BMP).

    Is there an existing process to change the lighting in specific parts of an area (e.g. make it darker)?

    AR3602_.jpg

  3. 2 minutes ago, jmerry said:

    50 normally learnable wizard spells per level, 50 normally learnable priest spells per level. If you don't care about that, 4000 total slots split among the four (SPCL, SPIN, SPPR, SPWI) groupings.

    There is an alternative if you want to use your spells in scripts; all of the "cast a spell" actions have RES versions that take the spell resource as an argument instead of the symbolic name. For example,

    ReallyForceSpellRES("NEWSPELL",NearestEnemyof(Myself))

    will do the exact same thing as your version and cast your NEWSPELL.SPL at the nearest enemy.

    You're a genius! Using the alternative works perfectly and saves a lot of hassle. Many thanks!

  4. What is the limit to spell.ids and is there a way to bypass this limit?

    I've created a whole load of spells in IWD:EE and want to expose them to .BCS scripts so that NPCs can use them like so:

    ReallyForceSpell(NearestEnemyOf(Myself),NEW_SPELL)

    Before I tried to edit spell.ids with weidu, there were ~726 lines already used. I get to adding 26 new lines before it complains that no slots are available.

    This is how I add spells:

    LAF ~ADD_SPELL_EX~ INT_VAR type = 2 level = 1 STR_VAR file = EVAL ~my_mod/data/RB_SPL01.SPL~ name = ~NEW_SPELL~ RET DEST_FILE END

     

  5. On 1/24/2024 at 5:49 AM, WanderingScholar said:

    I figured this out. I'll leave this here in case anyone is interested. 

      Hide contents
    // Create "Gorion's Battle" .mus file to be used in cutscene ch1cut04.bcs
    <<<<<<<<.../WStweaks-inline/ws#ch1.mus
    Bl2
    20
    a1
    a2
    a3
    a4
    b1
    b2
    b3
    b4
    c1
    c2
    c3
    c4
    d1
    d2
    e1
    f1
    f2
    g1
    g2
    g3
    >>>>>>>>
    MKDIR ~weidu_external/data/WStweaks~
    COPY ~.../WStweaks-inline/ws#ch1.mus~ ~weidu_external/data/WStweaks~
    
    // Write ws#ch1.mus into songlist.2da and copy it into the music directory
    ADD_MUSIC ~ws#ch1~ ~weidu_external/data/WStweaks/ws#ch1.mus~
    
    // Check the first column of the bottom row in songlist.2da for new song #
    COPY_EXISTING ~songlist.2da~ ~override~
        COUNT_2DA_ROWS 2 rowcount
        READ_2DA_ENTRY rowcount 0 0 "new_song" 
    BUT_ONLY    
    
    // Add new song to cutscene and smoothen transitions
    COPY_EXISTING ~ch1cut04.bcs~ ~override~
        DECOMPILE_AND_PATCH BEGIN
        REPLACE_TEXTUALLY ~CutSceneId("Gorion")~ 
                          ~CutSceneId("Gorion")
                           PlaySong("%new_song%")~
        REPLACE_TEXTUALLY ~SetGlobal("Chapter","GLOBAL",0)~ 
                          ~SetGlobal("Chapter","GLOBAL",0)
                           FadeToColor([40.0],0)
                           Wait(4)~
        REPLACE_TEXTUALLY ~AddJournalEntry(75220,INFO)~ 
                          ~AddJournalEntry(75220,INFO)
                           FadeFromColor([40.0],0)~
        END
    BUT_ONLY

    This is great, many thanks for documenting this! Some of those steps I did manually when using add_music to areas, so your script will indeed be useful!

  6. In IWD:EE, the added items Orrick sells is given by the area script "AR2100.BCS" based on the current chapter. The "KUORK1.STO", "KUORK2.STO" and "KUORK3.STO" files are not used. Perhaps these were used in the original Icewind...?

    As @jmerry suggested for oBG1, you may have to create stores, edit the merchant dialogue response trigger and add something like "GlobalGT("Chapter","GLOBAL",3), and link this to the action with the new store.

  7. 11 hours ago, BobT said:

    Friend has done some further tweaking, have a listen to this! 

    https://voca.ro/1fpIF6dBfSYJ
    https://voca.ro/1l4TXSfrXKuE

    All recorded using HER voice, and having to "put on" the accent to get it right. It's not just a push-button job. 

    Again, COULD be done just the same by traditional means / human imitation, however this tech optimises the approach. Absolutely amazing! This will be great for remastering older games.
    Remember also that even if one was to get a human VA back to re-do it, their voice will have probably changed (or sometimes sadly, lost it altogether) after 20 years or longer. Regardless, for MODDING this tech is awesome. 

    This is pretty damn impressive! Nice work!

  8. I noticed David's SCS v35 has a new "revised resting component" giving str/dex/con buff depending on the room rested in.

    Will have to test if this is compatible with IWD:EE or otherwise attempt to tweak it so it provides additional healing.

  9. @paladin84 Thanks for confirming and elaborating on the ADD_MUSIC function. In addition to your description of manually copying files, I've included the steps I did to add music to the game:

    1. Use VLC (or similar) to convert mp3/wav file to .ogg file and save to my_mod/audio/music/
    2. Run the following script to create .acm file

    COPY_EXISTING ~songlist.2da~ ~override~
    LAF HANDLE_AUDIO
      INT_VAR
        music = 1
      STR_VAR
        audio_path = ~my_mod/audio/music/~
    END

    3. Create new folder (e.g. "rb_mus") in main_game_EE/music/
    4. Move .acm file to main_game_EE/music/rb_mus/
    5. Rename .acm file by appending "a" (i.e. rb_musa.acm)
    6. Create .mus file (text file) with the following where: Rb_mus = folder name; 1 = no. of acm files; A is character used to point to the .acm file; @TAG end = interrupt state (more info)

    Rb_mus
    1
    A         @TAG end

    7. Append songlist.2da with following where: 85 = new unique ID; rb_mus = folder name containing acm files; rb_mus01.mus = name of .mus file

    85 rb_mus rb_mus01.mus

    8. Music can be called using the following:

    PlaySong(0) // Play blank
    PlaySong(85) // Play new music
    SetMusic(DAY,rb_mus01) // Play new music during the day (check MUSIC.IDS for other parameters)
    StartMusic(COMBAT_NORMAL,PLAY) // Configure "songs" parameter in .ARE file where COMBAT_NORMAL = rb_mus01.mus (rb_mus) - 85

     

  10. Managed to get it done manually with NI but boy was it an ordeal... would rather go down the scirpting route! I don't think there's a thread in this forum which describes how to add music manually (if so then please correct me) in which case, I'll include the steps I did once I've remembered exactly what I did...

  11. I've just noticed this note from the Weidu documentation:

    • INT_VAR music if this variable is not 0 and the game is BG:EE, the audio files are given the extension .acm instead of .wav. This variable has no effect if the game is not BG:EE. By default its value is 0.

    I'm guessing IW:EE uses the same engine as an .acm file is produced...?

    In addition to how to use the ADD_MUSIC funtion, is there any other steps required to incorporate music or can I just use the PlaySong() function to play the music?

  12. I used the following script to create an .acm file from an .ogg file.

    BEGIN ~Add MUSIC~
    COPY ~my_mod/audio/music/RB_MUS01.ogg~ ~music~
    COPY_EXISTING ~songlist.2da~ ~override~
    LAF HANDLE_AUDIO
      INT_VAR
        music = 1
      STR_VAR
        audio_path = ~my_mod/audio/music~
    END

    From the Weidu documentation, I'm attempting to use the ADD_MUSIC function using:

    //ADD_MUSIC internalMusicName newMUSFile
    ADD_MUSIC ~RB_MUS01~ ~my_mod/audio/music/RB_MUS01.mus~

    But I receive a parsing error. How is this function used exactly?

  13. @Lava - Thanks for the link, I downloaded your other area-based mods so it will be fun to try them out. The content I'm working on is not lore-based, and unfortunately I started modding using NI way before I knew about Weidu so most of my content was created manually including adding string values to dialog.tlk so chances are it's not going to be compatible with other mods. I may still release it as a completely standalone mod as currently there are new spells, armour, items, animations etc.

    @JohnBob - Thank you again! Managed to get it working, had to remember to make the entrance and travel trigger names consistent. Now the Kuldahar Pass cave is accessible!

    BG_cave_to_IW_2.jpg

  14. @JohnBob - Many thanks! I'll follow your instructions and will report back when (hopefully) all goes well!

    @Lava - Thank you for mentioning your mod (just downloaded it!). Adding new areas was just something I was curious in trying but since your mod already adds a lot of areas and quests, I'm going to have to have a playthrough with your mod!

    @Graion Dilach - Great minds think alike! I thought to start small with a simple cave before I try to be too ambitious. Thanks for specifying the area I was talking about.

  15. I'm trying to add some BG areas to IWD:EE. My first attempt is editing Kuldahar Pass (AR2000.ARE) and adding a travel trigger for the cave in the south-west of the map. The cave I'm interested in is from BG:EE (BD0061.ARE). I did the following:

    1. Exported the BD0061.ARE (removed Location Flag "BG1AREA (8)")
    2. Exported the BD0061.WED
    3. Exported the BD0061.TIS as palette-based TIS
    4. Exported the WTLAKE.TIS as PVRZ-based TIS
    5. Removed any references to BG files to "None" (i.e. creatures, sounds, music etc.).
    6. Set trigger parameters accordingly (i.e. Destination area, Activation coordinates etc).

    I can see the area in NI but when I attempt to travel there using the console function "MoveToArea()", the game crashes. In-game, when I click on the travel trigger, the game freezes for a second and then unfreezes but nothing else happens, the area doesn't load.

    I assumed taking a BG:EE area and copying this to IW:EE would be possible considering it's all under the EE engine so am I missing a step?

    BG_cave_to_IW.thumb.jpg.f8baa53d6ae0200d275e683ee110509e.jpg

  16. I made a simple dialog action where if you speak with an NPC inside a house late at night, he/she will trigger the ActionOverride() function which sends you outside at defined coordinates. This is what I'm using for an NPC in AR1012.ARE in Icewind:

      ActionOverride(Player1,LeaveAreaLUA("AR1000","",[500.1530],SE))
      ActionOverride(Player2,LeaveAreaLUA("AR1000","",[480.1520],SE))
      ActionOverride(Player3,LeaveAreaLUA("AR1000","",[430.1500],SE))
      ActionOverride(Player4,LeaveAreaLUA("AR1000","",[350.1650],SE))
      ActionOverride(Player5,LeaveAreaLUA("AR1000","",[290.1630],SE))
      ActionOverride(Player6,LeaveAreaLUA("AR1000","",[270.1590],SE))

    Is there a function that simply activates the entrance trigger? I want to make a generic action that can be copied/pasted instead of specifying coordinates each time.

  17. Thanks again @jmerry, I used the function you referenced for Weidu to automatically place a generic container on a painting in the Temple of Tempus. I wrote it so that I can simply add the XY coordinate of the point I want and the script does some simple arithmetic to create an oddly-shaped box without me having to fill in the rest of the parameters. This is exactly what I wanted as I can now populate other areas with simple containers.

    Screenshot2023-10-23210939.png.9aacd41b2dfbed1ab07ca9064a7e19d9.png

    The simple script:

    BEGIN ~Add CONTAINERS TO AREAS~
    COPY_EXISTING AR1001.ARE override
      LPF fj_are_structure
        INT_VAR
        left_x         = 710
        top_y          = 360 
        fj_type        = 8 //nonvisible
        fj_loc_x       = left_x + 8
        fj_loc_y       = top_y + 32
        fj_box_left    = left_x - 1
        fj_box_top     = top_y
        fj_box_right   = left_x + 11
        fj_box_bottom  = top_y + 10
        fj_vertex_0    = (left_x) + (top_y << 16)
        fj_vertex_1    = (left_x - 1) + (top_y + 6 << 16)
        fj_vertex_2    = (left_x + 9) + (top_y + 10 << 16)
        fj_vertex_3    = (left_x + 11) + (top_y + 1 << 16)
        STR_VAR
        fj_structure_type = container
        fj_name           = ~Container~
      END
      LPF fj_are_structure
        INT_VAR
        fj_con_itm_idx    = SHORT_AT 0x74 - 1 // a new container will be last in the file
        fj_flags          = 1 // identified
        STR_VAR
        fj_name           = RB_ITM01.itm // Name of item incl. extension for custom items
        fj_structure_type = itm
      END

     

  18. I've started looking into creating new traps and containers for various areas. But when I enter the coordinates of the vertices which are clearly within the map constraints of the area, for whatever reason, the coordinates warp to some other values. Clearly I'm doing some wrong. I noticed various parameters for coordinates but I'm not exactly sure what they all mean. Here are the parameters I noticed using NI:

    Location X
    Location Y
    ...
    Bounding Box Left
    Bounding Box Top
    Bounding Box Right
    Bounding Box Bottom
    ...
    First vertex index
    ...
    Vertex X:0 Y:0
    ...

    I assume that:

    - The vertex are simply the XY coordinates of a pixel on the map.

    - The bounding box is the min/max coordinates of the X and Y direction (i.e. Left = Xmin; Right = Xmax; Top = Ymin; Bottom = Ymax)

    So what are the "Location" and "First vertex index"? I've seen the first vertex index with a value like 149 even though there were only ~70 vertices in total...

×
×
  • Create New...