Author Topic: Minion Control System Released (Summons/Animal Companions/Familiars/NPC Companions)  (Read 424 times)

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0


               

Just a heads up that I released a small project which might interest some people.  Gives players a lot more control over summons, animal companions, familiars, and NPC companions by allowing the player to indicate a target to attack, target to move to, or location to move to.  No more inching up and trying to get your summoned creature to notice the bad guys -- just direct them at your enemies.


 


Works less well for spellcasters since, y'know, it simply orders a physical attack.  If people are interested could try to do some sort of modification for casting spells...but for summons/animal companions/familiars/most NPC companions this is still a massive improvement (in my opinion).


 


Going to try to throw a brief video demo together as well tomorrow.



               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0


               Great idea!
               
               

               
            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0


               

For spellcasting minions you might be able to implement a check (e.g. getting class level in wizard/sorcerer/cleric, etc.) to have the minion DetermineCombatRound() instead of attacking.



               
               

               
            

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0


               

I went ahead and played around with that idea briefly, Whizard (due to your suggestion).  The main problem was that disabling the AI (so the minion won't get distracted) also meant you'd have to continuously prompt the spellcaster every 6 seconds (non-hasted) or 3 seconds (hasted).


 


One solution to this would be to not disable the AI temporarily if the target is an enemy (or neutral and the code is changed to attack those) AND the minion has spells left...but obviously that gets more complicated, would need to look into it more.  Players would (rightfully) expect a buffed cleric who is out of offensive spells to go ahead and melee just like a fighter type would, not to run to go melee a target and then get distracted halfway there.


 


I also would need to check how the target "maintaining" is done -- if I tell my sorcerer companion to nuke the goblin mage in the back with magic missiles, I don't want him to suddenly decide that closer goblin is more important.



               
               

               
            

Legacy_WhiZard

  • Hero Member
  • *****
  • Posts: 2149
  • Karma: +0/-0


               

How about


 


ActionUseTalentOnObject(GetCreatureTalentBest(TALENT_CATEGORY_HARMFUL_RANGED, 99), oTarget);



               
               

               
            

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0


               

Well, presumably I'd have to actually split that, no?


 


Get the best talent and see what it is.  Then, if it's a spell, then don't disable the AI and have it use the talent.  If it isn't a spell, then disable the AI and have it attack.


 


Do you know off-hand (without digging through the code) what determines the target for spellcasting?  What would cause it to switch spell targets out of the default stuff like "If you got hit by something 2+ levels higher or for over 25% of your health?"  I'm not necessarily saying that WILL happen, just trying to guard against it.



               
               

               
            

Legacy_Killmonger

  • Sr. Member
  • ****
  • Posts: 349
  • Karma: +0/-0


               

Ahh, just found this thread....


 


Really nice script idea.


 


However, now that I've understood that the AI gets briefly dis-abled, there are draw backs...


 


Could a future script allow the minions to be directed in formations?


When they reach a location to assemble properly and perform a function like "Hold ground vs those unlike us" or "Contain a creature/ item at a location"


Each formation might need an offensive and defensive posture


Furthermore minions could need to be stealthy (ie recon or ambush)


 


 


Perhaps pre-set "behavioural recipes" could be selected and launched upon selected minions once their target is local.


Like giving them marching orders before they are sent out.


Upon completing those orders they could standby in a default condition (sending a message to the PC)


Or perhaps a second script(s) could activate sending the minions onto a second leg of a mission....


Does anyone recall the game "Myth the Total Codex" by Bungie?


 


Any and all customization by the user (via script/code/2da) would certainly expand the overall useability of this script


 


imho



               
               

               
            

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0


               

If you don't briefly disable the AI, it'll ignore the orders you just gave it because it'll decide to do something else.  That's the problem.


 


Formations is a rather vague term rife with problems like...


 


1, how many creatures in the formation?


 


2, are there different creatures in the formation who need to go to different spots?


 


3, what the formation even look like?


 


I mean, yes, you could code in the ability for the command to send four henchmen in a specific formation with the fighter out front, the rogue and cleric to the sides, and the wizard in back...but I'm not sure trying to do something that specific makes sense in a general release.  Ultimately you can adapt this idea and code to do a lot of things, but there are a lot of situations where people want a lot of different things which is the problem.



               
               

               
            

Legacy_Killmonger

  • Sr. Member
  • ****
  • Posts: 349
  • Karma: +0/-0


               

The loss of Ai for a while is not a problem. It means that the forces may have to be commanded to regroup on occasion.


Furthermore, as they proceed to their destination if their "morale" is distracted then that's why a PC needs to do his own dirty work rather than send in these poor conjured saps....(lol)


 


Just some clarifications


 


Re:


 


1)     The number of creatures would be dynamic via selection (?)


         If a bounding box could be drawn (in game) all selected would be affected.


         Alternately a list could be presented of the available critters and their respective roles


 


2)     Perhaps the positional arrangements could be formalized by a user via a pre set 2da


        Or,


        Selection could also be by type. Aka all warriors, then select and command, all archers, then all spell casters


 


3)     Standard formations about a location (two types: loose and close quarters)


          In a line, with the median individual as center 


          Or,   # abreast  (2x2, 2x3, 3x3)   < also defines a box formation, and escort function


          Diamond


             also a triangle  (Warriors front, archers, clerics then spell casters)


             (1,2,3 or 3,2,1 depending upon # available)


          Circle


            depending upon the numbers of minions, 3 being the minimum


            defensive facing out, offensive facing in


          Arch (with the median individual as the center location)


            Convex = defensive


            Concave = offensive


 


these are just some ideas similar to the arch types available in "Myth"


 


Your idea has great merit and could be very useful in many melee situations.


It could add a tactical layer to troop/minion deployment


It could also affect animal behavior (lone wolf vs pack deployment)


 


There appears to be many ways to hook this into other modes


 


imho


 


I gotta go afk, the RL demands my presence...


 


Keep up the good works


'<img'>