Jump to content

temnix

Members (r)
  • Posts

    1,472
  • Joined

  • Last visited

Everything posted by temnix

  1. Your code is flawed. First, you forgot to count columns. I inserted COUNT_2DA_COLS cols to do this. Second, I get the message that WRITE cannot be converted to an integer for writing into parameter1. COPY_EXISTING ~kit.ids~ ~override~ COUNT_2DA_COLS cols READ_2DA_ENTRIES_NOW rows cols FOR (row = 1; row < rows; ++row) BEGIN READ_2DA_ENTRY_FORMER rows row 1 ~kit_name~ READ_2DA_ENTRY_FORMER rows row 0 ~kit_ind~ PATCH_IF (~%kit_name%~ STRING_EQUAL_CASE ~ECSTATIC~) BEGIN SET WRITE = %kit_ind% END END BUT_ONLY
  2. Okay, thank you for the READ code.
  3. But how to get it from KIT.IDS? It's added dynamically. And the ready line for kit checks works. The problem is, I thought I could write the ASCII for my kit name there, but no.
  4. Well, I give up. If you have the same game everyone does and nothing works for you, it must be the will of God.
  5. I've done that already for savants (wizards). They are the ones getting reference spells in the book and actual spells as innates. With sorcerers it looks like they are hard-coded to learn their spells as the wizard type. Well, it's an opportunity to take them in another direction. I'm making a wizard kit and converting NPC sorcerers to that. By the way, do you know how to write the kit's name in a spell effect? For opcode 318, for example. Kit is 109 in parameter2, but parameter1 wants a 4-byte-long identification number for the kit. Where do I get that?
  6. I just started my perfectly standard BGEE and tried New_Cone_of_Cold with just one change - ticked "Affect enemies only." It works, and it's the only thing that needs to be set. Just do that - delete everything you've done to that projectile, reload and start from scratch. Use it on your party, nothing should happen with the check on. If for some unfathomable reason you still don't see the difference, there is a workaround you shouldn't have to use. Put effect 318, Protection from spell, on top of the spell or item ability with the damage - I'm assuming this does damage. Put 318 higher on the list, enter the spell's name in Resource and choose "Not enemies" among the conditions. This does the same job as the check in the PRO in all cases except for setting off triggered projectiles. If you wanted to make something like Skull Trap or Glyph of Warding that would be safe for the party to approach, you would tick that "Only enemies" box, and then allies would not set off the trap. With protection inside the spell allies would trigger it, but not experience the effects. In an instant spell like yours there is no difference, but try getting the PRO to do that job.
  7. I guess this is another way to do it. I went with patching creatures to remove their memorized spells, one by one, then add the same spells as innate.
  8. I can't know what exceptions to make, that's the problem in principle. Anyway, what do you mean by the wild mage spells? Nahal's Reckless Dweomer and Chaos Shield? I think I'm going to make scrolls for those.
  9. I found myself having to make a kit, and quickly. I'm sure people have been doing it for ages, but not me. I'm making this wizard kit available to half-orcs and dwarves, and enabling MAGE in CLSRCREQ.2DA has the unfortunate side effect of opening Mage to them, too. Is it possible to tuck away Mage but keep other kit options on the list? Plus, to make changes to permitted classes and kits I have to REPLACE_TEXTUALLY a line of CLSRCREQ with my own values. But if others have already put 0s and 1s there in different places, nothing will be replaced. I thought I could insert my MAGE line down on the bottom, hoping it would override what comes above, but no. Any suggestions?
  10. Make sure the projectile type is set to "Area of effect" on the main screen of the PRO, first of all. It will be, if you are editing the ready Cone. The "Projectile info" section is for settings for the bolt that kicks off the area of effect. In the case of, say, Fireball, this would be the ball itself. When it lands, the explosion happens. Since in the case of Cone of Cold there is no bolt, you need to go to "Projectile info" and make sure the graphics field up there says "None." It already does, if you are copying from the ready file as I suggested. Now exit and go to "Area effect info." Here you can tick off "Secondary projectile," it's on by mistake. It doesn't do anything, because the field for "Secondary projectile" reads "None." "None" actually is a real single-target projectile, the fastest one there is, but in such a setup it doesn't do anything. Now tick on "Enemies only," and the projectile should work as you want it. Since you don't want to change the visualization of it, you can keep "Explosion effect" as "Cone of cold," this will play the ice graphics and the sound. "Custom" here will let you enter your own BAMs in spread and ring animation, and you can play around with checkboxes on the bottom, too. There are many fine points here in the PRO, but you'll only need to know them if you decide to make original explosions and bolts.
  11. I'm converting wizard spells to innate, and I put various precautions and did rewrites and workarounds so that they function when known and memorized by NPC. I solved the problem of NPC coming with these spells as Wizard by patching them, taking Wizard out and putting Innate (same resource) in. But what I can't avoid is sorcerers and their choosing new spells on level-up. They pick spells from SPELL.IDS, and as soon as they do, the spell becomes known to them as Wizard, and it becomes uncastable and undetectable. I don't even know why it appears in their spellbook, to be honest, because it's Innate now. Wizards don't get them there any more from scrolls, I had to make duplicates for the spellbook just so that people could look up the descriptions. Now, being in SPELL.IDS in the wrong type is not a problem for spells themselves. If you make Sleep innate, it can still be cast from scripts by its symbolic name without changing anything. But sorcerers are being a pain in the ass. Can existing spells be somehow converted inside SPELL.IDS from Wizard to Innate, and would this fix the sorcerers problem? Or it is automatic that they will receive spells from the list as Wizard no matter what?
  12. Thanks, but I went the other way around. Since I couldn't properly sort out joke spells and spells of the wrong type (like "Tanar'ri Change," which is for some reason a wizard spell and listed as a wizard spell in SPELL.IDS; if I changed it to innate, which is what I'm doing to wizard spells, it wouldn't be castable by whatever demon knows it) - I went with spells in scrolls. Every proper wizard spell in the standard range is going to have a scroll for it to be learned, so I took the scrolls and only converted the spells they refer to. I should add an extra check - compare the spell cast from the scroll with the spell learned there. They are different in these pseudo Greater Malisons, and will probably be different in all fake scrolls, where the first ability was just edited to cast an unusual spell.
  13. No, it takes FILE_CONTAINS. I've figured this out by now.
  14. Forget hex everything. You have simply overlooked something about your projectile. Start by editing the existing New_Cone_of_Cold. Enter your own range, graphics there, etc. In Area properties check "Affect enemies only" and make sure to choose "Custom" for "Explosion effect" and then enter your own visuals. With this you'll be able to test, firing the projectile from, say, a custom item. (I use a ring "+RING" for these things, it conveniently shows on top of the file tree.) When you are satisfied with the projectile, rename the file to whatever you want and put in in your mod folder.
  15. Neither HaveSpellRES nor HaveKnownSpellRES work, when a creature has a spell known or memorized under a wrong type. For example, sorcerers get to pick spells upon leveling up, and it looks like these spells get put into their files as either known or memorized under "Wizard (1)." This is automatic. If a spell has been made innate, it can't be cast. I could use a script to check for this spell and then remove it and give it again as innate, only triggers don't react to it. Or maybe the problem is not type mismatch but that wizard spells will be put in the CRE under different levels, 0-8, and innates must always be 0.
  16. So the files are there but only quieter? In that case you need to import them from an EE installation. Find one. Ask around or download a pirate version from a torrent. There are too many for me to export them.
  17. Is there a Weidu function that can scan, say, a CRE file and replace references to a resource with another?
  18. My guess here is that the Trilogy comes without those sound files. I see no reason why anyone would try to disable such sounds, and there is no way anyhow other than overrriding them with silent versions of those files. So run Near infinity and check for WAVs. I can tell you that walk sounds all begin with "WAL_" and armor sounds with "ARM_". If you don't have them or they are silent, that's your clue.
  19. While doing some patching of spells I get changes of some abilities (headers) in some of the spells, or possibly even in all of the spells, only they seem to crop up every seven abilities, and spells with fewer won't show changes. These abilities stand out by being of a different type than others, for example, in a list of Ranged abilities there may be Melee or Magic cropping up or vice versa, but there are also rewrites to nearby abilities in minimum spell level or spell icon (I first wondered at this when Mirror Image showed up with an hourglass). A global effect I'm attaching on the bottom seems to get 1 in the Special field, too, though again not always. I don't know what may be causing these cycling warps, because I'm changing very little. Here is all the code that alters the spells: LPF ADD_SPELL_EFFECT INT_VAR type = 99 opcode = 146 target = 2 parameter2 = 1 insert_point = 0 STR_VAR resource = EVAL ~WZ%numbertext%_#~ END LPF ADD_SPELL_EFFECT INT_VAR type = 99 opcode = 146 target = 1 insert_point = 0 parameter2 = 1 STR_VAR resource = EVAL ~LR%numbertext%_#~ END LPF ADD_SPELL_CFEFFECT INT_VAR opcode = 171 target = 1 STR_VAR resource = EVAL ~DS%numbertext%_#~ END WRITE_SHORT 0x1C 4 The only thing that's unusual about surrounding code is that %numbertext% is drawn from a different resource inside INNER_ACTION. Preceding the above is: INNER_ACTION BEGIN COPY_EXISTING ~%oldscrollres%.ITM~ ~override~ READ_STRREF 0x50 numbertext END I stored information for spells inside scrolls, here I'm getting it out. The drawing and inserting works, too, the numbers are correct, but there are these undulations.
  20. I converted wizard spells to innate, but creatures still have them known and memorized in their CRE files as Wizard, at different and unpredictable offsets, of course. Any suggestions for GLOBing everyone to change their "Wizard (1)" to "Innate (2)"?
  21. What is that measured in, bytes? Anyway, the original SPWI218.SPL (Ghoul Touch) throws off a SOURCE_SIZE > 0x113 check. It simply will not be patched if that size is required. Without that check, patching happens fine. There may be other SPLs like that down the list, but Ghoul Touch is the first one to buck Weidu. In the override folder the size of the file, without changes, only saved, is 250 bytes, but facts are facts. Any suggestions for a different "sanity check"?
  22. Is it safe to record some numbers, within the size of the field, in "unknown" fields of a file? For instance, to leave markers for later patching. I would just do it, but maybe there is a known problem with this?
×
×
  • Create New...