Jump to content

marchitek

Members
  • Posts

    152
  • Joined

  • Last visited

About marchitek

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

marchitek's Achievements

  1. Maybe one more note that even components that can be installed like random spawns, seems to be broken. Game crashes immediately on Lion's Way. NearInfinity shows a lot of illegal CRE references on many areas (to some orcs, trolls etc). So it seems BG1 EE without SoD is not supported here.
  2. Thanks. I must say I still have similar problem on V1.1.2: ERROR: Failure("resource [spidsm01.CRE] not found for 'COPY'") BG1 EE v2.6 no SoD SETUP-GAENEMYRANDO.DEBUG WeiDU.log
  3. Version 0.7 is released. Changelog: Party Revive After Combat (Beta) for BG1 EE v2.6 (no SoD support). More Proficiency Points for BG1 EE v2.6 (no SoD support). Character Respawn (Beta): made failure protection in Ducal Palace escort mission more subtle. Town Portal (Beta): fixed bug that made portal marker creature health status visible when highlighting details. See first post for more details. This is actually implemented now with "Party Revive After Combat" component. In general, this is how it works: only "party revive" installed -> all characters dead = game over only "character respawn" installed -> protagonist dead = respawn "party revive" + "character respawn" installed -> all characters dead = respawn
  4. Ok, I think I found the reason (I hope). It seems problem was that my global creature had effect with op100 protection from creature type EA = ANYONE. After changing it to ENEMY it seems to work correctly every time (by now). I think op100 EA = ANYONE was problem because cutscene id where I am using MoveGlobalObject is Player1. Strange thing is that it was working correctly after starting new game, but loading game was messing it up (at least it seems loading game was the step necessary to reproduce it). Running "C:Eval('MoveGlobalObject("DBRPMRK",Player1)')" was moving it correctly every time, I was checking GAM files (since creature is invisible too) and probably I messed up files.
  5. Basically it sometimes not work at all, object is not moved to target. So I'm not 100% sure if this is problem with action itself or maybe action call is sometimes skipped because of my code. But after all I think this is something with action or with global object state, because after this happen I tried to do it with console: C:Eval('MoveGlobalObject("DBRPMRK",Player1)') // DBRPMRK is dv of my global object and it is also not moved. When I do it once more, DBRPMRK is moved, but Player1 cannot move then (like it was stuck in place). Then after third time it is finally unblocked and everything seems to be back to normal. Initial call that sometimes not works is made from cutscene. I'm wondering, maybe engine sometimes not finish move properly before cutscene ends and global object remains in some broken state. But I haven't seen anything suspicious in GAM file. This seems to happen only if global object is in different area then Player1.
  6. Does anyone have any problems with MoveGlobalObject? It seems to not working for me randomly. I mean, I'm pretty sure it is not random, but I still haven't figured out minimal steps to reproduce this. I'm wondering, maybe someone knows something off the top of the head, that could help me.
  7. I think in stats.ids there is "HATEDRACE" entry which could be racial enemy. If that's correct, maybe it is possible to detect it in scripts with "CheckStat" trigger or with op318. And if this is also correct you could maybe do what you want in scripts. I'm thinking about something like that: For effect change: for every player check if class is ranger and if you haven't adjusted it yet, then apply some spell that will add effects you want. I'm not sure which exactly opcode it would be, but you could maybe grant -4 damage vs race to negate hardcoded +4? To apply different spell depending on race you can use one of those techniques: In every spell use op318 to protect agains itself if HATEDRACE stat is not the one that this spell is intended for. The you can just apply them all and one that is correct would work, the rest will be blocked. Create long list of blocks for every race "if CheckStat(HATEDRACE, %race%) then apply spell for this race". You can hide this long list of blocks in cutscene and execute it without starting cutscene mode. For change on level up: I think you will need to do that by innate ability that would do it via dialogue and only if ChangeStat script action works correctly with it.The you could track character level in variable and give this innate ability on level up, if there is no simpler way to detect level up. Anyway, this is quite complex for someone new to modding, unless you have some other coding experience. But I just wanted to mention that maybe there is some possibility to do that.
  8. I tested that for op177 on BG:EE 2.6 and it seems to be blocked when saving throw succeeded.
  9. Hi @SparrowJacek Not exactly answer to your question, but in case you would like to do it with EEex combination of EEex_Sprite_GetSelected + EEex_Sprite_GetPortraitIndex should do what you want. C:Eval() by default use creature under the cursor as active creature so probably it will be not useful for you in this case.
  10. Ah, indeed I could check 2DAs. Thank you!
  11. This is probably simple question, but I'm puzzled a bit. Some characters have REACT_TO_DIE_SPECIFIC sound set for reaction to death of specific party member. But how games knows which party member should trigger this sound and which not?
  12. Ah, I see. I was confused because there is also protection from whole resource when HP > 60. But I guess this is additional protection when target HP is lower then 60, but have additional protection against kill opcode itself. Thanks. After all I think I would try to change general to DEAD and restore it later. I found why my code was not working, seems General(.., 0) trigger return true for every general value. Here is how I made it if someone need to do similar thing. This solution is possible because I need to track only few target that I know beforehand (Player1..6): I store general value of creature in local variable: I read general.ids and for every entry I make eff file that sets local variable to ids value (omitting 0 and 3 [DEAD]) In my fake death spell I apply every eff with proper general check (so I apply eff 1 only if general = 1 etc) At the end I change general to DEAD with op72 Revert is a bit more complicated because I haven't found way to apply eff based on local variable so restore needs to be in global script: I create cutscene bcs with blocks "if local variable is x change general to x" for every general.ids entry. One file for every player. Then for every player extend global script with block "if general is DEAD and {it is time to revert} and local variable is not 3 (to prevent eventual looping) then start proper cutscene (without entering cutscene mode)".
  13. I was afraid so. Thank you. I'm working on fake death spell that could be applied on party members and I wanted to also set general to DEAD when it is working. But code that I have now is quite ugly and on the top of that not working (I'm storing general value in local variable and restore it based on that). I want to make raise dead spell to work on characters under my fake death spell. So I could patch raise dead related spells to allow cast also on not dead. I guess reason for adding this general = DEAD requirement is to not apply #rdremov on alive characters. But anyway it is applied with opcode 326 so I could move DEAD check to #rdremov application and remove it from other places (raise dead opcode itself seems to not have problem when casting on alive). There is also DEAD check in power word kill and similar spells, I don;t get what it is doing.
  14. Is there a way to change GENERAL value temporary? Seems like both opcode 72 and ChangeGeneral action overwrites current value and there is no simple revert for it. Am I missing something?
  15. I was not aware about difference between setting state in cre file and setting state as part of the effect. Let me rephrase myself: Timing mode 1 (and probably 4 and 7) sets STATE_SLEEPING and STATE_HELPLESS in cre file. Timing mode 9 seems to set STATE_SLEEPING and STATE_HELPLESS only as part of the effect, what makes it different from other "permanent" timing modes. I think I misunderstood: I was thinking that you refer to note in IESDP: "In case of Timing Modes 1/4/7 the bits cannot be removed in-game".
×
×
  • Create New...