Jump to content

[Tutorial] Updated NPC Summoning


Lunam

Recommended Posts

This system is a bit more complex than the Original, and may not fit the needs of everyone, but If you want PvP Summons right now, this is the way to do it.

 

Credit goes to OP for the concept and basic system, this is just an fix. Original here:

***Known Issues: when casting a ward AFTER summoning, the summon may get a little confused and try to attack you randomly. Dont worry, it doesnt hurt you.(hasnt yet anyways lol)

 

 

How It Works:

Spoiler

Instead of Variable based identification which doesnt seem to work properly for this system, we will be using as Spell/Item based identification system.

Until we are able to use Conditional Branches to determine a player/NPCs active status(Blind, Stunned, Taunted, etc[or create our own Status' via an editor]) this is a pseudo roundabout way of doing it with Spells. It works, so...

 

In-Game Function:

  1. You will cast a Ward Spell of a particular strength and type(E.G: Ward: Void Weak)
  2. The Spell will spawn a Ward Item and auto-equip it for 30 seconds, and then remove it from inventory
  3. While the Ward is active in your Ward slot, Summons of that type and strength will not attack you.(E.G; Ward: Void Weak will prevent a Level 1 Void Spirit Summon from attacking you, no matter who summoned it.)(You will need to ward yourself when summoning or else your summon will attack you, too!), Obviously you can tailor this to fit your game.

 

You can use items or spells, or a combination of both as I have done here in this tutorial.

First you will need to create a new Equipment Slot by modifying the Server Config File and then make it visible within CharacterWindow.json(I wont go into that here, there are other tuts for that)

For sake of demonstration, we will call this equipment slot "Ward"

 

What You Need:

Spoiler

***A New Equipment Slot we will call "Ward"***   Not shown here, check another tutorial

  • Variables:
    • Only one, which you likely already have if, for a login system. We make a "FirstVisit" boolean player variable that is set to true after we spawn for the first time.
  • Items:
    • Any Wards you want; Make sure they cant be Traded, Dropped, Sold, Etc. Uncheck ALL of those boxes. Make a cooldown timer if you wish, make the drop chance 100% and despawn timer 1ms(this is so if the player dies somehow there is no possible way anyone else could pick it up as it will vanish instantly. Make sure these are Equipments and equip in the newly created Ward slot. (Remember, we are kind faking a "spell effect" here using equipment as magical wards)
  • Spells:
    • A Spell for every Summon and Ward. Attach the Summon Spells to your Summon Events and your Ward Spells to your Ward Events. Obviously, make sure they are Event Spells.
  • NPCs:
    • Any Summons you want. I reccomend having all sorts of summons, because I mean, you have summons, why not have all kinds, amiright? Spice it up, ya know? This also makes it more difficult for players to be prepared for any particular summon. Make sure they have a condition in their Friendly/Protector condition that says "has X item equipped..." and choose which Ward you want with this summon.
  • Common Events:
    • 1 Common Event for every Ward Spell to spawn that particular Ward Item in your inventory, equip it, wait like 30 seconds or so, and unequip and remove it from inventory
    • 1 Common Event for every Summon Spell, to... well, summon the NPC. Follow the Original post, minus the variables. This tutorial uses only one Player Variable for a login system.
    • 1 Common Event on Login to remove any equiped wards or wards sitting in inventory. This prevents players from casting a Ward spell, force logging out, logging back in a minute later with an eternal Ward, as they werent present for the event to remove the ward from inventory.

 

 

Screenshots and Video:

Spoiler

d8c8744ec6276471a84a8bc9c3b4816d.png

ee1a83bdc2f6dd6e6bdfa9fc1e8d3039.png

d0603c2de78fa874c4eb7351cc88ff46.png

d9152c9dbc989b3f29492661a71c2a55.png

071a8382b110d73ec0c3b2ea36e5a332.png

8ee25fbb370ebce5b39fbd47c88252e2.png

2f0f190e8bd99dd32a457e3d6f5e8923.png

ca710823a64bc703de40925ef0c7e34a.png

8931e2330b20be5367936467c9d65a46.png

 

 

Video:

 

 

Link to comment
Share on other sites

1 hour ago, Ainz Ooal Gown said:

Cool way of doing this! Must better than my system.

 

I was planning on re-doing summoning, as it was some time ago I did it, and with new features events has now.

Thanks for the idea, man. I started playing with it yesterday and really wanted to get it working and figured others might too lol. If you do find a better way by all means take the spotlight!

Link to comment
Share on other sites

On 4/17/2023 at 4:50 AM, Ainz Ooal Gown said:

Cool way of doing this! Must better than my system.

 

I was planning on re-doing summoning, as it was some time ago I did it, and with new features events has now.

So im not sure why i completely overlooked an extremely simple fix to your original system. Its much simpler than what Ive posted above. I feel dumb lol

 

Just make a single integer player variable called "Ward Level" or something like that that gets set when you cast a ward spell. Strength of ward spell determines the number(stronger wards give higher numbers) and in the summon have it check to see if the players "Ward Level" is high enough.

 

And boom, no need for a ward item or ward slot

 

Or set the "ward level" automatically whenever you summon and forgo ward spells alltogether

 

Havent implemented this yet but I dont see why it wouldnt work.

Link to comment
Share on other sites

6 hours ago, Lunam said:

So im not sure why i completely overlooked an extremely simple fix to your original system. Its much simpler than what Ive posted above. I feel dumb lol

 

Just make a single integer player variable called "Ward Level" or something like that that gets set when you cast a ward spell. Strength of ward spell determines the number(stronger wards give higher numbers) and in the summon have it check to see if the players "Ward Level" is high enough.

 

And boom, no need for a ward item or ward slot

 

Or set the "ward level" automatically whenever you summon and forgo ward spells alltogether

 

Havent implemented this yet but I dont see why it wouldnt work.

 

Yeah that's a good idea and it will work.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...