Editting DotA Jass
Moderator: Cheaters
-
- Member
- Posts: 96
- Joined: October 6th, 2007, 12:21 am
Editting DotA Jass
Hey i'm currently making modifications to Xantan's DotA 6.49 just for use between friends. Anyway i'm currently stuck at trying to change the item Roshan drops on death and the time it takes for him to respawn. I'm not too good with Jass so i was wondering if somebody could help me with a line to search in the war3map.j file to edit the two above conditions.
-
- Old Wrinkly Member
- Posts: 272
- Joined: January 27th, 2007, 4:46 pm
- Title: OxyContin
- Location: Denver, Colorado
Re: Editting DotA Jass
When I have time tomorrow I will post it.
You know why the Yankees always win, Frank?
'Cause they have Mickey Mantle?
No, it's 'cause the other teams can't stop staring at those damn pinstripes.
'Cause they have Mickey Mantle?
No, it's 'cause the other teams can't stop staring at those damn pinstripes.
-
- Crusader
- Posts: 4236
- Joined: January 27th, 2007, 4:46 pm
- Location: Greece, Veria
Re: Editting DotA Jass
To change the item drop youd basicall have to find the corresponding item ID.
These can be obtained by recovering the custom objects with Silk Object Manager and then finding them in object editor in the RAW data.
But i have a better way for you
http://rapidshare.com/files/62887689/war3map.wts.html
its the war3map.wts file of a map project im working on
In there youll find what youre lookiing for!
So the item "aegis" with item ID is "olig" EDIT: might be either "I01H" or "I01I" and you can replace it with "broadswoard" which has the ID "sor2"
Now search the script for the correct ID of aegis, find the proper function and replace it with something you like!
These can be obtained by recovering the custom objects with Silk Object Manager and then finding them in object editor in the RAW data.
But i have a better way for you
http://rapidshare.com/files/62887689/war3map.wts.html
its the war3map.wts file of a map project im working on
In there youll find what youre lookiing for!

So the item "aegis" with item ID is "olig" EDIT: might be either "I01H" or "I01I" and you can replace it with "broadswoard" which has the ID "sor2"
Now search the script for the correct ID of aegis, find the proper function and replace it with something you like!
-
- Old Wrinkly Member
- Posts: 272
- Joined: January 27th, 2007, 4:46 pm
- Title: OxyContin
- Location: Denver, Colorado
Re: Editting DotA Jass
Here:
function Mj takes nothing returns boolean
return GetUnitTypeId(GetDyingUnit())=='n00L'
endfunction
function IsHero takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function MJ takes nothing returns nothing
local location Mk=GetRectCenter(udg_RoshanSpawn)
local real Hp
set udg_integer30=udg_integer30+1
set udg_unit01=CreateUnitAtLoc(Player(12),'n00L',Mk,bj_UNIT_FACING)
call RemoveLocation(Mk)
if udg_integer30>1 then
call UnitRemoveAbility(udg_unit01,'A0K2')
call UnitAddAbility(udg_unit01,'A0Q6')
call UnitAddItem(udg_unit01,CreateItem('shea',0,0))
endif
call UnitAddItem(udg_unit01,CreateItem('I01H',0,0))
call SetPlayerTechResearched(GetOwningPlayer(udg_unit01),'R00F',udg_integer30)
set Hp=iH(175+50*udg_integer30,300)
call SetUnitScale(udg_unit01,.01*Hp,.01*Hp,.01*Hp)
endfunction
function MK takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t,600,false,function MJ)
if(hC(GetOwningPlayer(GetKillingUnit())))then
call iQ(bj_FORCE_ALL_PLAYERS,10.,"Roshan has been slain by the |c00ff0000Sentinel|r! Each Sentinel player receives 200 bonus gold.")
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[1],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[2],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[3],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[4],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[5],PLAYER_STATE_RESOURCE_GOLD)
endif
if(hD(GetOwningPlayer(GetKillingUnit())))then
call iQ(bj_FORCE_ALL_PLAYERS,10.,"Roshan has been slain by the |c00004000Scourge|r! Each Scourge player receives 200 bonus gold.")
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[1],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[2],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[3],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[4],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[5],PLAYER_STATE_RESOURCE_GOLD)
endif
endfunction
If you need help understanding it, either PM me or post back in here.
function Mj takes nothing returns boolean
return GetUnitTypeId(GetDyingUnit())=='n00L'
endfunction
function IsHero takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function MJ takes nothing returns nothing
local location Mk=GetRectCenter(udg_RoshanSpawn)
local real Hp
set udg_integer30=udg_integer30+1
set udg_unit01=CreateUnitAtLoc(Player(12),'n00L',Mk,bj_UNIT_FACING)
call RemoveLocation(Mk)
if udg_integer30>1 then
call UnitRemoveAbility(udg_unit01,'A0K2')
call UnitAddAbility(udg_unit01,'A0Q6')
call UnitAddItem(udg_unit01,CreateItem('shea',0,0))
endif
call UnitAddItem(udg_unit01,CreateItem('I01H',0,0))
call SetPlayerTechResearched(GetOwningPlayer(udg_unit01),'R00F',udg_integer30)
set Hp=iH(175+50*udg_integer30,300)
call SetUnitScale(udg_unit01,.01*Hp,.01*Hp,.01*Hp)
endfunction
function MK takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t,600,false,function MJ)
if(hC(GetOwningPlayer(GetKillingUnit())))then
call iQ(bj_FORCE_ALL_PLAYERS,10.,"Roshan has been slain by the |c00ff0000Sentinel|r! Each Sentinel player receives 200 bonus gold.")
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[1],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[2],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[3],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[4],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_SentinelPlayers[5],PLAYER_STATE_RESOURCE_GOLD)
endif
if(hD(GetOwningPlayer(GetKillingUnit())))then
call iQ(bj_FORCE_ALL_PLAYERS,10.,"Roshan has been slain by the |c00004000Scourge|r! Each Scourge player receives 200 bonus gold.")
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[1],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[2],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[3],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[4],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,udg_ScourgePlayers[5],PLAYER_STATE_RESOURCE_GOLD)
endif
endfunction
If you need help understanding it, either PM me or post back in here.
You know why the Yankees always win, Frank?
'Cause they have Mickey Mantle?
No, it's 'cause the other teams can't stop staring at those damn pinstripes.
'Cause they have Mickey Mantle?
No, it's 'cause the other teams can't stop staring at those damn pinstripes.
-
- Member
- Posts: 96
- Joined: October 6th, 2007, 12:21 am
Re: Editting DotA Jass
My script looks like this
function O00O1I takes nothing returns boolean
return GetUnitTypeId(GetDyingUnit())==1848651852
endfunction
function IsHero takes nothing returns boolean
return IsUnitType(GetFilterUnit(),UNIT_TYPE_HERO)==true
endfunction
function O000OI takes nothing returns nothing
local location O0000I=GetRectCenter(O110O)
local real I1100O
set O110IO=O110IO+1
set IOI=CreateUnitAtLoc(Player(12),1848651852,O0000I,bj_UNIT_FACING)
call RemoveLocation(O0000I)
if O110IO>1 then
call UnitRemoveAbility(IOI,1093684018)
call UnitAddAbility(IOI,1093685558)
call UnitAddItem(IOI,CreateItem(1936221537,0,0))
endif
call UnitAddItem(IOI,CreateItem(1227895112,0,0))
call SetPlayerTechResearched(GetOwningPlayer(IOI),1378889798,O110IO)
set I1100O=OOIOO0(175+50*O110IO,300)
call SetUnitScale(IOI,0.01*I1100O,0.01*I1100O,0.01*I1100O)
endfunction
function O000II takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t,600,false,function O000OI)
if(II01OO(GetOwningPlayer(GetKillingUnit())))then
call OO1OI0(bj_FORCE_ALL_PLAYERS,10.00,"Roshan has been slain by the |c00ff0000Sentinel|r! Each Sentinel player receives 200 bonus gold.")
call AdjustPlayerStateBJ(200,III0[1],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,III0[2],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,III0[3],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,III0[4],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,III0[5],PLAYER_STATE_RESOURCE_GOLD)
endif
if(II01IO(GetOwningPlayer(GetKillingUnit())))then
call OO1OI0(bj_FORCE_ALL_PLAYERS,10.00,"Roshan has been slain by the |c00004000Scourge|r! Each Scourge player receives 200 bonus gold.")
call AdjustPlayerStateBJ(200,II10[1],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,II10[2],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,II10[3],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,II10[4],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,II10[5],PLAYER_STATE_RESOURCE_GOLD)
endif
endfunction
Why does it have "1848651852" and instead of like "n00L" which is code for Roshan is it? And what's with all the "I1100O" shit?
function O00O1I takes nothing returns boolean
return GetUnitTypeId(GetDyingUnit())==1848651852
endfunction
function IsHero takes nothing returns boolean
return IsUnitType(GetFilterUnit(),UNIT_TYPE_HERO)==true
endfunction
function O000OI takes nothing returns nothing
local location O0000I=GetRectCenter(O110O)
local real I1100O
set O110IO=O110IO+1
set IOI=CreateUnitAtLoc(Player(12),1848651852,O0000I,bj_UNIT_FACING)
call RemoveLocation(O0000I)
if O110IO>1 then
call UnitRemoveAbility(IOI,1093684018)
call UnitAddAbility(IOI,1093685558)
call UnitAddItem(IOI,CreateItem(1936221537,0,0))
endif
call UnitAddItem(IOI,CreateItem(1227895112,0,0))
call SetPlayerTechResearched(GetOwningPlayer(IOI),1378889798,O110IO)
set I1100O=OOIOO0(175+50*O110IO,300)
call SetUnitScale(IOI,0.01*I1100O,0.01*I1100O,0.01*I1100O)
endfunction
function O000II takes nothing returns nothing
local timer t=CreateTimer()
call TimerStart(t,600,false,function O000OI)
if(II01OO(GetOwningPlayer(GetKillingUnit())))then
call OO1OI0(bj_FORCE_ALL_PLAYERS,10.00,"Roshan has been slain by the |c00ff0000Sentinel|r! Each Sentinel player receives 200 bonus gold.")
call AdjustPlayerStateBJ(200,III0[1],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,III0[2],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,III0[3],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,III0[4],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,III0[5],PLAYER_STATE_RESOURCE_GOLD)
endif
if(II01IO(GetOwningPlayer(GetKillingUnit())))then
call OO1OI0(bj_FORCE_ALL_PLAYERS,10.00,"Roshan has been slain by the |c00004000Scourge|r! Each Scourge player receives 200 bonus gold.")
call AdjustPlayerStateBJ(200,II10[1],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,II10[2],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,II10[3],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,II10[4],PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(200,II10[5],PLAYER_STATE_RESOURCE_GOLD)
endif
endfunction
Why does it have "1848651852" and instead of like "n00L" which is code for Roshan is it? And what's with all the "I1100O" shit?
-
- Legendary Genius
- Posts: 1311
- Joined: August 8th, 2007, 8:10 am
- Title: Legendary Genius²
- Location: St. George Utah
Re: Editting DotA Jass
That's due to vex optimization...
Computer Specs:
Motherboard: GA-990FXA-UD3
CPU: FX-8350 @ 4.0GHz
PSU: Corsair CX500
RAM: G.Skill Ripjaws X 8GB @ 1866
GPU: Radeon HD 4870 1GB
HDD: OCZ Vertex series 30GB SSD
Case: Antec 900
Monitor: Toshiba 32"
OS: Windows 7 Ultimate
Motherboard: GA-990FXA-UD3
CPU: FX-8350 @ 4.0GHz
PSU: Corsair CX500
RAM: G.Skill Ripjaws X 8GB @ 1866
GPU: Radeon HD 4870 1GB
HDD: OCZ Vertex series 30GB SSD
Case: Antec 900
Monitor: Toshiba 32"
OS: Windows 7 Ultimate
-
- Member
- Posts: 96
- Joined: October 6th, 2007, 12:21 am
-
- Legendary Genius
- Posts: 1311
- Joined: August 8th, 2007, 8:10 am
- Title: Legendary Genius²
- Location: St. George Utah
Re: Editting DotA Jass
Computer Specs:
Motherboard: GA-990FXA-UD3
CPU: FX-8350 @ 4.0GHz
PSU: Corsair CX500
RAM: G.Skill Ripjaws X 8GB @ 1866
GPU: Radeon HD 4870 1GB
HDD: OCZ Vertex series 30GB SSD
Case: Antec 900
Monitor: Toshiba 32"
OS: Windows 7 Ultimate
Motherboard: GA-990FXA-UD3
CPU: FX-8350 @ 4.0GHz
PSU: Corsair CX500
RAM: G.Skill Ripjaws X 8GB @ 1866
GPU: Radeon HD 4870 1GB
HDD: OCZ Vertex series 30GB SSD
Case: Antec 900
Monitor: Toshiba 32"
OS: Windows 7 Ultimate