Skip to content

-HOW TO DO STUFF IN WEIDU-

1235789

Comments

  • semiticgoddesssemiticgoddess Member Posts: 14,903
    @subtledoctor: Thank you! I got it to work. Instead of opcode 272, I used 232, which allowed me to make the check happen whenever the critter in question was hit, instead of once per round (which would very seldom work for Archers, since Called Shot's STR drain is so brief).
  • RaduzielRaduziel Member Posts: 4,714
    Thanks!

    Can I give any animation from animate.ids to a creature?

    Let's say make a creature with the Glyph of Warding animation.
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    Did anyone download Weidu v243?

    My antivirus isn't allowing me to get it.
  • GwendolyneGwendolyne Member Posts: 461
    As usual. It is a false positive. Bypass your antivirus. ;)
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018

    Raduziel said:

    Is there a way to alter the Turn Undead effects for a kit?

    As a stupid example: Make it capable of turn Undead and Myconids.

    Actually I've just been experimenting a bit and I think I've got a way to use items as ability toggles. So if you're willing to use a quickslot for it (you're supposed to present your holy symbol, right?), then this kind of thing might be possible for anyone.
    I'm willing.
  • semiticgoddesssemiticgoddess Member Posts: 14,903
    @subtledoctor: That sounds really cool. How does it work?
  • [Deleted User][Deleted User] Posts: 0
    edited January 2018
    The user and all related content has been deleted.
    Post edited by [Deleted User] on
  • RatatoskrRatatoskr Member Posts: 726
    edited January 2018
    Hello again. Hopefully another quick question this time.

    Is there an easy way to make my new interjection for a character play after all the interjections from other mods, even if mine is installed last?

    Weights seem kind of complicated and I didn't see anything else in the weidu faq. So I guess the real question is, "can I use weights with interject copy trans, and if so, how?"
    Post edited by Ratatoskr on
  • semiticgoddesssemiticgoddess Member Posts: 14,903
    @subtledoctor: How would I patch all critters including party members with a visual range bonus? I was wondering what gameplay would be like if I doubled or tripled everyone's field of vision. I thought it might be interesting since there are so many differences in spell and missile weapon ranges that never become relevant because they're limited by visual range.
  • ArdanisArdanis Member Posts: 1,736
    Pretty sure the extended sight range still doesn't clear the black fog beyond the 30', even though you see critters walking among.
    As for gameplay effect, EE content has some tightly packed areas where actors are barely out of each other's sight. E.g. attacking Vichand in the Crusader camp in SoD would trigger the whole camp because they can now see him being attacked. Not quite critical, but you may have wanted to know.
  • RaduzielRaduziel Member Posts: 4,714
    I was creating some BAM files right now and, as I used the same PVRZ number for all of them (26) I ended up with 26 of the same picture.

    Looking at the NearInfinity documentation I found an instruction (given by @argent77 ) to use a special Weidu function to handle this (as I can't foresee other mods that adds BAMs and uses PVRZ number).

    How can I do it?

    Thanks!
  • argent77argent77 Member Posts: 3,478
    The relevant WeiDU functions for dealing with PVRZ are UPDATE_PVRZ_INDICES and INSTALL_PVRZ. Both functions are described in the WeiDU docs.

    Example for installing a BAM V2 file:
    [spoiler]// 1. Install your BAM V2 file COPY ~%MOD_FOLDER%/bam/myfile.bam~ ~override~ // Called in preparation for step 2 LPF UPDATE_PVRZ_INDICES RET original_base_index new_base_index END // 2. Install associated PVRZ file ACTION_IF (original_base_index >= 0 AND new_base_index >= 0) BEGIN // Only needed if source pvrz page index < 1000. // Alternatively, replace %zero% with a fixed string of zeros in the "source_file" path below. OUTER_PATCH_SAVE zero ~0000~ BEGIN DELETE_BYTES 0 STRING_LENGTH ~%original_base_index%~ END // Install pvrz with updated indices LAF INSTALL_PVRZ INT_VAR original_base_index new_base_index STR_VAR source_file = EVAL ~%MOD_FOLDER%/bam/mos%zero%%original_base_index%.pvrz~ END END
    You would have to expand the second part a bit if your BAM consists of multiple PVRZ files.
    [/spoiler]
  • RaduzielRaduziel Member Posts: 4,714
    @argent77 Thanks!

    Let's pretend I'm a 6 yo that just saw a cat having sex.

    Please, correct my example if I'm wrong:

    [spoiler]

    //Baervan Holy Symbol - code gently given by Argent77

    COPY ~Deities&Pantheons\Itm\HolySymbols\BAM\BAERS.bam~ ~override~
    LPF UPDATE_PVRZ_INDICES
    RET
    original_base_index
    new_base_index
    END

    ACTION_IF (original_base_index >= 0 AND new_base_index >= 0) BEGIN
    OUTER_PATCH_SAVE zero ~0000~ BEGIN
    DELETE_BYTES 0 STRING_LENGTH ~%original_base_index%~
    END

    LAF INSTALL_PVRZ
    INT_VAR
    original_base_index
    new_base_index
    STR_VAR
    source_file = EVAL ~%MOD_FOLDER%/bam/MOS1000.pvrz~
    END
    END

    COPY ~Deities&Pantheons\Itm\HolySymbols\BAM\BAERL.bam~ ~override~
    LPF UPDATE_PVRZ_INDICES
    RET
    original_base_index
    new_base_index
    END

    ACTION_IF (original_base_index >= 0 AND new_base_index >= 0) BEGIN
    OUTER_PATCH_SAVE zero ~0000~ BEGIN
    DELETE_BYTES 0 STRING_LENGTH ~%original_base_index%~
    END

    LAF INSTALL_PVRZ
    INT_VAR
    original_base_index
    new_base_index
    STR_VAR
    source_file = EVAL ~%MOD_FOLDER%/bam/MOS1001.pvrz~
    END
    END
    [/spoiler]
  • argent77argent77 Member Posts: 3,478
    edited February 2018
    Some minor corrections. The source_file paths have to be updated, and the "zero" code is not needed in your example.
    [spoiler]//Baervan Holy Symbol - code gently given by Argent77 COPY ~Deities&Pantheons/Itm/HolySymbols/BAM/BAERS.bam~ ~override~ LPF UPDATE_PVRZ_INDICES RET original_base_index new_base_index END ACTION_IF (original_base_index >= 0 AND new_base_index >= 0) BEGIN LAF INSTALL_PVRZ INT_VAR original_base_index new_base_index STR_VAR source_file = ~Deities&Pantheons/Itm/HolySymbols/BAM/MOS1000.pvrz~ END END COPY ~Deities&Pantheons/Itm/HolySymbols/BAM/BAERL.bam~ ~override~ LPF UPDATE_PVRZ_INDICES RET original_base_index new_base_index END ACTION_IF (original_base_index >= 0 AND new_base_index >= 0) BEGIN LAF INSTALL_PVRZ INT_VAR original_base_index new_base_index STR_VAR source_file = ~Deities&Pantheons/Itm/HolySymbols/BAM/MOS1001.pvrz~ END END [/spoiler]
    I'm assuming that PVRZ files are found in the same folder as the BAM files.

    Edit: You can probably place your code into a FOR_EACH loop to remove duplicate code.
    [spoiler]ACTION_FOR_EACH file IN ~BAERS~ ~BAERL~ BEGIN COPY ~Deities&Pantheons/Itm/HolySymbols/BAM/%file%.bam~ ~override~ LPF UPDATE_PVRZ_INDICES RET original_base_index new_base_index END ACTION_IF (original_base_index >= 0 AND new_base_index >= 0) BEGIN LAF INSTALL_PVRZ INT_VAR original_base_index new_base_index STR_VAR source_file = EVAL ~Deities&Pantheons/Itm/HolySymbols/BAM/MOS%original_base_index%.pvrz~ END END END [/spoiler]
    Post edited by argent77 on
  • RaduzielRaduziel Member Posts: 4,714
    Thanks, that will help me a lot! :)
  • RaduzielRaduziel Member Posts: 4,714
    Is there a better way to writing the following line:
    ACTION_FOR_EACH file IN ~BAERS~ ~BAERL~ ~BARAS~ ~BARAL~ ~CLANS~ ~CLANL~ ~CYRIS~ ~CYRIL~ ~HELMS~ ~HELML~ ~ILMAS~ ~ILMAL~ ~LATHS~ ~LATHL~ ~OGHMS~ ~OGHML~ ~SHARS~ ~SHARL~ ~SUNES~ ~SUNEL~ ~TALOS~ ~TALOL~ ~TEMPS~ ~TEMPL~ ~TYRS~ ~TYRL~ BEGIN
    COPY ~Deities&Pantheons/Itm/HolySymbols/BAM/%file%.bam~ ~override~
    ?

    Thanks.
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    I'll only use this once, the problem is that maybe this list will get bigger and bigger.

    Thanks! :)
  • RaduzielRaduziel Member Posts: 4,714
    edited February 2018
    Last question before I can move on to the last phase of my new kitpack:

    How can I direct a priest kit to a specific line of the priest stronghold?

    And: can I direct one kit to a stronghold that is not the priest one?

    Let's say I want to make a kit being able to get the Thief stronghold. Other to get the Fighter one. Other to the druid's stronghold. And finally, make sure that some kits will be correctly directed to the quest given by Talos/Helm/Lathander.

    Can it be done? I took a look at Divine Remix and even talked to @CamDawg , but the code there looks like Greek to me (what a surprise!)

    Thanks!
    Post edited by Raduziel on
  • [Deleted User][Deleted User] Posts: 0
    edited February 2018
    The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    Dialog files.

    A new sea to sail apparently.

    I'll see what I can do, thanks for the link :)
  • CamDawgCamDawg Member, Developer Posts: 3,438
    A new tutorial, Of cleric kits and strongholds, is available.
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    @CamDawg Is every stronghold conditioned to the spawning of an actor?

    If so, do you have a list of all the actors in all the areas for all the strongholds?

    Thanks!
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714

    Raduziel said:

    If so, do you have a list of all the actors in all the areas for all the strongholds?

    He posted a list in this thread.
    Thanks!
  • RaduzielRaduziel Member Posts: 4,714
    CamDawg said:

    A new tutorial, Of cleric kits and strongholds, is available.

    I'm getting a parsing error
    Install Component [Strongholds Alterings (requires the respective kit component)]?
    [I]nstall, or [N]ot Install or [Q]uit?
    Installing [Strongholds Alterings (requires the respective kit component)] [1.0]

    [DeitiesOfFaerun/Components/StrongholdAlterings.tpa] PARSE ERROR at line 112 column 1-4
    Near Text: IF
    GLR parse error

    [DeitiesOfFaerun/Components/StrongholdAlterings.tpa] ERROR at line 112 column 1-4
    Near Text: IF
    Parsing.Parse_error
    ERROR: parsing [DeitiesOfFaerun/Components/StrongholdAlterings.tpa]: Parsing.Parse_error
    Stopping installation because of error.

    ERROR Installing [Strongholds Alterings (requires the respective kit component)], rolling back to previous state
    Unable to Unlink [DeitiesOfFaerun/Backup/22/OTHER.22]: Unix.Unix_error(1, "unlink", "DeitiesOfFaerun/Backup/22/OTHER.22")
    [DeitiesOfFaerun/Backup/22/UNSETSTR.22] SET_STRING uninstall info not found
    Will uninstall 0 files for [DEITIESOFFAERUN/DEITIESOFFAERUN.TP2] component 22.
    Uninstalled 0 files for [DEITIESOFFAERUN/DEITIESOFFAERUN.TP2] component 22.

    [DeitiesOfFaerun/Components/StrongholdAlterings.tpa] PARSE ERROR at line 112 column 1-4
    Near Text: IF
    GLR parse error

    [DeitiesOfFaerun/Components/StrongholdAlterings.tpa] ERROR at line 112 column 1-4
    Near Text: IF
    Parsing.Parse_error
    ERROR: parsing [DeitiesOfFaerun/Components/StrongholdAlterings.tpa]: Parsing.Parse_error
    Error Uninstalling [DEITIESOFFAERUN/DEITIESOFFAERUN.TP2] component 22:
    Parsing.Parse_error
    This part of the code seems to be the problem
    //Add Baervan, Baravar and Oghma to non-cleric quest-line

    OUTER_SPRINT extend ~~
    ACTION_IF FILE_EXISTS_IN_GAME ~RABAER.2da~ BEGIN
    OUTER_SPRINT extend ~%extend%
    Kit(Player1,RABAER)~
    END
    ACTION_IF FILE_EXISTS_IN_GAME ~RABARA.2da~ BEGIN
    OUTER_SPRINT extend ~%extend%
    Kit(Player1,RABARA)~
    END
    ACTION_IF FILE_EXISTS_IN_GAME ~RAOGHM.2da~ BEGIN
    OUTER_SPRINT extend ~%extend%
    Kit(Player1,RAOGHM)~
    END

    COPY_EXISTING ~AR0900.bcs~ ~override~
    DECOMPILE_AND_PATCH BEGIN
    REPLACE_TEXTUALLY ~\!Class(Player1,FIGHTER_MAGE_CLERIC)[ %TAB%%LNL%%MNL%%WNL%]+!Class(Player1,CLERIC_RANGER)~
    ~\1 %extend%~
    END
    BUT_ONLY

    EXTEND_BOTTOM BHARVAL 2
    IF ~Alignment(Player1,NEUTRAL) %extend%~ THEN DO ~OpenDoor("DOR0902b") EscapeAreaMove("AR0902",577,650,14)~ UNSOLVED_JOURNAL #3439 EXIT
    END
    Any ideas, @CamDawg ?
  • CamDawgCamDawg Member, Developer Posts: 3,438
    Dialogue code is separate from tp2 code. IOW, this bit:
    EXTEND_BOTTOM BHARVAL 2
    IF ~Alignment(Player1,NEUTRAL) %extend%~ THEN DO ~OpenDoor("DOR0902b") EscapeAreaMove("AR0902",577,650,14)~ UNSOLVED_JOURNAL #3439 EXIT
    END
    Needs to be put into a separate file and COMPILEd via your tp2/tpa.
Sign In or Register to comment.