Max Party Size & Max Followers

Discussion in 'General Modification' started by Hazelnut, Sep 13, 2006.

Remove all ads!
  1. Hazelnut

    Hazelnut Great Confusor

    Joined:
    Jul 20, 2006
    Messages:
    158
    Likes Received:
    0
    I've been trying to track down information / discussions regarding the maximum party size. I can find discussions about the ratio of pc's to npc's, but nothing about why there can only be a total of 8 party members. What is imposing this restriction? Does anyone know? Also, I seem to remember reading that there was a restriction on the number of followers too (like summons etc) - what's the restriction there?

    The reason I'm asking is that I'm looking at implementing the mass charm / suggestion spells. Since suggestion adds the critter as a party NPC, there's a corrsponding restriction to the number of critters that can be suggested to. I was testing this a bit last night (until I had to stop to help my daughter with her maths homework :roll:) and I successfully added 4 gargoyles to my group of four, and they proceeded to help me do the rest in. The thing is more than 4 were successfully suggested to, but only 4 could be added to the party. I think that it tried to default to just adding as a follower, but I'm not sure.

    With the party now full, if I then used single suggestion, the critter had the charmed flag added but didn't seem to be properly charmed because my fighter kept hitting them with cleaves resulting from AoO's... it was pretty chaotic actually since three successing rest attempts in the temple netted me two large groups of gargoyles. I will do more testing with this tonight and I'll be confiscating the fighters 'big stick with sword on end' so he doesn't keep cleaving everydamnthing. ;)

    Thanks in advance for any help on this - I have searched, but I couldn't find what I wanted to know.
     
  2. Hazelnut

    Hazelnut Great Confusor

    Joined:
    Jul 20, 2006
    Messages:
    158
    Likes Received:
    0
    I found the info tonight - searched for 'count'. :) You get an access violation if you add more than 8 party members. Also I noticed that there's actually not enough space along the bottom of the screen for more at the default resolution.

    So I don't need any help on this now.
     
    Last edited: Sep 13, 2006
  3. Cerulean the Blue

    Cerulean the Blue Blue Meanie Veteran

    Joined:
    Apr 23, 2005
    Messages:
    1,962
    Likes Received:
    0
    Even though you don't need help on this now, I thought I would throw this at you anyway.

    There are two types of followers in the game, followers and ai_followers.

    Followers get added to the party like NPCs (they appear in the party line-up and you can control their actions), while ai_followers get added to the party like animal companions and summoned creatures (they follow and help the party, but act independently and do not appear in the party line-up).

    Charm adds the charmed critter as an ai_follower, while Suggestion (IIRC) adds the critter as a follower if the party has less than 8 members, or as an ai_follower if the party has 8 members. With both spells, if the the summoned creature limit is already met ( 3 pre-5.0.0, 9 IIRC 5.0.0 and later) the game won't be able to add more ai_followers and you will get the results you describe.
     
  4. Hazelnut

    Hazelnut Great Confusor

    Joined:
    Jul 20, 2006
    Messages:
    158
    Likes Received:
    0
    Thanks for that Blue, I discovered most of it last night through trial and error - but it's good to have confirmation. I was really annoyed when I found that setting the condition sp-Suggestion didn't work. What happened is that there is some kind of hardcoded removal routine for the spell in the dll, but there isn't one for my spell so it removes the flags but doesn't remove the critter from the party. I tried everything I could think of, and wasted many hours doing so, to get it to work - to no avail. I can script all the neccessary effects I think, but I can't see a way to have the tags show up on the protrait at the bottom doing it this way. Any ideas?

    One other thing I'd like to ask is what is the purpose of the function End_Spell() in co8.py ? I really cannot figure out the purpose of this and it's driving me mad. :grin:

    EDIT: Some more questions for you if you'd be so kind as to answer...

    Code:
    def Nauseate_Me(spell, stinkee):
    	naseated_duration = 5
    [COLOR="Green"]	# spell_obj = game.obj_create( OBJ_SPELL_STENCH, stinkee.location )
    	
    	caster_init_value = spell.caster.get_initiative()
    	spell_obj.d20_status_init()
    	spell_obj.set_initiative( caster_init_value )
    [/COLOR]	
    	# put sp-Stinking Cloud condition on obj
    	# spell_obj.condition_add_with_args( 'sp-Stinking Cloud', spell.id, spell.duration, 0 )
    	stinkee.condition_add_with_args( 'sp-Stinking Cloud', spell.id, naseated_duration, 0 )
    	
    	stinkee.item_get(spell_obj)
    
    This is from "Spell735 - Hezrou Stench.py", and the part highlighted in green puzzles me. If I'm right it's not needed, but I wanted to check with you. You're not creating the OBJ_SPELL_STENCH now are you? Or is it being created elswhere?

    EDIT2: I've been playing with a summoned Hezrou - have you disabled the stench or something by commenting out the create line above?

    I'm interested in it because it's the only spell that seems to try and do anything in the OnBeginRound(spell) function - which I would like to use for one of my spells. I've yet to see this fire though - even on the Hezrou stench spell. The spell seems to function as an area effect spell, but basically I'm confused. Could you talk me though how it works please?
     
    Last edited: Sep 14, 2006
  5. Jesse Heinig

    Jesse Heinig Established Member

    Joined:
    Jun 26, 2005
    Messages:
    126
    Likes Received:
    0
    Spells like this create an object to which the spell effect is tied. Ice Storm is another such example; it makes an invisible "spell object" that has an initiative count and everything - although Ice Storm only has a duration of one round, so it doesn't really matter.

    The commented-out line does, indeed, keep it from making an object to generate the effects that would be attached to that object.

    My next spell update will probably have mass charm in it as well, just so you know. I've simply been super busy with the new school term!
     
  6. Cerulean the Blue

    Cerulean the Blue Blue Meanie Veteran

    Joined:
    Apr 23, 2005
    Messages:
    1,962
    Likes Received:
    0
    <Sigh>

    The Hezrou Stench has been the bugbear of my ToEE modding existence.

    A little history first. Livonya added the Stench to the Hezrou in her mod. It was in essence a Stinking Cloud effect applied to the Hezrou itself rather than a spell object (which Jesse explained quite nicely above) with the radius of effect reduced to 10 feet. It worked, but had one major drawback: The Hezrou could, and usually eventually would, be sickened by it's own stench. Allyx reduced the DC of the saving throw to combat this, but the Hezrou would still usually be sickened.

    The version that is now in 5.0.0 is my attempt to make the spell work. The commented out bits are my various strategies at making it work that failed, but I wanted to leave the code in for now because they might be made to work eventually. I won't go into all the details here, but I will say the major stumbling block was that I could only get the OnBeginRound function to fire once if the spell was cast during combat. If cast out of combat it would fire indefinitely, but during combat the most I ever got it to fire was 3 times. Though now that I think of it, I may have a new idea to make it work correctly. One that just may work. I'll have to try it this weekend.

    Anyway, if anybody wants all the details, catch me online and I will be more than happy to share.

    Oh, and you asked about End_Spell(spell) in Co8.py. That is one of mine as well. It's purpose it to force the game engine to stop running a spell script.

    Some spells without durations (Raise Dead, Resurrection and Extraplanar Chest for example) never actually ended as far as the game was concerned. While the effects were instantaneous, and for all appearances the spell had stopped running, the game engine kept running the spell script behind the scenes for the rest of the game. You can see this if you have console prints turned on. Eventually (especially for the Extraplanar Chest) these background scripts would build up and cause game slow downs and travel on the world map to slow to a crawl.

    My work around for this was to summon an invisible critter (one that can't be interacted with at all) using the summon monster effect and then destroy it. This fools the game engine into stopping the spell script, since it no longer needs to maintain the summoned creature timer on the destroyed critter. It has a few side effects but only with some of the testing tool spells I've written.
     
  7. Hazelnut

    Hazelnut Great Confusor

    Joined:
    Jul 20, 2006
    Messages:
    158
    Likes Received:
    0
    Thanks for the info CtB. When you say the Hezrou stench doesn't work, do you mean that you think a) it doesn't do what it should or b) that it doesn't do anything? If your new idea for getting the OnBeginRound to work does prove successful - please let me know. It will be very useful for many things.

    I've been doing some trawling of old posts today while bored at work ;) and discovered some interesting things. It seems that Mass Suggestion was implemented by Allyx back in October of last year. It's not in co8 release 5 though, which is why I've been working on this spell myself, since I want it for my bard's next levelup. Can someone tell me why it's not included in the co8 release. I'm kinda wondering if it's down to the problems I've run into trying to implement it correctly. The one I downloaded from the thread is pretty much like my first attempt at the spell, but I think I've got something that works better than that now - although I've yet to crack the save per round issue for the suggestee.

    Cheers.
     
    Last edited: Sep 15, 2006
  8. Lord_Spike

    Lord_Spike Senior Member Veteran

    Joined:
    Mar 25, 2005
    Messages:
    3,151
    Likes Received:
    1
    It was probably due to a simple oversight. There are quite often so many things going on all at once that more than a few of the smaller items get overlooked. Hence the value of testing & feedback. And the cause of much cumulative updating. Between modding, testing, bug squashing, moderating, and question answering, it's a wonder that more isn't forgotten. If you become more active in the future, you'll get a taste of it. Modding here is for the committed. Sometimes, they wind up needing to be "committed", if you know what I mean. :grin:
     
  9. Cerulean the Blue

    Cerulean the Blue Blue Meanie Veteran

    Joined:
    Apr 23, 2005
    Messages:
    1,962
    Likes Received:
    0
    The original Hezrou Stench implemented by Livonya worked, but it sickened the Hezrou as well.

    My version works, but it is a compromise. It is a one shot thing, only effecting those within range at the time it is cast, and the effects last a random duration. It should be a constant thing, effecting anyone who comes within range while combat is active.

    Allyx's Mass Suggestion was one of the new spells he put out, along with his Power Word spells, just before 4.0.0 was released. I was forced to make a quick judgment call, and since those spells hadn't had much testing and polishing, and the promised release date for 4.0.0 was so close, I decided not to include them. Then they forgotten about for a while in the process of putting 5.0.0 together. Darmagon said he would work on polishing them up, but things intervened, and I was busy implementing Kalshane's proto changes, plus several projects of my own, and Allyx was rushing to finish Verbobonc. They were posted before we started using a Cumulative update thread, and since nobody was working on them, they got lost until you reminded me about them by starting work on your Power Word spells.
     
  10. Hazelnut

    Hazelnut Great Confusor

    Joined:
    Jul 20, 2006
    Messages:
    158
    Likes Received:
    0
    Thanks for the update guys. What I'd like to know now (cripes, I feel like a little kid constantly going "daddy, why ... ?") is did anyone test Allyx's mass suggestion and provide any feedback. Or anyone remember?
     
  11. Cerulean the Blue

    Cerulean the Blue Blue Meanie Veteran

    Joined:
    Apr 23, 2005
    Messages:
    1,962
    Likes Received:
    0
    I don't think anybody but Allyx tested them. Not that I heard about at least.
     
  12. Allyx

    Allyx Master Crafter Global Moderator Supporter

    Joined:
    Dec 2, 2004
    Messages:
    5,001
    Likes Received:
    250
    Yeah, IIRC I included a hacked .dll which increased the number of followers from 5 to 10 with those spells, to make mass suggestion more useful (the suggested creatures were addded as followers (charmed) instead of fully controlable NPC's) I think that part was added to 5.0.0 as standard.

    The spells themselves couldn't be tested before 4.0.0 came out, so didn't quite make the patch deadline. :( As it turns out, the 3.5 update to D&D kinda made my spells kinda not work how they should (they were pretty close to how they were written in 3.0 though - goddamned money grabbing WotC).
     
  13. Hazelnut

    Hazelnut Great Confusor

    Joined:
    Jul 20, 2006
    Messages:
    158
    Likes Received:
    0
    Hi Allyx, I've just confirmed that your version of the spell has the same problem as my original one. The subjects are never removed from the charm/suggestion because the game removes the spell effect immediately due to there not being a remove function defined for the new spell. This is what is reported by the debug output:

    Code:
    d20_mods_condition.c / _remove_charmed(): forcibly removing (Charmed)
    d20_mods_spells.c / _remove_spell(): WARNING - no remove function defined for spell=( Mass Suggestion )
    
    I've managed to work round it and get the spell working correctly except for the saves that stop control of the suggestee for a round. I was hoping to use OnBeginRound for this, but I've still yet to get it to work. My version adds as many as possible as controlable npc's and the rest as followers. I'll easily be able to use the same technique for mass charm monster.
     
Our Host!