Jump to content


GeN1e's Content

There have been 127 items by GeN1e (Search limited from 18-May 23)


By content type

See this member's


Sort by                Order  

#601089 About GLOB

Posted by GeN1e on 20 March 2018 - 11:45 AM in IE Help

To put it another way: if you do not specify GLOB with COPY_EXISTING, WeiDU pretends that the override directory contains 0 files that are not in CHITIN.KEY.

I.e. without GLOB mod-added files will be ignored.




#600858 A reliable way to control a hostile

Posted by GeN1e on 07 March 2018 - 07:50 PM in IE Help

There's DisableAI() action in EE v2.0+.




#600852 What happens if a number in PROJECTL is already taken?

Posted by GeN1e on 07 March 2018 - 11:57 AM in IE Help

The latter value overwrites the former, if both share the index.




#600777 How to send a creature to the nearest enemy?

Posted by GeN1e on 03 March 2018 - 08:00 PM in IE Help

As for actions, JumpToObject and MoveToObject only take script names or other definite objects.

I do believe it's your local environment playing tricks again. MoveToObject(LastBlah()) is an AI cornerstone, and I bet JumpToObject behaves no differently.

NearestXXX() does have a small problem of ignoring non-visible objects, however, maybe that's the case?




#600749 The scripts of the engine creature

Posted by GeN1e on 02 March 2018 - 04:38 PM in IE Help

With them, it does not repeat even when there is Continue().

Continue() adds the current block to the action queue and continues reading the script without execution until it reaches the end or a true block without Continue(). After that it executes the queue.

So you can get both displays from this example:

IF
  Global("test","global",0)
THEN
  RESPONSE #100
    SetGlobal("test","global",1)
    DisplayStringHead(Player1,~One.~)
    Continue()
END

IF
  Global("test","global",0)
THEN
  RESPONSE #100
    SetGlobal("test","global",2)
    DisplayStringHead(Player1,~Two.~)
END

 

BALDUR itself, with all of the regular content from previous mods and your mod, could be inserted at the OVERRIDE level and moved out of DEFAULT; I don't see why not.

I don't see why :shrug:

 

I would like to know whether these changes to the engine creature would be properly uninstalled?

Most unlikely.




#600664 A spell state detection problem

Posted by GeN1e on 26 February 2018 - 04:15 PM in IE Help

Works perfectly.

 

LAF ds_resolve_stat INT_VAR ids=1 STR_VAR id=PROTECTION_FROM_EVIL RET bless_state=stat_ind END

COPY_EXISTING sppr107.spl override
  LPF ADD_SPELL_EFFECT INT_VAR opcode=328 target=2 duration=36 parameter2=bless_state special=1 END

CLEAR_IDS_MAP

<<<<<<<<extend.baf
IF
    CheckSpellState(Player1,PROTECTION_FROM_EVIL)
THEN
    RESPONSE #1
        DisplayStringHead(Player1,~Protected.~)
END

IF
    !CheckSpellState(Player1,PROTECTION_FROM_EVIL)
THEN
    RESPONSE #1
        DisplayStringHead(Player1,~Not protected.~)
END
>>>>>>>>
EXTEND_TOP baldur25.bcs extend.baf

 




#600633 A spell state detection problem

Posted by GeN1e on 26 February 2018 - 09:33 AM in IE Help

Negating a trigger don't seem to always be binary. E.g. neither TriggerOverride("ff_camp",IsOverMe("corwin")) nor !TriggerOverride("ff_camp",IsOverMe("corwin")) would return true if there was no ff_camp object.

 

I don't remember seeing such with spellstates, though/




#600631 When is the party stripped during the BG saga?

Posted by GeN1e on 26 February 2018 - 09:27 AM in IE Help

You also get stripped of equipment in SoD epilogue, when they put you into jail, but you can get it back as soon as you're out of cage. This is basically just one scene.

 

The SCS mod also has an optional mod component that produces a party strip during the Spellhold story arc

I came to honestly believe it was vanilla :D




#600603 Incorrect damage from a weapon

Posted by GeN1e on 25 February 2018 - 01:45 PM in IE Help

Probably not, though I never checked it.




#600590 Incorrect damage from a weapon

Posted by GeN1e on 25 February 2018 - 08:10 AM in IE Help

Melee weapons receive +4 damage/thaco against targets without melee weapon equipped. Goes both for ranged and bare fists (except monk's).




#600466 That 326 effect, Apply Effects List

Posted by GeN1e on 21 February 2018 - 11:19 AM in IE Help

Pretty sure that if the AI scripts were not decentralized they would attain self-awareness and become Skynet. So I guess we can thank Bioware's pain-in-the-ass scripting implementation for averting the robot apocalypse.

Most other games use semi-hardcoded AI, controllable by flags. This actually is what I tried to simulate in SoD - BDSHOUT is shared by almost all actors who are not random wilderness encounters, and behavioral control variables are set/updated in their override scripts.

 

If you're going to patch AI scripts, then using specifics makes sense, since you'll have some degree of control anyway.
No-no-no, nothing that drastic, I just need a way to tell PC simulacrums to attack exactly same creature whose original attack by real PC caused them to appear (I hope that makes sense) :)

In that case you might actually wanna ask Temnix, as iirc he's been actively exploring the possibilities of LastSummonerOf()-based controls.




#600460 That 326 effect, Apply Effects List

Posted by GeN1e on 21 February 2018 - 09:14 AM in IE Help

 Am I missing something
No, you've got it.
 
If you're going to patch AI scripts, then using specifics makes sense, since you'll have some degree of control anyway. Do note that it's kinda unpleasant monkey work though, since you deal with a bunch of random scripts instead of centralized system (which is how AI must be... not in IE, apparently <_<).

PS Who on earth thought this piece of shitware was a good choice as forum engine? > :(



#600448 That 326 effect, Apply Effects List

Posted by GeN1e on 20 February 2018 - 09:40 AM in IE Help

Btw, it is perfectly legit to use specifics with effects

Not really, unless you're talking about adding new type of actors (e.g. subrace or something) and 177/326-targeting them with custom effects.

If you go about changing the already existing value, it's no different from changing the race, class or allegiance - yes, you *can* technically do that, but unless you're working on new content you don't have enough control over environment to ensure stability. As long as the latter is high on your list of priorities, that is.




#600444 That 326 effect, Apply Effects List

Posted by GeN1e on 20 February 2018 - 05:38 AM in IE Help

If you checked the IESDP, you'd see this in CRE file structure:

0x0274 1 (byte) Specific (SPECIFIC.IDS) 0x0275 1 (byte) Gender (GENDER.IDS). Dictates the casting voice, and checked for the summoning cap.

i.e. one byte aka 255 only.
 

Taking someone's pants off is forbidden, the minister said

It's irrelevant what value you use, as long as the actor has been assigned one. The mere fact of changing it will already remove them from their faction group.

 

But by all means, it's not my foot that you're pointing the shotgun at ;)




#600442 That 326 effect, Apply Effects List

Posted by GeN1e on 20 February 2018 - 03:47 AM in IE Help

SoD's AI system relies on specifics to distinguish friendly and hostile factions and subgroups within them (see InMyGroup() trigger). Feel free to throw rotten eggs and tomatoes at me for usurping that field :P

 

In any case, specifics is a scripting function. You may be able to re-purpose it for spell needs, but it doesn't change the fact you're doing something forbidden.




#600430 That 326 effect, Apply Effects List

Posted by GeN1e on 19 February 2018 - 02:33 PM in IE Help

My $20 is on "using an inoperable spellstate above 255."

Seems you're right. Forcing new state to 300 resulted in failure.




#600429 That 326 effect, Apply Effects List

Posted by GeN1e on 19 February 2018 - 02:25 PM in IE Help

This works fine - casting level 1 Pro Evil onto Blessed target autocasts Pro Evil 10'.

 

 

 

//////////////////////////////////////////////////////////////////////////////////////


DEFINE_ACTION_FUNCTION ds_resolve_stat INT_VAR ids=2 index=0 delete=0 RET stat_ind BEGIN


OUTER_SPRINT ids_file stats OUTER_SET min_new=401


ACTION_IF ids=0 BEGIN OUTER_SPRINT ids_file extstate OUTER_SET min_new=0 END
ACTION_IF ids=1 BEGIN OUTER_SPRINT ids_file splstate OUTER_SET min_new=0 END


COPY_EXISTING ~%ids_file%.ids~ override
  stat_ind=0
  found=0


  READ_2DA_ENTRIES_NOW stats 2
  FOR (row=0;row<stats;row+=1) BEGIN
    READ_2DA_ENTRY_FORMER stats row 0 ind
    READ_2DA_ENTRY_FORMER stats row 1 str
    SET $stat("%row%") = ind
    PATCH_IF index BEGIN
      PATCH_IF ind=index BEGIN
        REMOVE_2DA_ROW row 2
        found=1
        PATCH_IF delete=0 BEGIN
          INSERT_2DA_ROW row 2 ~%index% %id%~
        END
        row=stats
      END
    END ELSE BEGIN
      PATCH_IF ~%str%~ STRING_EQUAL_CASE ~%id%~ BEGIN
        stat_ind=ind
        found=1
     /* row=stats */ // don't stop looking, the same ID may be assigned to a greater index, which takes priority when compiling
      END
    END
  END


  PATCH_IF found=0 BEGIN
    stat_ind=min_new
    PHP_EACH stat AS row => ind BEGIN
      PATCH_IF found=0 && (row+1 < stats) BEGIN // not at the end of file
        next_row = row+1
        next_ind = EVAL $stat("%next_row%")
        PATCH_IF index BEGIN
          PATCH_IF index<next_ind && index>ind BEGIN
            INSERT_2DA_ROW next_row 2 ~%index% %id%~
            found=1
          END
        END ELSE BEGIN
          PATCH_IF stat_ind<next_ind BEGIN
            PATCH_IF ind<stat_ind BEGIN
              INSERT_2DA_ROW next_row 2 ~%stat_ind% %id%~
              found=1
            END ELSE BEGIN
              stat_ind+=1
              PATCH_IF stat_ind<next_ind BEGIN
                INSERT_2DA_ROW next_row 2 ~%stat_ind% %id%~
                found=1
              END
            END
          END
        END
      END ELSE BEGIN // at the end of file
        PATCH_IF found=0 BEGIN
          PATCH_IF index BEGIN
            INSERT_2DA_ROW stats 2 ~%index% %id%~
          END ELSE BEGIN
            PATCH_IF stat_ind>ind BEGIN
              INSERT_2DA_ROW stats 2 ~%stat_ind% %id%~
            END ELSE BEGIN
              stat_ind+=1
              INSERT_2DA_ROW stats 2 ~%stat_ind% %id%~
            END
          END
        END
      END
    END // PHP_EACH
  END


END




LAF ds_resolve_stat INT_VAR ids=1 STR_VAR id=AG_BLESS RET bless_state=stat_ind END


COPY_EXISTING sppr101.spl override
  LPF ADD_SPELL_EFFECT INT_VAR opcode=328 target=2 duration=36 parameter2=bless_state special=1 END


COPY_EXISTING sppr107.spl override
  LPF ADD_SPELL_EFFECT INT_VAR opcode=326 target=2 timing=1 parameter1=bless_state parameter2=110 STR_VAR resource=sppr408 special=1 END

 




#600402 Bug reporting practices discussion

Posted by GeN1e on 18 February 2018 - 06:21 PM in IE Modding Discussion

Also frustrating is when expression of that opinion gets decried as "censorship..." which, I mean look that word up in a dictionary - it does not apply here.

Also frustrating is when people act shitty towards others and justify it with "go find a safe space if you don't want people to be shitty!" ... but then start crying when you give it back to them.

I thought, for some reason, that you in particular would understand. Though perhaps the fault is mine for not recognizing the message in your first post :unsure:

I apologize if anything in my posts has caused you frustration or offended you in some way, that was never the intent.




#600334 Bug reporting practices discussion

Posted by GeN1e on 17 February 2018 - 08:29 AM in IE Modding Discussion

No I suggest closing thread because some people lost their cool and started acting like immature assholes and nobody needs to deal with that shit. There's nothing wrong with arguments - even heated arguments. But trolling and flaming is not that. This thread mercifully died, and now it's been necro'd for no good reason and nothing productive has been added so... what's the point? 

Probably because you can use the Beamdog forum if you need a safe space, and this forum if you need some freedom.




#600313 Bug reporting practices discussion

Posted by GeN1e on 16 February 2018 - 07:35 PM in IE Modding Discussion

God someone please lock this thread before it starts up again. Here's the tl;dr:

Modders: "please report bugs so that we can fix them."

Others: "No screw you! I shouldn't have to! And stop updating your damn mods, when you update them it screws up the fixpack! Also, update your damn mods more often and fix all the bugs that I refuse to tell you about!"

There, you've read the whole thread. Now please let it die.

Let censorship die instead  :rolleyes:




#600312 A patching problem

Posted by GeN1e on 16 February 2018 - 07:30 PM in IE Help

cat = 2 && !(~%view%~ STRING_EQUAL_CASE ~3A~) && !(~%view%~ STRING_EQUAL_CASE ~4A~)




#600080 Replacing strings in the TLK, any downsides?

Posted by GeN1e on 06 February 2018 - 07:21 PM in IE Help

!integer text Forced String Reference.

This is .D syntax, while you probably mean to use in TP2:

STRING_SET 1 ~New text.~

 

It does get ununstalled.




#600015 How to give a global effect to a spell?

Posted by GeN1e on 03 February 2018 - 06:56 PM in IE Help

Had he studied the WeiDU readme, I mean, the spellbook, he'd know what the magic word is :rolleyes:




#600012 How to give a global effect to a spell?

Posted by GeN1e on 03 February 2018 - 04:48 PM in IE Help

ADD_SPELL_CFEFFECT function, same syntax as the other add_effect ones.




#600010 "Zone of Clear Air" and projectiles that don't go away

Posted by GeN1e on 03 February 2018 - 04:45 PM in IE Help

I believe it only removes projectiles embedded into .are, not any and all.