• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Chain Lightning bounce (Without lightning) +Rep

Status
Not open for further replies.
Level 4
Joined
Sep 30, 2007
Messages
95
Hey, there is a spell in DotA where the Witch Doctor hurls a flask and stuns enemies.

I tried to remove the "Lightning Effect" to the spell "Chain Lightning" and add my "Flask" model. The flask didnt show up.. only the target animation when units gets hit.

It does not need to stun, just damage (And the spell itself fixes that).
Help plz^^

+Rep
 
Level 7
Joined
May 6, 2008
Messages
284
hey aint there in chain lighting spell itself is all the missile target buff effects etc. there is the lighting thingy what cahins units together just take it off?
 
Level 8
Joined
Aug 3, 2008
Messages
391
From Open DotA v6.41:
JASS:
// OpenDota 6.41 deprotected by NETRAT and DioD
// inspired by everyone who posted on forum threads and feedback page
// based on OpenDota 6.32b, deprotected by DimonT, NETRAT and TheBloodiest
// [url=http://dimon.xgm.ru/opendota/]OpenDotA Project / Home[/url]
// Visit our modmaking community at [url=http://xgm.ru/]\\XGM\\[/url]

// Objects used:
// 'A0NM' = Paralyzing Cask (Witch Doctor : Vol'Jin)
// 'A04R' = Marker (Nether Ward 4,Lightning Bolter,Nether Ward 3,Nether Ward 2,Vengeance Death caster,...)
// 'o003' = Spin Web
// 'e00E' = Spellcaster
// 'A0NL' = Paralyzing casks effect

// DEBUG Trigger Number : 121
function CasksSpell takes nothing returns boolean
	return GetSpellAbilityId()=='A0NM'
endfunction

function CaskFilter takes nothing returns boolean
	if(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))then
		return false
	endif
	if(GetUnitAbilityLevelSwapped('A04R',GetFilterUnit())==1)then
		return false
	endif
	if(IsUnitAliveBJ(GetFilterUnit())==false)then
		return false
	endif
	if(GetUnitTypeId(GetFilterUnit())=='o003')then
		return false
	endif
	if(IsUnitEnemy(GetFilterUnit(),GetOwningPlayer(GetTriggerUnit()))==false)then
		return false
	endif
	if(IsUnitVisible(GetFilterUnit(),GetOwningPlayer(GetTriggerUnit()))==false)then
		return false
	endif
	return true
endfunction

function CasksAction takes nothing returns nothing
	local integer lmZ=GetUnitAbilityLevelSwapped('A0NM',GetTriggerUnit())
	local unit lFB=GetSpellTargetUnit()
	local unit lJV
	local unit lvx
	local unit lvX=GetTriggerUnit()
	local integer lEq
	local integer lEQ
	local integer lMa=0
	local group lEw
	local location ln3
	loop
		exitwhen lMa>(lmZ*2)
		set lMa=lMa+1
		set lJV=CreateUnit(GetOwningPlayer(GetTriggerUnit()),'e00E',GetUnitX(lvX),GetUnitY(lvX),bj_UNIT_FACING)
		call UnitAddAbility(lJV,'A0NL')
		call IssueTargetOrderById(lJV,OrderId("thunderbolt"),lFB)
		call PolledWait(((GetUnitX(lFB)-GetUnitX(lJV))*(GetUnitX(lFB)-GetUnitX(lJV))+(GetUnitY(lFB)-GetUnitY(lJV))*(GetUnitY(lFB)-GetUnitY(lJV)))/360000)
		if IsUnitType(lFB,UNIT_TYPE_HERO)==false then
			call UnitDamageTarget(GetTriggerUnit(),lFB,50+25*lmZ,true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
		endif
		if(lMa<(lmZ*2+1))then
			set ln3=GetUnitLoc(lFB)
			set lEw=GetUnitsInRangeOfLocMatching(600.,ln3,Condition(function CaskFilter))
			call RemoveLocation(ln3)
			loop
				set lvx=GroupPickRandomUnit(lEw)
				if(lvx==null)then
					set lMa=100
					call DestroyGroup(lEw)
					exitwhen 1==1
				elseif(lvx!=lFB)then
					set lvX=lFB
					set lFB=lvx
					call DestroyGroup(lEw)
					exitwhen 1==1
				endif
				call GroupRemoveUnit(lEw,lvx)
			endloop
		endif
	endloop
endfunction

function CasksInit takes nothing returns nothing
	local trigger ltt=CreateTrigger()
	call TriggerRegisterAnyUnitEventBJ(ltt,EVENT_PLAYER_UNIT_SPELL_EFFECT)
	call TriggerAddCondition(ltt,Condition(function CasksSpell))
	call TriggerAddAction(ltt,function CasksAction)
endfunction


function InitTrig_Paralyzing_Cask takes nothing returns nothing
endfunction

But has alot of disadvantages. I can't be bothered editing it, my current JassCraft is currently fail.

Sorry on how it's all huge and that, I don't know how to hide text.
 
Level 3
Joined
Mar 2, 2008
Messages
62
that dota one is way too complicated. all you need to do is pick random living unit within range of the target (do it in a for loop) and have a dummy cast your spell on it.

use a wait trigger based on the distance between the points and the missile speed.

chain frost works on the same principle but has 2 dummy casters, one for the projectile and one for the nova.
 
Status
Not open for further replies.
Top