Help Support Our Growing Community

DOTAFire is a community that lives to help every Dota 2 player take their game to the next level by having open access to all our tools and resources. Please consider supporting us by whitelisting us in your ad blocker!

Want to support DOTAFire with an ad-free experience? You can support us ad-free for less than $1 a month!

Go Ad-Free
Smitefire logo

Join the leading DOTA 2 community.
Create and share Hero Guides and Builds.

Create an MFN Account






Or

Elfansoer's Blog
Blog Posts: 9     Views: 19008     Comments: 6
Elfansoer
Show From:
DotA 2
Off Topic
December 07, 2018
+Rep Report
 
So yeah, after recent updates, while creating custom hero spells (see my github and blog), I was twinkling on Dota 2 Workshop tools.

What a sight! It looks like a major update on Workshop, where a tool (previously void) shifts a particle's color to a new one (that is, changing the color).

Be noted that the changes only applies to ultimates' particles. So yeah, basic abilities are still in their actual color.

Nonetheless, I tried it myself, only to change the particles to full green (0,255,0), and Voila! It may be different from actual in-game later (primarily based on the color shift), but here you go. It's official.

Sonic Wave:


Freezing Field (falling shard):


Black Hole:


Doom:


Laguna Blade:


Finger of Death:


Macropyre:


Read More
August 02, 2018

Slark: Dark Pact


Waiting in interval

Tutorial Will be Moved


It's not that I wanted to, but apparently this blog isn't suitable for code-heavy writings. So, I decided to move the tutorial into the GitHub's wiki page.

Don't worry, I'll still be here if you have critics or questions regarding the tutorial.

So, rather than this post being empty, I'll write out the overview instead.

Overview


So, Dark Pact will teach us about how to use modifier's interval function; OnIntervalThink. Upon cast, Dark Pact will have a delay, and after that, continuously purges the caster.

There are 2 intervals; the delay and the continuous purge/damage. Both need to share the logic on one function; OnIntervalThink. In this case, we use boolean to check which interval invokes the function.

How it should be implemented? Here's the full tutorial: Slark's Dark Pact.

Conclusion


Next, we're going to have Linear Projectiles and How You Use Them, using Mirana's Sacred Arrow.
Comments, Critics and Questions…
Read More
April 15, 2018

Slardar: Slithereen Crush


Search around

Preface


It's been a while, eh? Don't worry, I'm still pretty much alive (at least physically, but inside...).

So, I've been tweaking around github and decided to split between real version of Dota 2 abilities and tutorial version. Meaning, there are 2 implementations for each ability created in different github branch.

Why the split? I thought that for beginners, it would be better if they just understand basic functions explained in this tutorial, and the ability scripts should only show what's essential for them. Meanwhile, the real version of the ability tends to have a lot of fuss and fancy APIs which may confuse the learners.

I've moved tutorial version of the abilities from "master" branch to "tutorial" branch. Previous links have been updated to the new links, so make sure you get the correct version.

In short, to download ability scripts, go to branch tutorial in the github to get the 'easy' version, and go to branch master to ge…
Read More
February 05, 2018

Chaos Knight's Chaos Bolt


Playing with projectile

EDIT: Some links have been updated due to github repository change.

Ability Form: Precache


I've been avoiding aesthetics up until now, but finally it's unavoidable anymore. If you look at the base .txt file, everything seems normal excluding that "precache" key-value.

Okay, here's the thing about precache: the engine is just pure lazy. It won't load any resources (such as particles and sounds) unless it is explicitly required. This 'precache' is a way to ensure the particle is required 'explicitly'. Spawning a hero is another one, but even the engine won't automatically load his/her voice until they're triggered to speak.
Particle not loaded means it won't show up. Got it?

Knowing a particle's path would require a Workshop Tools or a GCFScape, so if you don't want to be bothered by those, simply use the path I set there. The most essential particle is the "chaos_knight_chaos_bolt.vpcf" one; the rest is optional.

Logic: Tracking…
Read More

January 29, 2018

Ogre Magi's Fireblast


Straight to the action

EDIT: Some links have been updated due to github repository change.

Previously we've been dealt with passive abilities, which tends to do their action on their modifiers. Now, this unit-targetted ability will have actions that is defined in the main lua instead; modifier will be a simple tag without action.

Ability Form (.txt file)


The base .txt filled with things that have been covered in the first tutorial. Fireblast is a unit-targeted ability which target enemies that may be heroes or creeps, and deals magical damage that may be dispelled by strong dispel but cannot pierce spell immunity.

A question may be raised as to why the damage section is empty even though Fireblast do damages its target. The thing is, it does not have considerable impact as long as your code follows this form. If the form has "AbilityDamage" value, the code may call "Ability:GetAbilityDamage()" to retrieve it. If the form uses "AbilitySpecial" instead, then…
Read More
1 2 >>

DOTAFire is the place to find the perfect build guide to take your game to the next level. Learn how to play a new hero, or fine tune your favorite DotA hero’s build and strategy.

Copyright © 2019 DOTAFire | All Rights Reserved