Jump to content

temnix

Members (r)
  • Posts

    1,472
  • Joined

  • Last visited

Everything posted by temnix

  1. I meant spells and scrolls. For example, in a standard installation of BGEE there are four scrolls labeled "Greater Malison," but only one just the right scroll icon and casts the corresponding spell. The others have Ghost Armor icons and cast pseudo spells, like "Tanarri Change." I don't know where those scrolls are used and who has them, but they screw up normal scroll patching. I want to filter out as many of these fakes as possible. And by the way, I invite suggestions for finding real wizard scrolls to apply patching. This should be something that would be compatible with changes to scrolls people make. I have gone with looking at item category, greater-than-zero string references for Identified name and Identified description, at least two abilities, the first ability with the Item location and the first effect of this ability Cast spell or Cast spell at point. There is still a risk that someone may patch them with effects on top of the casting, but this gives the best estimate. Still, if there is a more reliable way of separating wizard scrolls, I would like to know it.
  2. I'm doing some patching and copying of spells and scrolls, and I would like to leave out the ones that are intended as jokes or aren't real resources at all. CDDETECT.SPL gave me trouble as one of the latter, and jokes include "Summon Cow" (one spell, two scrolls). What else is there in the BG series and Icewind Dale of this sort?
  3. Quite so! Thank you again.
  4. Why not use one spell with 15 effects inside?
  5. I'm changing a category of items to make them conversable. After some checks and filters the code generates a dialogue from a template, copying it over in an INNER_ACTION. The name of the dialogue file that results for every item is the same as the SOURCE_RES of the item, for simplicity, and both are represented by the variable "itemres". In the end I want to insert APPEND to add to ITEMDIAL.2DA. The code is approximately like this: ....inside the patch, after making the dialogues... INNER_ACTION BEGIN OUTER_SET strref = RESOLVE_STR_REF (~Know It~) APPEND ~ITEMDIAL.2DA~ ~%itemres% %strref% %itemres%~ UNLESS ~ITEMDIAL.2DA~ ~%itemres% %strref% %itemres%~ END (and more ENDs to wrap up) I see no problem with this code, but somehow a parsing error results. Anybody has guesses as to why?
  6. Who can tell me, is it possible to decrement the number of wizard spell slots for every level exactly to zero, for a random character, without accidentally going under and giving 12 slots for every level instead?
  7. Giving this mod extra spin, the Mending spell is making an entrance at most common spell stores in BG1, BG2 and IWD1. It will repair a little damage to an undead creature or construct (golems etc., including Mordenkainen's swords) and bring party members of that kind out of their death. This will be useful if you have them in the group, because from now on Cure spells, Heal, Raise Dead and Resurrection, whether as spells or as abilities, won't work on golems and undead, and neither will healing potions. This is how it is supposed to be, according to spell descriptions, but to my surprise the spells turned out to work perfectly on undead in testing. I don't know if other mods have addressed this, but here it is a change of creatures, not spells. Keep in mind, though, that this change, right as it is, will make keeping Hexxat "alive" much more of a challenge. Well, you have her draining abilities, other black magic, and now Mending. Golems and other mechanicals, only not the swords, receive a special ability called Repair Flywheel. Naturally, you won't see it on enemies, but it's there, should you get control of some friendly constructs or decide to make a golem NPC, which I hope someone does make. (Ask me for sound files, I have something cool stored.) Repair Flywheel works as a program, a spell with a very long casting time, and every round it continues to be cast, the golem will heal a hit point. If you move from the spot, you will end the program, but it can be restarted anytime. Also in this version, First Aid takes account of the user's Intelligence. The chance of curing damage is the same for highly intelligent characters as for everyone else, but they will not inflict a bungling on the patient.
  8. This is as much a rumination as an update. Arrows, bullets and bolts in the first iteration didn't work perfectly, and still don't. Their paths are narrow, and much of the success of running around to dodge them has to do with the engine not registering projectile hits. There are a couple of particular angles shots from which the engine simply refuses to acknowledge. The only way to fix this would be to grossly increase the path width for every direction, but any wider than now, and these missiles will begin to hit people just standing shoulder-to-shoulder with each other, as flying axes already do. It's believable for axes, for arrows and bolts, not so much. I had to be satisfied with the current width. This is a bug, but you can try to role-play it with your archers, and there is learning to be done, which is always good. For years in these games the learning curve for anything has been flat like champagne from 1998, and modders jump on the camel's hump with both boots to make sure your brain rots in this fantasy world from nothing to know. But a big portion of a game's appeal can come from mastering even its flaws - if anyone remembers that fact from the old days... Now, if you see that a sure shot, most often at an oblique angle, passes over someone's head, approach: the attack should succeed at closer range. There are a couple of these unlucky angles to watch out for especially. The cure is to come closer. The same goes for using Melf's Acid Arrows and Flame Arrows - step up for a better chance. The most frequent bad angle to target will be this: Aside from this consideration, there is a change in the update. Arrows and bolts are still "dangerous" missiles in that they will continue to the limits of the area in the direction of the shot. This property can bring trouble, but it's too good to lose. If you want safe but fast missiles, use bullets. They now stop at their intended target, hitting those on the way as well but not going beyond.
  9. Today at a supermarket I saw a posted paper about giving first aid. I don't know why they had it there, it wasn't even about the coronavirus but about treating wounds - that first aid is only effective within 10 minutes of the trauma, about resuscitation and so on. So here is a little mod. It only works for the EEs, involving some advanced opcodes. Characters (and all humanoids and giants) can now administer first aid to someone who has taken damage within 3 rounds. This will cure 2d4 points, succeed in rousing characters from unconsciousness that comes in combination with damage, like getting slammed with a wing buffet, most of the time and slow the majority of poisons considerably. It relieves Constitution loss from vampire draining, too. Medics can bungle it, however, and instead do that much damage, deepen the swoon and accelerate the poison, if any. First aid can only be used once for a wound, and it works on anybody who isn't dead or made of clay or metal. Creatures can't use first aid on themselves, somebody else must tend to them. This should help team spirit... but you can use many minions for this, too. There is no need to start a new game. Creatures will be patched, including the party. NPC in areas you have already visited won't have this ability, but you can teach them by inviting them back into the group and having someone else use it. Download
  10. This update finishes the module by going through all candidates for monster weapons - everything undroppable with the name "Attack" and some other standard names commonly used - and making them non-magical and without enchantment bonuses. Now it is all about monster power. I sat down to the business of sorting out polymorph weapons, too, but realized that they are quite a mess and that I wanted to streamline them and introduce new mechanics there while I had the chance, and that this would be better done in a separate mod.
  11. Now putting up version 2. It has a fairly important fix for ankheg spit weapons, makes it so that Arrows of Slaying (all kinds you may have, including custom ones for different creatures) are single-target and includes a new optional component - Ammo Recovery. This can be installed independently of the main component of this mod, keeping missiles as they always were, except that now hitting someone with any missile that uses one of the standard projectiles lets you recover the missile from the corpse afterwards 20% of the time. You have to score a hit for this to happen. If you do install the main conversion of March Arrows, you will get to install a different version of Ammo Recovery, where the shooting character will automatically receive the missile back in his inventory a couple of turns after letting it loose, 20% of the time. This represents going out to look for arrows and bolts that flew out of sight and salvaging usable thrown axes, darts etc. Here it doesn't matter whether you have hit anyone, it's the fact of shooting that matters. Arrows of Slaying and explosive ammunition are exempt in both versions - they are never found. The reason this is an optional component is because missiles don't stack when they appear one by one in the inventory. They will be popping up gradually in one-arrow installments and filling the backpack, especially in the second version of this component. That, I imagine, can get annoying, so see for yourself if you want this.
  12. I'm trying to patch an item with a damage effect, in an EE setup, and there is no parameter that controls damage type. Parameter1 is for "Amount" of bonus damage on top of the dice roll, and parameter2 is for "Mode." How do I reach the type field?
  13. Current hit points, that's very good. What is "morale match," though? And I haven't been able to get AREATYPE to do anything.
  14. Has anyone tried to find out what can be stuck in SPLPROT to work as a targeting stat for opcodes like 318? The guide here only mentions a handful of options, but there are more. For example, just now I put 262 there to see what that does, and it corresponds to AREATYPE. Would be right nice to have this at hand for spells that work only indoors, wouldn't it? I have had to create invisible minions to check for this, but now it turns out I could have just used this effect. It looks like trying new numbers there will open more possibilities. So, has anyone done this? Is there an extended list?
  15. What stat number or pseudostat I should use if I want a condition "higher than this stat and lower than that stat," which is the same as "between stat and stat"? I know how to add two lines to SPLPROT with the end points for the range, but for the third line, which is the one I'll have to insert at the offset, the best I know is "259" ("match this or this") and "260" ("not match this or this"). The OR won't do here, I need AND. Is there such a stat?
  16. The token won't work. Tokens don't do anything but display a bit of text when you need them to, plus you can use them to change and set the names of creatures and area notes. But they aren't good as objects. However, you can use TakeObjectGoldGlobal(S:Name*,S:Area*,O:Object*) and similar actions to manipulate gold; check out the G3 guide to actions. I think these actions exist only for EE, though.
  17. You're confusing as always, Imp, but it looks like you are trying to help. So let's try to straighten this out to a useful form. The BAF business I don't think I'm going to need - none of this is about scripts. The string is to be shown in Display string effects, saying something like "I might have learned more about %spellname%." The result would need to be inserted at the string offset of the Display string in sub-spell 2. At 9E, for simplicity. I suppose it would take fetching the name of the main spell, putting it in a variable, then generating a new string from the template string and that variable and inserting the strref for the new string at 9E in sub-spell 2. I don't know how to do that, because it would take even more bobbing and weaving in and out of INNER_ACTION or INNER_PATCH, but, like I said, it's not strictly necessary. I could just print a generic string. What I really need a hand with is the main function: generating sub-spell 1 for every main spell (every wizard spell), then generating sub-spell 2 for every sub-spell 1 and inserting the name of the main spell in sub-spell 2's Give innate ability effect offset. Then inserting the main spell's name in sub-spell 2. In short: fetch SPWI315.SPL, start counting %number% from 1, copy over DUDSS1_#.SPL as 1S%number%_#.SPL, copy over DUDSS2_#.SPL as 2S%number%_#.SPL, patch SPWI315.SPL with the resource name 1S%number%_#.SPL, patch 1S%number%_#.SPL with the resource name 2S%number%_#.SPL and finally patch 2S%number%_#.SPL with the resource name SPWI315. Repeat for all wizard spells in turn.
  18. I hesitated before asking, there are so many idiots on these boards. But then, there are not idiots, and what I'm thinking of making won't be just for myself. Nothing I've made was. So let me address myself to that second category of people. I'm trying to patch spells in a complicated way, and on my own this will either take a very long time or I'll settle for something simpler and less effective and impressive. This is for a new system of magic. This part of change gives casters of wizard spells a chance to learn them (better) when they use them. By "learn better" I mean that they may get another use of this particular power. All wizard spells are being converted to innate abilities, usable once in a day as usual for them. When you learn a spell from a scroll, you get one daily use of, say, Armor. If you want to be able to cast Armor a second time, you either find another scroll, or you can practice the spell. But I want it so that the spell makes a separate learning check for every target affected by it. This way a wizard is not going to learn more about fireballing people unless he can catch some in the area of effect. Just casting Fireball on a patch of ground is not going to give an upgrade chance. On the level of SLP files I know how to implement this. I can patch spells to apply an Original caster-targeted Give spell effect, and that will be exactly one learning check for every target. The problem is that this is only a 5% chance, and the check should be made separately for every creature caught in the fireball, or once in case of a caster-targeting spell like Armor. But the engine makes only one roll for all targets. If it is a 5% chance and a dozen creatures get blasted, then 5% of the time the caster will get 12 upgrades at once and the rest of the time nothing. Obviously this is not how it should work, so I'm being forced to go through Weidu and get it to make custom sub-spells to be put on "Original caster." The probability rolls will be inside those spells. I also would like to include a Display string message for learning something, so that removes the ultimate teaching spells by another tier. The whole arrangement is going to look a lot like the INNER_ACTION tutorial from the Weidu doc, but I don't understand that well enough. The system in outline is like this: 1. Patch wizard spell 1, %number%, with opcode 146, Original caster, 100-0, casting sub-spell "1%number%.SPL," from a template "1.SPL," containing 146, Original caster, 100-95. 2. Patch sub-spell "1%number%.SPL" with inserted reference to "2%number%.SPL" from template "2.SPL," containing 139 and 171, Original caster, 100-0. Because only one roll is going to be made in every sub-spell's case, there have to be two tiers, with the message and the learning in the same 100-0 package, otherwise the message and the learning would be processed separately. So this is the intention: wide patching, two special sub-spells generated for every wizard spell, the first sub-spell inserted with the second and the original spell with the first. Ideally the string given by the message could be custom, too, but that's not strictly necessary. Here is what I have so far: COPY_EXISTING_REGEXP GLOB ~.*\.SPL~ ~override~ PATCH_IF (SOURCE_SIZE > 0x113) THEN BEGIN READ_SHORT 0x1C type READ_SHORT 0x68 abs READ_STRREF 0x08 name READ_BYTE 0x50 desc1 READ_BYTE 0x08 name2 READ_LONG 0x34 level PATCH_IF type = 1 & abs > 0 & !(~%name%~ STRING_EQUAL ~<NO TEXT>~) & !(~%name%~ STRING_EQUAL ~<No such index~) & desc1 > 0 & name2 > 0 THEN BEGIN WRITE_SHORT 0x1C 4 INNER_ACTION BEGIN OUTER_SET number = number + 1 COPY ~Sorcery - Hunger for Knowledge/The Specials/DUDSS1_#.SPL~ ~override/SS1%number%_#.SPL~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 9 timing = 6 duration = 4320 parameter2 = 1 STR_VAR resource = EVAL ~%SOURCE_RES%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 93 target = 9 timing = 0 duration = 360 parameter1 = EVAL ~%level%~ parameter2 = 0 END END END END I know there may be problems with the number of ENDs here and so on, but that's not where I get stopped. I have this confusing INNER_ACTION arrangement that is supposed to get a number, starting from 1, and insert it in the name of the first template spell, DUDSS1_#, as SS%number%_#. _# is my personal suffix, and SS is for "sorcery," but between them there should be enough space for up to 9999 digits. Going like this, incrementing by one, the code should copy over the template sub-spell 1. Never mind sub-spell 2 for now! I just want to get this part in, but "number" is not set inside the inner action, and I don't know how to set it once somewhere in the beginning or start counting from 1. This may be something simple for Weidu experts, but it isn't for me. If you lend me a hand here, I'll certainly credit you in the mod. And you'll be doing humanity an untold amount of good. The second effect being added in the main spell is the fatigue bonus from casting, also for every affected target, which will be limiting wizards' casting power.
  19. This is an update mostly to take care of conflicts with spells that set movement speed to zero or decrease it a lot: Entangle, Grease, Slow and a few others. Since with this mod creatures already begin to move slower after standing in place for a while, under a spell like that their speed dips below zero, which means it goes all the way around and they start teleporting about in tangles and saucepans of grease under their feet. While it is not possible to prevent this side effect for all spells and effects that may change movement, I fixed all of those I could find. Also Sprint should not become available to slowed characters. Finally, I worked on the take-off slowness to make it more smooth and natural.
  20. Update to version 3. Bullets are safe, plus an explanation of the projectiles flaw. In version 2, a monster weapon and Arrows of Slaying fix, plus an optional component. My thanks to @Jarno Mikkola for information on patching damage. Now that it's March, it can be in the name of this module. 1. Summary 2. Compatibility 3. Widths, speeds and monster spits 4. Spell arrows 5. Bushwacking 6. Optional: ammo recovery 1. Summary. This mod changes arrows, crossbow bolts, sling bullets, throwing daggers, throwing axes and darts (and, in a separate article, beholder rays; if you are installing for an Enhanced Edition, acid spit as well) in such a way that they hit creatures on their way instead of following and stopping at one target. An arrow will pierce everyone directly in its path and continue off-screen to the limit of the area, and it's like this with the rest of missiles. All of them pave a narrow corridor of damage. Attack rolls still matter, but positioning matters just as much or more. Characters have to actively spread around and run in zigzag to avoid being hit either by missiles aimed at them, at somebody else whirring by or, quite possibly, friendly fire. They also need to consider at which angles to shoot so that they don't end up killing a friend on the way or behind the target. I increased missiles' speed greatly, and now stepping out of the way of a slowly advancing dart or axe is not a realistic option - before there was, of course, no point, since everything was decided by the THAC0 roll. Now a "Miss" is nearly always a miss even if the target is standing still, and a "Hit" can be avoided if the character or monster gets out of the missile's path, but this needs to be done preemptively. A character trying to avoid the fastest missiles - arrows, bolts and bullets - can do that only if he dedicates his time to going in zigzags. The angle of fire is also important because shooting at right or broad angles to the target's course is hopeless. Shooters in these games can't anticipate where their targets will be and always fire at them where they are at the moment. If the target moves sideways, they will miss. These Blacktalons are in a desperate position for hitting Xan. The higher guard has a bit more of a chance of nailing him. On the other hand, in a place like this... This is the gist of the mod: putting real action in the action. On the whole, everyone will miss much more often, even when it seems to be a clear and sure shot, but creatures can be hurt much more effectively by firing into crowds, and smart shooters may be able to get several targets with one shot. Nothing in a fight with ranged weapons is as before: there is no standing and waiting for attack rolls in the bottom window to float up and resolve the situation by simple THAC0 vs. AC. Good Armor Class still matters. On this screen my character was magically protected all the way down, so he risks very little even walking in this storm of Arrows of Ice. I also patched different types of missiles to have different properties, made some other changes, and thieves have a new special ability - Bushwacking. More about all that below. 2. Compatibility I tried to make the mod compatible with both "classic" and EE games. The changes to most missiles, like the ones described above and beholder rays, are acceptable for the old engine. EE users will get more changed missiles, namely acid blobs, which had to be made safe (to the monsters themselves) with some advanced effects, so these will not be installed. EE folks will also get the Bushwacking ability for thieves. 3. Widths, speeds and monster spits All of the weapon missiles fall into three categories: 1) arrows, bolts and bullets: the fastest but have a narrow "corridor of pain," continue to the limit of the area; 2) darts: quite fast, with the most narrow corridor, which means they are usually effective only against stationary creatures, and they disappear a certain distance away from the thrower or when they hit the first target (this offsets the vast advantages of weapons like Darts of Wounding, Stunning etc.); 3) axes and daggers, slower but with quite wide corridors, especially axes, and likewise disappearing. Acid blobs, if they are changed, are even wider than axes and have the same speed and properties. All of these disappearing missiles - axes, daggers, darts and blobs - should be used at closer range now. From far away it is easy for creatures to shake them off by moving a short ways, which makes the missiles disappear. They are completely deadly at close range, however, if targets are not scattering frantically. (Even so, there will be more misses than before all around.) The best way to appreciate weapons' changed behavior is to buy some cheap ones and practice on stationary and moving targets, noticing distance and corridor width. Beholder rays are wider than everything and do not vanish on hitting or with distance but cut everything in front of them like scissors. I suggest surrounding beholders. There are a few thrown weapons in the games that return to the hand. These weren't made to hit in a path, because obviously they can't fly on if they are back. They now use custom projectiles identical to the original ones. Although they use the old attack system, their speed was still increased, and they still disappear at or before the end of the visual range, like the rest of throwing axes, knives and darts. They should also be used closer. Missiles that explode on hit were made to fly faster but not changed otherwise. 4. Spell arrows. The arrows for Melf's Acid Arrow and Flame Arrow (etc) now also harm everything on their way. Hitting with them is no longer guaranteed, just as with real arrows, but you may be able to get more creatures with one shot. Sometimes you may hit a second person but not the first: And remember that arrows, bolts and bullets continue all through the area until they hit a wall. If they hit someone else out there first, well... While testing on farmer Brun's field and firing at party members and monsters, I shot Chickens, Cats, Cows, Thalantyr the Conjurer, whom I had typed in from the console to buy from the store and forgotten, and Ajantis far off screen. Think thrice before you start a shootout anywhere in a town, and at least try to aim in the direction nobody is walking strollers. Even in a forest, though, wildlife and druids will fall. That's life, and if it were safe, it would be boring. 5. Bushwacking Also known as the money shot in the biz, this special ability becomes available to thieves of all stripes at 3rd level. With it the thief calls upon some modest, unassuming, wallflower-type friends who accompany him everywhere. If you think you are completely alone in the Outer Planes or on another planet, well, the thief isn't. These groupies will fire an arrow from the sides at the chosen target and normally hit - Armor Class is not a factor here, though misses are still possible, as always with this mod. Putting a regular arrow in someone's back will cost the party 20 gold. Starting at the 13th level, if the target is under Protection from Normal Weapons or from Normal Missiles, the little helper will charge 100 gold and fire an arrow +1. Arrows do 1d6 + 4 (+1) damage if they hit. The thief calls upon more of these characters with levels, and all need to be paid. He can use this ability any number of times in a day, so long as he has the gold. I won't put in any screenshots here, but remember that you don't know from which direction the arrow will come and who it will hit before and after. Discretion is advised. 6. Optional: Ammo recovery If you install the main component, you can also install ammo recovery for path missiles. 20% of the time arrows, bolts etc. will be recovered a couple of turns after they are used, appearing one by one in the backpack - and possibly filling it quickly (they refuse to stack, which is why this is optional). If you don't install the main component, you can install ammo recovery by itself, for traditional, single-target missiles. In this version missiles will be found on corpses of enemies they hit, 20% of the time. Neither version requires the Enhanced Edition. Download
  21. Is it possible to patch stores to change the number of items on sale in a particular item category? For example, make it so that only one scroll of every kind is sold? I don't mean to go through every given store and edit every particular scroll selection by name. I mean all scrolls everywhere. Can this be done with Weidu?
  22. Actually, scratch the last idea. If berserkers' morningstars don't penetrate Protection from Normal Weapons, why do spider fangs? This is a slippery slope. No, going by creature power is what I'm going to stick with.
  23. If someone wants to take this mod farther and give it special features to accomodate Sword Coast Stratagems and other mods - after I update it to take care of polymorph weapons - they are welcome to do that. This is as far I care to take the idea. subtledoctor is right that ogre berserkers' morningstars should be treated like any other morningstar, but that's a flaw of the whole method of basing enchantment-punching on Hit Dice. A troll only has claws, so does a dragon, but somehow they get to penetrate stronger defenses. All I can say is, maybe berserkers swing harder than regular ogres... Or maybe they have enchanted morningstars, but then, they don't drop them. Besides, I don't want to go through every creature and examine whether they are wielding real weapons or not, and this wouldn't cover creatures added by mods, anyway. There needs to be a general principle in place, and a line drawn somewhere. It's not possible to always look at the weapons monsters are drawn to be wielding in the games. Giants only have fists. If they were stopped by everything, beginning from Protection from Normal Weapons, that would make them complete pansies. In truth, ogres, gnolls and other weaponized monsters really should be treated like the seven playable races and not receive any bonuses from power but only from the weapons they carry. I think it might be possible to remove those "undeserved" bonuses in a general, patching way: give undroppable weapons in weapon-type categories (morningstars, gnolls' undroppable halberds etc.) an on-equipped 337 effect, removing the 344. If effects from weapons apply after effects on the creature itself on spawning, the power bonuses would be wiped away. Yes, I think that's a good idea.
×
×
  • Create New...