Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by temnix

  1. Update. I fixed the cutscene so that the conversation will always begin. Also you must dispatch the assassins before going to bed at Winthrop's. If you do what Endarire did, help Firebead, then peacefully stretch on the sheets for nice eight hours of sleep, don't expect to wake up and have them handily blasted. In fact, don't expect to wake up at all.
  2. I never did find out why the variable wasn't being noticed, but that's not important now. I did the whole thing in a completely different way.
  3. Stat changes aren't taken stock of during dialogue, neither from ChangeStat nor from Apply. The engine doesn't see new values.
  4. The recoloring is not simple here. It's OBVIOUSLY not grayscale either. I had to look quite a bit into how to get the right feel. And farming is not the point, although it's possible to earn some experience there. The purpose of the spell is to travel. OBVIOUSLY. Those who are getting a crash trying this on the old engine or Tutu should try these file versions. SWALK_#.SPL SW=_#.SPL
  5. "By a road obscure and lonely..." Recently I found out how to transport the party from a place in one area to the same coordinates in another. This gave me the idea to create the Demiplane of Shadow, with a duplicate underlying every one of the existing areas. The Demiplane of Shadow is a place of worst-case scenarios and ruling entropy, where the colors are dark and muted, the sky is always overcast, villages, cities and castles appear as ruins and familiar people can be encountered, but they are bitter, silent, warped or defeated, or possibly shouting accusations at the party for abandoning them long ago. And there are shadows everywhere... I want to bring some of this to the screen. I tried different image adjustment tools, and I worked out a look and a sound. As for Shadow Walk, it is a 7th level wizard spell from the Player's Handbook for going there, and I have it working - in one area for now. Here comes the part that makes a difference. I could have put this shadow duplicate together by hand, and it started out that way, but later I worked out a method to process all existing areas and patch them to take advantage of their actors, ambient sounds and regions (@DavidW provided some encouragement). Instead of building up every area, I have the code now that will convert actors to their counterparts who are not exactly in the same places nor what they seem, replace ambients with those from my own set and substitute gloomwing haunts for floor regions such as traps and "reputation traps" in cities. The shadow areas will have no doors to open, no connections to other areas and no chests, barrels or other containers, nor special area-wide scripts or scripted encounters. All of this can be done automatically, but I need some people willing to recolor the other areas' tile sets in the same style, applying my filters. This will not be difficult, but it will be pretty boring, routine work. Some people around here offer their help testing things. They can do better and work on duplicate areas. Although I could take this single prepared area and turn it into some kind of local quest, that's not my intention. This post is a call for those modders who want to step in and help make Shadow Walk a supremely useful spell. It will become that when every area has a shadow duplicate. The idea is simple: the party casts the spell and is transported to the same point on the demiplane, then marches in a straight line across a phantasmal landscape, over water, walls, roofs, mountain slopes, through the rocks of dungeons to the point where they want to reappear and use the spell's secondary ability to exit to the light world. In modding jargon, shadow areas have empty search maps. This is their first benefit. The second is being able to bypass traps (gloomwings are a nuisance, relatively speaking). The party can also surprise enemies. Like Dimension Door, this bypass can screw up prewritten scenarios and sequences, but - buyer beware. In practice, since Shadow Walk is such a high-level spell, only areas in BG2 would need to be worked over. For this demo, though, I took an area from the first game - central Baldur's Gate, with the gardens, the wall, the fair and Oberon's manor. I only guarantee that it will work on an Enhanced Edition game for now. When you load a saved game in the first BG with this mod installed, the party will be taken to the southern part of this place and given a scroll that can be used twice. For demonstration the spell will need to be cast from the scroll. Have a wizard use it anywhere in the area to shift to the Demiplane of Shadow. The wall that cuts across this area is a good place to test the usefulness of this spell, but you can also just walk about. At first the instinct to stick to the streets will be strong. When you get the gist and decide where you wish to exit, e.g. behind the backs of Marek and Lothander, use the scroll again. When the scroll is used either time, it will send through the caster and all party members in the fireball blast. I suggest loading a game with a fairly strong party, because the shadow world is not a safe place. If you enjoy the experience enough to offer help, drop me a line or say so here. Download
  6. Yes, there should be no cutscene there. I'll tweak that sometime soon. The problem is that for the assassins to appear every time, wherever the player may be at the deadline (and they do), a rather funky function needs to be used. On rare occasions they may show up behind an obstacle and not see the player to start the conversation at the end of which the cutscene ends. They are still there, though. I'll eliminate the cutscene mode. The Vanishing Act doesn't follow the standard format of the toolset required to be added to the starting spell selection, just like all my other spells. You don't get them at level-up either. They must be found somewhere in the world.
  7. Not normally. If I were randomizing some one variable, I would just use RANDOM as written, and the code inserts the right references depending on what is rolled. I finish with an END this bit of patching and start RANDOM again for the next PATCH_IF. I've done this many times. Here is how I'm randomizing doors to accept one of the three key items I made half of the time. I don't see a difference here, unless it's because above I'm putting in @TRA references, and those need to be forgotten in-between somehow? GET_OFFSET_ARRAY "doors" ARE_V10_DOORS PHP_EACH "doors" AS "ind" => "door_offset" BEGIN READ_ASCII ("%door_offset%") "door_name" READ_LONG ("%door_offset%" + 40) "flags" READ_ASCII ("%door_offset%" + 120) "key" PATCH_IF ((~%flags%~ & BIT1) == BIT1) & ((~%flags%~ & BIT6) == BIT6) & (~%key%~ STRING_EQUAL_CASE ~~) & !((~%area%~ STRING_EQUAL_CASE ~AR1100~) & (~%door_name%~ STRING_EQUAL_CASE ~Door1113~)) & !((~%area%~ STRING_EQUAL_CASE ~BG1100~) & (~%door_name%~ STRING_EQUAL_CASE ~Door1113~)) THEN BEGIN SET randomtry = RANDOM (1 6) PATCH_IF randomtry = 1 THEN BEGIN WRITE_ASCII ("%door_offset%" + 120) ~KEYA_#~ END PATCH_IF randomtry = 2 THEN BEGIN WRITE_ASCII ("%door_offset%" + 120) ~KEYB_#~ END PATCH_IF randomtry = 3 THEN BEGIN WRITE_ASCII ("%door_offset%" + 120) ~KEYC_#~ END END
  8. Yep. Don't even stay to say what is confused about missing offsets. The guide lists seven, there are more fields, have to count off the bytes myself from the name value for the others.
  9. I have this *situation*... an invisible minion has rebelled against his purpose and shakes the firmament. This sorry angel was left around in an area from which my spell whisked off the party - that's how the spell works; he was left behind as an anchor for its return. On the way OUT the creature had a reliable attachment to a specific party member, the caster, through LastSummonerOf, and sent him to the second area, the rest of the party following along. When the spell is cast to return, though, the game may be past a reload, which unmoors LastSummonerOf and similar objects, and so a more definite indication of who is coming back is needed. Thus, I put a local variable on the caster of the spell, setting it to 1, and a delayed effect that resets it, all in the casting. The caster is quickly removed from the second area and brought back to the first, where the original minion is supposed to check which party member has this variable set and proceed to finalize the return. The relevant part of the minion's script reads: IF AreaCheck("AR0700") Global("THS","GLOBAL",2) Global("THIS","LOCALS",1) TriggerOverride(Player1,Global("AWAY","LOCALS",1)) THEN RESPONSE #1 ... The global variable is at 2 to show that this is the journey back, it is set in the second area. The local on the minion was set when it was forwarding the party. The area is also right. But he refuses to recognize that the spell has put a local variable on Player1. Without this condition the block works, with it, it doesn't. I had doubts that possibly Player1 had a protection from NEUTRAL on, the minion being of that allegiance, so the variable could not be seen, but no. I thought I had failed to set it at all, but a check in BALDUR detected it on Player1 right away. It's just this two-bit Lucifer who doesn't want to admit it. Any ideas? Bitter experiences in the same vein?
  10. And not bother you, milord? Well, nobody is dragging you into the topic to reply. I look up these things, of course, but the Weidu readme is not always clear. It lists a bunch of offsets, and which fields do they refer to? For regions, for example, which I'm working on now, it lists seven offsets. But there are many more fields in a region. Is "trigger value," whatever that is, one of them? How about cursor number? Destination area, entrance name... is trapped? Is the trap detected? Try to fit all that into seven fields. I can do the counting off myself, sure, but then it doesn't help to refer me to docs.
  11. GET_OFFSET_ARRAY is a handy function, but it doesn't want to consider the randomness I'm building in. Here is how I'm patching regions: COPY_EXISTING ~SW1_#.ARE~ ~override~ GET_OFFSET_ARRAY "region" ARE_V10_REGIONS PHP_EACH "region" AS "ind" => "region_offset" BEGIN READ_SHORT ("%region_offset%" + 32) "type" PATCH_IF type = 1 THEN BEGIN WRITE_ASCII ("%region_offset%") ~Garbled text~ SET garbled = RANDOM (1 12) PATCH_IF garbled = 1 THEN BEGIN SAY ("%region_offset%" + 100) @1 END PATCH_IF garbled = 2 THEN BEGIN SAY ("%region_offset%" + 100) @2 END And so on. This code is supposed to randomize the text on signs in the area. But they all get the first entry. It looks like I need to clear memory here somewhere, with CLEAR_ARRAY, maybe. But where to put it?
  12. I'm trying to make a custom fog arrangement for an area I'm making, but putting the area code in front of the line doesn't work. With the area code in FOGPT the fog appears as very thick, flickering squares, as if there is no space for the area name parameter and it is interpreted instead as one of the others. If I try to put the area code in FOGAREA, the game crashes completely. By the way, an interesting fact: fog doesn't require an area to be "Outdoor," only to have "Weather." Unlike the other weather types, that is. It means there can be fog in dungeons. But all weather is only possible for areas listed in MASTAREA.2DA.
  13. At 8-character intervals? Okay, this ought to work, then. Thanks.
  14. As far as I can tell, the offsets for ambients don't include the file list.
  15. I'm looking for a way to give all ambients in an area different file names for their lists. Any ideas about how that can be done? fj_structure only adds or deletes ambients, and there is no function like ALTER_AREA_REGION etc. for sounds. I could open the ARE for a REPLACE_TEXTUALLY, but I can't know what the WAV file names will be in advance, nor how long, to end the regular expression. This is for patching a copy of every area so as to keep their numerous and craftily-placed and tuned ambients but make them play sounds from a custom set. If I could, I would replace WAV sound 1 in each with the name of the first prepared sound from my set, WAV no. 2 with the second and so on. This way or some other, the result should be a parallel set of maps.
  16. This mod is small and was done hastily. It had a serious, game-disrupting problem in one place and did not work too well overall. I cleaned up the act and added another component.
  17. The answer is no. My choice of a suffix instead of a prefix has caused no problems whatsoever to date, there is no reason to think it ever will, and I'm not responsible for anybody's knees. Let them get their heads out of the sand instead. It's a good thing you popped by, though, because I want to thank you for pointing out problems with "Adventurer's Miscellany." You were the only one to give feedback on that mod. I have a very big update and overhaul mostly finished, set aside for now as I'm making something smaller. As far as I'm concerned, you earned a reputation point there.
  18. Vision matters. If a gate is nearby and the character is under No Collision Detection but can't see to the other side, he will go around through the gate. It could be that shade walls do this. @Endarire, Thanks for the tip, but those spells probably use No Co and Override personal space, to pass through creature sprites. There are no other effects that can do the job. However, all this is not relevant anymore. I found the other half of the scarab and will put together a little demo soon.
  19. Too-roo-roo, the trumpets are blowing. The challenge: get a creature to walk from any point A on the map to any point B, across all walls and obstacles, through a script. The command that sends it will be a simple Move command, in essence. I've send creatures across the landscape with a wing buffet, when they were furnished with No Collision Detection... ...but getting to point B needs to be done by walking now, and the problem is that a creature needs to be able to see point B, or maybe just to see through all of the light obstacles and shade walls on the way. For example, here the characters on the right could not go through the wall, because they can't see the other side. They try to go around instead, if there is a gate, or bump into the wall otherwise. I've tried using Clairvoyance, but that just removes the black fog, I've tried Farsight, but that comes with a magic-icon pointer, unusable on automation, and increasing visual range won't solve the problem. The point to which the creature will be sent is always going to be on passable terrain, it's in the code, so that's not a concern. If you can figure out how to cut through all of these landmarks, I'll tell you the other half of a very cool idea the beginning of which I found in the toolset yesterday. Without, it won't work.
  20. So it would be more reliable, necessary, in fact, for SoA/Tutu to use a combination of state checks? How about !StateCheck(X,CD_STATE_NOTVALID) with InMyArea()? I used IsValid in lots of places lately, playing on EE they work, but if they are going to fall through the floor on a Tutu installation...
  21. "Anymore"? When did it? In SoA/Tutu? I don't know if I ought to include these extras for EXTERNs to work in Tutu. I guess I'll have to test this. Rieltar talks to Yeslick at the library, let's teleport the dwarf to Durlag's tower or the tiny chicken shed.
  22. Dumbass, I'm asking if not just for party characters but for monsters this is the only way. How did BG1 go about this with gnolls? Are they getting to-hit penalties?
  • Create New...