Jump to content


  • Posts

  • Joined

  • Last visited

About MaLa

  • Birthday 03/31/1987

Profile Information

  • Gender
  • Location

Recent Profile Visitors

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

MaLa's Achievements

  1. Sorry for the delay, I'm very busy this days and I don't have the time to take care of this project... you are of course welcome to borrow whatever you like, I don't mind at all! This would be valid for anyone, but expecially for you since I borrowed the main concept for mages from one of your projects!
  2. yes, I was a bit tired yesterday... I missed the obvious solution! =P
  3. Ok, this isn't really an issue in my case (except maybe for players willing to abuse the rod of resurrection for the heal effect), but it does limit drastically the flexibility of this solution, since it can't be safely applied to spells intended to target living creatures. Looking at your proposed solution, it seems that I reinvented the wheel but made it square =P I will implement your version, even if it isn't really needed, because i must say it is definitely more elegant. I can't say enough how much your help is appreciated, this mod owe you a great deal! edit: doing a quick test I found a downside to the spell sequencer solution: it displays the spell sequencer active portrait icon and this can be confusing for the player. Is this unavoidable? If this is the case, given that in this specific application is very unlikely to occour the magical weapon overriding issue, I think maybe my original solution could be preferable...
  4. Update on the resurrection issue: I tested the spellstate solution and it worked somewhat correctly... the issue with that is that cast spell on condition is very unreliable in respect to the trigger timing (it could easily trigger several seconds late). So I've been looking for a better solution and I found one, which I think could be worth sharing: The issue was how to force a character to cast a spell on self whenever he has just been targeted by some other spell or item (in my case all resurrection spells and items). This is my solution: Patch all the spell/item/s you want to be able to force their target to cast the spell, adding to them a create magical weapon effect: ocode: 111 target: 2 timing: 0 duration: 0 resource: YOURFAKEITEM Create the item YOURFAKEITEM: most parameter are irrelevant, but it need to contain at least a weapon ability otherwise the game will crash. Add to this item all the effects you want the character to cast on self as equipping effects. Done. The new item will be equipped by the target character, apply its equipping effects and immediately disappear. I tested this solution and it works much better than the spellstate one (and doesn't consume a spellstate), so i think this could be helpful to anyone who need to solve a similar issue.
  5. Yes, this is what I was thinking... binary match might be possible in a very complicated way, expecially for the less relation, I took it into cosideration for a while but i concluded that it ins't really feasable in practice. Too bad... Thanks anyway for your help! I need that to reactivate mana regeneration: currently it has a timing 1 to prevent the character from regenerating mana while dead. Mana regeneration is activated by casting a wizard spell and recast itself on a delay every time it triggers, so currently if it end prematurely it will not restart until the player casts a spell... this isn't ideal for me.
  6. Yes, this is the part I understand, the problem is how to read that value correctly once I set it... Now I have this four rows in splprot: W7_CM_LT 121 -1 2 W7_CM_EQ 121 -1 1 W7_MM_LT 122 -1 2 W7_MM_EQ 122 -1 1 If I put everithing in the same stat, I can't use 1 (equal) or 2 (less) as relational operators because they will take the whole dword into consideration...
  7. Thank you kjeron for your previous reply, it was very helpful! I meant to thank you but then I forgot... so better late than never! Anyway, it was a bit more complicated than I first expected, but I think now I'm very close to a working beta of the sorcerer component. At this point I could use some help with a couple of things: - For now I'm using two proficency for the system to work: one for current mana and one for max mana. This is a bit wasteful since proficencies are dword and i need only 7 bits to store a value between 0 and 99. IIRC kjeron suggested me in a previous post to use the higher bits to avoid the conflict with the original function of the proficency, so I think maybe I could fit both values in the same proficency and still don't overwrite the first byte. I could easily bit-shift my values, but then how do I chek them for = or <= in #318 an #326 opcodes? the checks would need to be limited to the correct byte and this doesn't seem possible to me... I'm missing something? - I need to detect when a character has just been revived to trigger a spell. I can't patch the casting of this spell in the revive spells because the spell need to be cast on self. The best solution I found util now would be to create a custom spell state, make all revive spell set it, and put a cast spell on condition on the charachter linked to that spell state. I still didn't test this solution, but I think it could work... is there a better solution? (spell states are a limited resource and I would prefer not using them)
  8. How can I safely identify every spell that will be listed in the sorcerer starting and level up selection using WeiDU? Looking at SPWI name prefix, wizard (1) spell type, 2 starting values in SPELL.ids first column, it seems that none of them refers only to this kind of spell... I need to patch all of them, including any mod added spell
  9. Yes, I figured that out, but I didn't want to be annoying, so I didn't correct you! =P
  10. Wow! This is much better then my version! Thank you very much! No delay? Maybe I'm missing something, but wouldn't this instantly regenerate one mana point after a spell has been cast at max mana? I was struggling for how to pass a value from one effect to another: this is brilliant! I was actually trying to avoid the "every round" casting with that chain cast, thinking that it would be less demanding for the game engine, but maybe it's a bit risky. Obviously in that case I would have removed the Cast On Condition and iniciate the chain by making every sorcerer spell cast SPELL A.
  11. I thought a little more about this and I'm not sure what would be the best thing to do... The problem is this: if I apply this solution, I can't use -1 as a parameter, so it would mean to fill splprot.2da with a LOT of predetermined stat checks. An alternative idea for mana regeneration could be: (SPELL A) (SPELL B##) (SPELL C) (SPELL D) I didn't include the part for rest/travel because it would make this exposition even more confused, but I think I have an idea on how to make it. What do you think about this? Could it work? It would be better or worse than make hundreds of rows in splprot for predetermined stat checks?
  12. Got it, thanks! Of course it's not ok with me! =P I would like this mod to be as compatible as possible, ideally with everything it isn't conceptually incompatible, but in case this was impossible, I would prioritize some mods I particularly like, such as yours (F&P, M&G and SoB), Demivrgvs ones (SR and IR) and SCS. I will avoid stats already taken by your mods and try to find a free one, but I would appreciate if you could do the same thing with the stat I'll use (as soon as I find one I'll tell you which one it is) with your future updates or new mods. Thank you for this suggestion, I'll try it! I thought about it, but sadly I'll need triple digits (the lowest acceptable cap would be 20th level, this combined with 25 CHA will result in a 120 mana pool). Since sorcerers have very limited weapon access, I could use a regular weapon proficency in a weapon inaccessible to them, but this (in the best case scenario) would fill the record page with a lot of +
  13. Finally I had the time to carefully read @kjeron post and I have some questions: I'm guessing you meant hp<102% (as an always true condition), I got it right? The informations I could find on this matter are a bit confusing and contradictory... In your example you make use of stat 116, which is, by IESDP description of opcode #233 (Proficiency Modifier), the first unused proficiency. This is fine, but then here are the rows from stats IDS corresponding to all the supposed unused proficiencies: From this source, it seems that stat 134 is the only actually unused stat (EXTRAPROFICIENCY20) and all the others are used by spell states. What is the truthful source? Moreover, I suppose there are other mods making use of this clever trick, so I would need to have a list of this mods and exactly what stat(s) they use, in order to avoid incompatibilities... Can anyone help me with this? In this case (and many other like this) you are setting a #326 opcode with two stat checks... you are shortening a more complex setting where a #326 with one condition applies another #326 with the other condition, or you really mean that I can set up an AND in this effect? In the second case, how I can do it? Has it something to do with the "use two rows of splprot.2da" pseudo stat? While this is the literal implementation of what I wrote in my description, what I actually meant was to set up the regeneration rate in such a way that the mana pool will always replenish itself in 8 hours, updating the current mana each time it would grant at least a new spell (assuming a 1:1 level/mana ratio, 1 every 2400/Maximum Mana seconds). I think I can figure it out myself, but I wanted to clarify my real intenctions since my previous explanation was misleading...
  14. Wow! Lots of very useful suggestions here! It seems you almost did all the job for me, I didn't expect so much! Thank you! I need to investigate a little better, but at first view it seems your structure could actually work, you came up with all of this on the fly? I was under the impression that Modify Proficency couldn't increment proficencies, only set them (this is what IESDP claims), but after a quick research I would say you are correct (and IESDP is outdated in this)... This is a real game changer! Yes, this is a better version of what I had in mind, avoiding the constant check for the need to recalculate. But if there is a way to avoid scripting complications (as it seems reading kjeron post), I would go for it!
  15. You mean find every item, spell or anything else that carries a CHA modification effect and add to it a MM and MR modification effect? This could be an acceptable solution, but it is a frightening task... I would need first of all to understend if and how I can filter this istances using WeiDU and patch them. Then the item/spell would need to: Check the character starting CHA (MM and MR modification for +X CHA effects depend on the original value) Check the character level (since MM and MR are level dependant). Target each combination of this two with a different MM and MR modification effect. At last, even after all of this, I can still get wrong results for limited duration effects if they stack: for instance, if a character starting with 17 CHA get two +1 CHA effects at different times (and/or of different duration), the first will not give him anything, but the second will. Then when the first expires the character will retain an invalid benefit until the second also expires. What I could do is to create an effect that sets a variable to force the script recalculate MM and MR, adding this effect to level and CHA modifications. This wouldn't spare me the task to find every CHA modification instances, but would solve the other problems... I would say: IF MR expired AND CM < MM THEN update catalyst This will keep comparing CM and MM at every cycle though... is this much more expensive than checking a single variable? Would be preferable to store an additional variable for maximum mana reached? I can do it either ways, it's only a matter of performance... You are totally right! I still need to digest all the limitations of this scripting environment... (such as I can't nest IF blocks).
  • Create New...