Jump to content

temnix

Members (r)
  • Posts

    1,472
  • Joined

  • Last visited

Everything posted by temnix

  1. --- @Bartimaeus Time in these games is measured differently in different places. A round or one game minute should last 6 real-time seconds, and it does, but for some calculations 5-second rounds are used. An hour is often taken to be 300 seconds instead of 360, and a day-long spell duration is 7200 seconds where it should be 8640. I think "ONE_DAY" duration in GTIMES.IDS is 7200, though I haven't looked there for some time. I think 5-second minutes is also the measurement used by the engine to count off daytime and nighttime. Setting timers with 360-second hours, like I do, gets you rather later than the default. Anyway, the timers will probably expire somewhat after the exact time yesterday you killed someone or passed an ordeal. You'll be told to wait if it's not yet time and you attempt to tithe again. No refunds, though.
  2. I'm not the kind of reader to want exercises in coding. Will any large number work?
  3. What would that do? I'm not replacing specific strings but particular words, parts of words, actually, in the whole TLK file.
  4. I'm going to make some string rewrites in the TLK, for the mod, which I think are just great. For this I'm using --traify and --make-tlk. REPLACE_TEXTUALLY comes in between. But when the mod is uninstalled, the new TLK file, the one made from the TRA, doesn't go away, because it wasn't put there by a COPY action but created by AT_NOW commands to Weidu directly. Nor does the BACKUP command do anything for it. So it stays in its lang subfolder with the changes. It's not a problem for me, but out of the goodness of my heart I would like to allow players to roll the changes back. Is there a simple coding answer for this? In the absence of one, I thought of using this trick: COPY_EXISTING ~lang/en_US/dialog.tlk~ ~Mod/TLK~ AT_NOW ~Weidu.exe --traify-tlk --out "Mod/TRA-2/DIALOG.TRA"~ COPY ~Mod/TRA-2/DIALOG.TRA~ ~override~ Replacements... BUT_ONLY COPY ~Mod/TLK~ ~lang/en_US/~ AT_NOW ~Weidu.exe --make-tlk "override/DIALOG.tra"~ This uses an extra copy operation to put another TLK file, actually the original TLK, into its own subfolder as part of installation. It overwrites the file still there and is itself overwritten next by the new TRA conversion. When Weidu uninstalls the mod, it undoes the copy operation and restores the file that was in the subfolder in the beginning - the original TLK. This works, but I'm a little worried about how this process might fare with other mods getting installed later, interrupted installations and so on. If there is some simple three-letter gobbledigook %33&&^ to write instead and restore the TLK, I'm Playboy ears.
  5. Updated and final version with several imporvements, and essential for Icewind Dale Attention: for some reason that I gave up on figuring out the game may crash when starting a new game in Icewind Dale. This is not because of what the mod does but because of leftover files in override, they may linger for some reason. If they are deleted and override emptied, the game starts normally. For those who don't want to empty the override, this error only occurs on starting new games. If this happens at all, you should create your IWD party, start, save the game, then install the mod and load the save. 1. Acknowledgements 2. Crime 3. Punishment 4. From the bottom up 5. Redemption 6. Ordeals 7. Notes and tips 8. Rep and rap 1. Acknowledgements @CamDawg, @jastey, @DavidW, @argent77, @Lauriel, @Jarno Mikkola, @Ardanis, Guest Gob Oafenplug and others have contributed to this mod or others of mine. 2. Crime This mod is for and about characters with an ethos: paladins and rangers. It will hold both generated characters and NPC to a standard of behavior. Transgressions will be penalized with falling, through several degrees - losing powers first, turning into a fighter next. Former paladins who persist in deliberate villainy can become blackguards. Blackguards, on the other hand, can redeem themselves with goodness and take the road in the opposite direction, even all the way to paladin. The mod is not about Reputation. However, characters will still fall because of low Reputation, except cleric-rangers, because the engine does not recognize it when one half of them slips. Other than this, cleric-rangers abide by ranger rules. The main transgression in question is attacking and killing innocents. Innocents in this case are not bystanders from that particular class but any creature that does not originally pose a danger to the party, i.e. begins as a blue circle. Alignment is irrelevant. It is a transgression to attack a character who is evil and will turn on the party after dialogue, it is a transgression to attack preemptively out of convenience. However, only humanoids and giant humanoids deserve this consideration. Undead and monsters with blue circles are fair game unless they have dialogue, e.g. Kangaxx the Lich or dragons. Rangers must also take care not to attack innocent animals, e.g. bears. When another party member strikes at the creature, however, the paladin/ranger can join the fray without suffering the penalty. Flaming Fist enforcers, bounty hunters, Cowled Wizards etc. are also fair game. A character can transgress once in 24 hours at most. This keeps falling to "scene" level so that no one drops all the way down by several unfortunate swings of the sword or a misfired spell. (To make a Star Wars comparison, Anakin Skywalker and the young Jedi would constitute one episode.) The interval counting is in true, 360-second hours, which means 8640, not 7200, seconds in a day - four rests, not three. A ranger or paladin who transgresses by attack will not be punished a second time for killing the creature or for any other reason until the end of the intermission. Paladins occupying the position of party leader are also responsible for the behavior of the group. When a companion attacks, kills an innocent or tries and fails to steal from a store or pick pockets from most NPC (those capable of shouting), the leader paladin will suffer the penalty. This means that either paladins must not be leaders or the party must behave. Besides the moral fallout, victims of failed pickpocketing will now also shout for help, with the usual consequences defined in the shout script, and become unavailable for talking. Despite these strict mechanics always in place, transgressing against goodness or law may be a decision, a choice. It is something to role-play. There are a few special cases when the party may transgress in Baldur's Gate 1, the game I'm interested in. In those cases the speaking character, paladin or ranger, will fall, and if the party's leader is a paladin, he will fall also. You can find out what those situations are below or just play keeping alignment and class in mind and knowing that being a rude outlaw and brigand may sometimes be penalized. One should play that way anyhow. Modders who want to introduce checks to their own encounters and situations, to take advantage of this mod's system, can do so. They need to add the action ApplySpellRES("REPKI3_#",LastTalkedToBy) to dialogues where the speaking ranger/paladin must fall, ApplySpellRES("REPKP3_#",LastTalkedToBy) where only the speaking paladin must fall or ApplySpellRES("REPKR3_#",LastTalkedToBy) where the character will fall if he is a ranger. If all rangers and paladins in the party must fall, add ApplySpellRES("ATOCLK_#",Player1Fill) to the action. 3. Punishment After the first transgression the character becomes a fallen paladin or fallen ranger. After the second he becomes a fighter and his alignment shifts towards neutrality. Cleric-rangers lose their powers first and become fighter/clerics next, still with no access to spells. This is the end of the descent for rangers, although they can continue to accumulate sin with personal killings. Ex-paladins have the option of taking up villainy as a principle. This can't happen by accident or from group guilt but only from determined, sustained killing of innocents. As always, the record is updated only once every 24 hours. Killing children gets the job done quicker. After a certain considerable number of slayings the character will become a Lawful Evil blackguard. 4. From the bottom up For their part, blackguards can seek redemption and riddance of their dark powers. The difficulty of (re)ascending depends on the depth of the plunge, which is great for blackguard converts. Characters who were blackguards originally but did not commit any real wrongs, e.g. Dorn, are not so far from putting away their class. The challenge depends on their level when accepted into the group. It will take great effort for a high-level Dorn in BG2. When a blackguard succeeds in erasing his sins, he rises to fighter and a neutral alignment. From there he may try to attain the status of a fallen paladin, which will involve a change to Lawful Good, and eventually achieve full and proper paladinhood. Devolved rangers and cleric-rangers also can strive to rise first to the fallen status and then to a complete return. It is possible to rise and descend again any number of times, though after becoming a paladin it will be always along the lawful alignment axis. Redemption is dearly won and not guaranteed at all, however. 5. Redemption A character can try to redeem himself by slaying red-circle creatures of evil alignment. For every one there is a small chance that the deed will count. Another way is to use spells and abilities of the Combat Protections, Illusionary Protections and Non-Combat types (the last includes healing and curing) on blue-circle creatures. While merciful casting is only an option for blackguards hoping for redemption, the other classes having had their priest scrolls disabled, all other special abilities in these categories, from the games or from installed mods, will come with a small chance of counting as penance. I have myself made a few of these, e.g. "First Aid." All successes at penance count at 24 hour intervals, but merciful use of abilities is unique in that it uses a separate counter. Ex-rangers' ministrations are especially likely to be noticed if they cure or help animals. Attempting penance is impossible until the intermission period for the last misdeed has ended. Use the Atonement spell to relieve the guilt of the deed. This spell together with Ordeal and a tithing option are available at all non-evil temples in civilized settings. The spells will also be added to priest scrolls of all clerics and paladins in the party and NPC not yet encountered. If a character should have one of these spells but for some reason does not, have another cast it and the first will learn automatically. Atonement removes the guilt of a transgression. Ordeals and tithing are impossible until the guilt has died away or this ritual has been used. It also speeds up descent into blackguarddom. Tithing is a safe penance option: give 1000 gold from the party purse for a chance of relieving wrongs. The chance is not high, and it is likely to take many thousands of gold pieces. The character can tithe any number of times without exiting the temple screen, but results will only be shown outside. After success tithing may be tried again with effect only 24 hours later. Money spent afterwards tithing in a sequence will not be returned. Even if tithing is rejected, it will permit the character to request an ordeal out of turn. Tithing is also proof of intention for blackguards who want to change their ways. It will give them a special ability, "Renounce Powers," which will strip them of all class benefits for the next day. Every time it is used there is a small chance it will count as penance. Tithing does not do anything for ex-rangers. Instead they receive a special ability upon falling, "Grüngeld." This needs to be used on a druid neutral towards the party. The character will give 1000 gold to the druid for environmental causes. You know, the building of enormous wind turbines and such. Though the chance of this counting towards penance is still fairly low, it is better than for tithing. A druid companion may be used for this purpose if put out of the party, but either way the druid will be unavailable for the next 24 hours. 6. Ordeals The Ordeal spell and service is an opportunity to do penance quickly. Assigned at random, they are very dangerous and can kill or permanently maim a character or make him unplayable. Some ordeals are displays of willpower and commitment, others are special missions. Most must be completed before the character or party can return. Even success at ordeals does not guarantee redemption, however. Nothing does. The kingdom of heaven is not taken by storm. It is possible to remain unforgiven with the best efforts on every front. Here the player needs to ask himself whether he will keep on trying. It is possible to decline an offered ordeal, but another may be requested only a day later. Starting an ordeal also gives blackguards a chance to renounce powers. 7. Notes and tips The ordeal of shame can put even a main character in a permanent state of panic, if too much morale is lost. This kind of invalid will have to be kept up with Remove Fear, potions of clarity, Kiel's helmet etc. I recommend using WAL02 sounds from my replacement pack for wooden floors. The standard footsteps are too hard for the earthen maze. Focus on missions' assignments. Only one kind of challenge is guaranteed to count as penance if completed, but failing (all innocents killed) usually results in no reward. Blackguards do not rise to the light by slaying evil creatures. They must first become fighters, at least. 8. Rep and rap This standalone component makes it less of a losing proposition to choose villainy. NPC reactions to Reputation are ranged as follows: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 7 5 3 1 -5 -4 -3 -2 -1 0 1 1 2 2 3 3 4 5 5 7 Every value of Reputation now has its own title, which will help to explain the table: Abominated, Dreaded, Abhorred, Feared, Hated, Loathed, Disdained, Disliked, Tolerated, Ignored, Acknowledged, Accepted, Liked, Welcomed, Cherished, Praised, Cheered, Extolled, Celebrated, Idolized. As you can see, the low values give sharp bonuses to reception starting at 4. The worst Reputation levels to be at are 5-9. Nobody respects the local hoodlum, but impressive villainy pays off richly in quaking boots. A version of the Geas spell is also included. This Geas, sold at some scroll stores in BG2 and IWD, will prevent a companion from leaving on account of Reputation. He may complain, but he'll never storm out. Download
  6. Well, that certainly makes it easier. And just as I pulled through with Camdawg's code thanks to luck and brains.
  7. This piece of code is from CamDawg. I asked him for clarification about it, but I'm getting impatient with completing my mod. I hope he won't mind that I'm casting about here without waiting longer. The code is for adding cures to a temple. I need to add three. This does the job for the first cure, but something needs to be adjusted, offsets rewritten, for the second and so on. I just don't know what, and I really don't care to delve into the great science of hexadecimal numbers and coding to get this feature done. I'll acknowledge your contribution in the module, of course. READ_LONG 0x70 cure_off ELSE 0 READ_LONG 0x74 cure_num ELSE 0 SET insert = cure_num INSERT_BYTES (cure_off + (insert * 0x0c)) 0x0c WRITE_ASCII (cure_off + (insert * 0x0c)) ~SPELL~ // resref WRITE_LONG (cure_off + 0x08 + (insert * 0x0c)) 100 // price WRITE_LONG 0x74 (cure_num + 1) PATCH_FOR_EACH offset IN 0x2c 0x34 0x4c BEGIN PATCH_IF offset > cure_off BEGIN WRITE_LONG offset (THIS + 0x0c) END END So, this business needs to be repeated just below for the next cure. How exactly?
  8. Updated with some more work on wood footsteps (WAL_02 etc.) and replaced steps for stone titles (WAL_05). Hear the latter, for example, in the basement of the Duchal palace in BG1.
  9. Yes, but would I get a match for "IF StealFailed()"?
  10. I looked at the way tilesets with lots of water are made, with bays, rivulets, and it's completely crazy. The main map is carved out everywhere there is water, filled with a pale gray, and on the bottom there is a slew of special blue tiles corresponding to each filed-out space. A few fountains would be not too difficult to make this way, but the Werewolf island's maps are a good example of how complicated this gets, and this nutty jigsaw is just to set aside a space over which the water tileset will sway with transparency, creating a motion effect. I can't imagine how Bioware made maps like this back in the day. Are there any tricks to filling in water, any simpler ways? Say, fill the basins on the main map with an aquatint, then add animations here and there?
  11. My mod-created strings aren't getting erased together with the mod. What's more, there are so many duplicates and different versions that it seems that Weidu keeps adding to the dialogue file instead of updating text. I could blame some of this on aborted installations, but not the latest strings written just for the last version of the mod. The mod I removed to make a clean installation later, but the strings are still here. Why? This is throwing off descriptions, by the way. I keep seeing text which should not be there anymore, even though the TRA file is correct now. A, say, @1 reference in the tp2 points to updated text, but in the game I keep seeing old stuff or even irrelevant lines. I'm now going through the TLK and pulling out strings by hand, but I would like to know what the problem is.
  12. Yes, and I had an extra IF in the substituting string, this is why it wasn't compiling. But now I have gotten rid of all that, and compiling happens, only nothing changes in the end. I used an extra bit you have recommended for spaces. Neither of this changes ought: REPLACE_TEXTUALLY "\(%TAB\|%LNL%\|%MNL%\|%WNL%\)" " " REPLACE_TEXTUALLY CASE_INSENSITIVE EXACT_MATCH ~IF StealFailed([ANYONE])~ ~IF StealFailed([ANYONE]) THEN RESPONSE #1 ApplySpellRES("REPPR2_#",Player1) Continue() END IF StealFailed([ANYONE])~ And REPLACE_TEXTUALLY "\(%TAB\|%LNL%\|%MNL%\|%WNL%\)" " " REPLACE_TEXTUALLY ~IF StealFailed(\[ANYONE\])~ ~IF StealFailed([ANYONE]) THEN RESPONSE #1 ApplySpellRES("REPPR2_#",Player1) Continue() END IF StealFailed([ANYONE])~ I just gotta love this code. It compiles so smoothly and "successfully installed"! And doesn't change jack shit.
  13. Now I'm having trouble replacing an action. This bit of code should insert a special block before all StealFailed([ANYONE]) lines in scripts, and I put backslashes before the brackets, but it won't compile. REPLACE_TEXTUALLY ~StealFailed(\[ANYONE\])~ ~IF StealFailed(\[ANYONE\]) THEN RESPONSE #1 ApplySpellRES("REPPR2_#",Player1) Continue() END IF StealFailed(\[ANYONE\])~
  14. Is it possible to check for whether a party member is in the topmost slot? InPartySlot() isn't it, because Player1 is always Slot0, Player2 is Slot1 and so on. I need a check for "this, whether protagonist or not, is the leader."
  15. So the name of the MUS goes into "TheSongYouAddedWithADD_MUSIC"?
  16. Initiate the transvocational coolant protocol, amplify delta to the nth velocity and depropagate the nunchaki-dependant hydrovotaticon. Just start making these images big, draw them big or blow them up to 500% so that you can use Paint's brushes for shading without having to squint at pixels. Use broad strokes, then run a black watercolor brush around the ages to tint them down, finally fill the background with black, exit and resize the image. The black will blend by itself with the nearest colors naturally, and pure black will remain for transparency. Paint isn't a perfect painting tool for sure, but it's the simplest. The only effects I haven't managed there was if I wanted a gradual change of lighting across an image. For that I import the images to ArtRage.
  17. This will be perfect if it works. Where do you get the "\1," though? Isn't the string being replaced just an expression for "any word"?
  18. I will add this: in theory, it may be possible to simulate on-miss effects by adding Self-targeted spells and Original caster-targeted spells to all attacks. This second spell would only trigger on hit and block the first spell. The trick would be to get durations right. The Self spell would need to be made Delayed/Permanent at 0, which is always slower than Instant/Permanent, but this may still not be enough to get the second sell in ahead of the first, especially with ranged attacks. There it would really be a headache, if doable at all.
  19. I need to add a casting of a special spell to all instances in dialogues where the NPC turns hostile in the end or commands others to turn hostile. I'm using this code: COPY_EXISTING_REGEXP GLOB ~.*\.DLG~ ~override~ DECOMPILE_AND_PATCH BEGIN REPLACE_TEXTUALLY CASE_INSENSITIVE EXACT_MATCH ~DO %Enemy() % EXIT~ ~DO %ApplySpellRES("REPOFF_#",Myself) Enemy()% EXIT~ REPLACE_TEXTUALLY CASE_INSENSITIVE EXACT_MATCH ~DO %Enemy() %~ ~DO %ApplySpellRES("REPOFF_#",Myself) Enemy() %~ REPLACE_TEXTUALLY ~,Enemy())~ ~,Enemy()) ReallyForceSpellRES("REPOFF_#",Myself))~ END BUT_ONLY The second one includes a space near the end in case Enemy() is not the last action in the sequence, though it usually is. The last one is for ActionOverride, for cases where, say, Hobgoblin 1 does ActionOverride("hob2",Enemy()). Starting from the comma should cover all script names. But either I'm not writing these correctly or it's some funkiness with REPLACE again. Ideas?
  20. Either there or select your BAM or another BAM in the directory tree on the left and click "Edit." What I said about getting rid of nearly black colors and raising the transparency threshold (temporarily) was all for this tool.
  21. When songs have been added and MUS files copied, is it sufficient to select the playlists manually in ARE files? Or does Weidu have to be used to patch AREs with numbers for SONGLIST?
  22. Dude, just do like I told you. Open your cloak in Paint, flood the background with white for the black edge to stand out, remove the edge carefully with the pencil tool. Now save the image as PNG, exit Paint, convert the PNG to 256 colors and import it into Near Infinity's BAM editor. Forget BAM Workshop.
  23. There is nothing wrong with a 256-color palette. All of the games used only so many colors for their characters, items and backgrounds. On your example picture you simply have too few colors, period, it's not the fault of the palette. I would guess that the spots are of some very dark color that isn't quite black. You can check this inside the BAM-editing tool of Near Infinity: click on "Palette" on the first tab and select all of the black-looking squares. You may find some that are actually 5-5-5 in the channels or something like that. In that case either set them all manually to 0-0-0 (and your first color, uppermost leftmost, must be 0-0-0 too, of course), or if there are too many you can go to the last tab and lower either Brightness or Lightness. You can also set a higher transparency threshold on the first tab, to something like 10 or 15%, temporarily. Now save the image, and the near-black colors will be replaced with black, which will be removed the next time you open the image. Return the threshold to 0% or increase Brightness/Lightness by as much as you reduced it to get the rest of the colors to their normal state. As to why these black artifacts appear, I can just tell you the procedure I use for making BAMs, which never gives me this trouble. I draw or open ready images in Microsoft Paint, then save them as PNG (actually, I have a few PNGs lying around at all times, so it's easier to just copy these and rename). These PNG files after Paint is done with them are always 24-bit color, and Near Infinity will refuse to import them, so you must first convert them in your image editor (mine is FastStone) to 256 colors. Now you can import them into Near Infinity.
×
×
  • Create New...