System Attribute System

Hero

─║╣ero─
Reaction score
250
This is my attribute system that allows you to add attributes to a hero upon leveling...

Features
(as of now)
-Supports a single hero for each player
-Supports the addition of 1 intelligence,agility,strength
-In JASS

Future Updates Will Support
-More than one hero for each player will be able to use this system
-Optimization

_______________
Ok being updated soon...

Sorry no screenshot as of now...will be adding it

Code:

JASS:
constant function SkillPointsGiven takes nothing returns integer
    return 3
endfunction    

constant function AgilityRawCode takes nothing returns integer
    return 'A002'
endfunction

constant function IntelligenceRawCode takes nothing returns integer
    return 'A004'
endfunction

constant function StrengthRawCode takes nothing returns integer
    return 'A001'
endfunction

function Trig_Atrribute_System_Actions takes nothing returns nothing
    local unit u=GetLevelingUnit()
    set udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] = udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))]+ SkillPointsGiven()
endfunction

function Add_Strength_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == StrengthRawCode() 
endfunction

function Add_Strength_Actions takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local integer Str=GetHeroStr(u,false)+1
if udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] >0 then
    set udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] = udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] - 1 
    call SetHeroStr(u,Str,true)
    call DisplayTimedTextToPlayer( GetOwningPlayer(u), 0.52, -1.00, 2.00, "|cffff0000You have|r " + I2S(udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))]) + " |cffff0000attribute points left!|r" )
else 
    call SimError(GetOwningPlayer(u),"Not enough attribute points left")
endif
endfunction

function Add_Intelligence_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == IntelligenceRawCode() 
endfunction

function Add_Intelligence_Actions takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local integer Int=GetHeroInt(u,false)+1
if udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] >0 then
    set udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] = udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] - 1 
    call SetHeroInt(u,Int,true)
    call DisplayTimedTextToPlayer( GetOwningPlayer(u), 0.52, -1.00, 2.00, "|cffff0000You have|r " + I2S(udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))]) + " |cffff0000attribute points left!|r" )
else 
    call SimError(GetOwningPlayer(u),"Not enough attribute points left")
endif
endfunction

function Add_Agility_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == AgilityRawCode() 
endfunction

function Add_Agility_Actions takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local integer Agi=GetHeroAgi(u,false)+1
if udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] >0 then
    set udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] = udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] - 1 
    call SetHeroAgi(u,Agi,true)
    call DisplayTimedTextToPlayer( GetOwningPlayer(u), 0.52, -1.00, 2.00, "|cffff0000You have|r " + I2S(udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))]) + " |cffff0000attribute points left!|r" )
else 
    call SimError(GetOwningPlayer(u),"Not enough attribute points left")
endif
endfunction

//===========================================================================
function InitTrig_Atrribute_System takes nothing returns nothing
    local trigger A_Agi=CreateTrigger()
    local trigger A_Str=CreateTrigger()
    local trigger A_Int=CreateTrigger()
    set gg_trg_Atrribute_System = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Atrribute_System, EVENT_PLAYER_HERO_LEVEL )
    call TriggerAddAction( gg_trg_Atrribute_System, function Trig_Atrribute_System_Actions )
    
    call TriggerRegisterAnyUnitEventBJ( A_Agi, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( A_Agi, Condition( function Add_Agility_Conditions ) )
    call TriggerAddAction( A_Agi, function Add_Agility_Actions )
    
    call TriggerRegisterAnyUnitEventBJ( A_Str, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( A_Str, Condition( function Add_Strength_Conditions ) )
    call TriggerAddAction( A_Str, function Add_Strength_Actions )
    
    call TriggerRegisterAnyUnitEventBJ( A_Int, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( A_Int, Condition( function Add_Intelligence_Conditions ) )
    call TriggerAddAction( A_Int, function Add_Intelligence_Actions )
endfunction
 

Attachments

  • Attribute System.w3x
    31.7 KB · Views: 253

H34DhUnT3r

Ultra Cool Member
Reaction score
36
looks good
2 things that annoyed me

1. it takes damn long to wait before you can add a same point again..
if you add 1 str you need to wait before you can do that again

2. agi and int button is green if you push it (like in no icon)

Greetings,
H34DhUnT3r[NL]
 

Hero

─║╣ero─
Reaction score
250
looks good
2 things that annoyed me

1. it takes damn long to wait before you can add a same point again..
if you add 1 str you need to wait before you can do that again

2. agi and int button is green if you push it (like in no icon)

Greetings,
H34DhUnT3r[NL]

Yeah I know about those bugs...icon problem is blizzards fault..they didn't include DISBTn for Intelligence and Agility Icon...the other problem I can probably fix in the upcoming versions
 

LoveTD's

New Member
Reaction score
34
hmmm didn't i make something that looks same like this years ago and everyone is making systems of it :D wow ^^

headhunter tijd niet gezien eddy :D kga denkik weer is beginne

(b.t.w. i'm noob at doing jass so thats a difference with mine... mine was in triggers... good of you that you did it in jass :D)

Hmm looks real nice... actually better then mine ^^ +rep
 

LoveTD's

New Member
Reaction score
34
but that was like 2 years ago and almost no one commented... so you couldn't know... but it could be originaly my idea but i doubt that :D ow also maybe some of us likes to see the code :S

JASS:
constant function SkillPointsGiven takes nothing returns integer
    return 3
endfunction    

constant function AgilityRawCode takes nothing returns integer
    return 'A002'
endfunction

constant function IntelligenceRawCode takes nothing returns integer
    return 'A004'
endfunction

constant function StrengthRawCode takes nothing returns integer
    return 'A001'
endfunction

function Trig_Atrribute_System_Actions takes nothing returns nothing
    local unit u=GetLevelingUnit()
    set udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] = udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))]+ SkillPointsGiven()
endfunction

function Add_Strength_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == StrengthRawCode() 
endfunction

function Add_Strength_Actions takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local integer Str=GetHeroStr(u,false)+1
if udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] >0 then
    set udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] = udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] - 1 
    call SetHeroStr(u,Str,true)
    call DisplayTimedTextToPlayer( GetOwningPlayer(u), 0.52, -1.00, 2.00, "|cffff0000You have|r " + I2S(udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))]) + " |cffff0000attribute points left!|r" )
else 
    call SimError(GetOwningPlayer(u),"Not enough attribute points left")
endif
endfunction

function Add_Intelligence_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == IntelligenceRawCode() 
endfunction

function Add_Intelligence_Actions takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local integer Int=GetHeroInt(u,false)+1
if udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] >0 then
    set udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] = udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] - 1 
    call SetHeroInt(u,Int,true)
    call DisplayTimedTextToPlayer( GetOwningPlayer(u), 0.52, -1.00, 2.00, "|cffff0000You have|r " + I2S(udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))]) + " |cffff0000attribute points left!|r" )
else 
    call SimError(GetOwningPlayer(u),"Not enough attribute points left")
endif
endfunction

function Add_Agility_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == AgilityRawCode() 
endfunction

function Add_Agility_Actions takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local integer Agi=GetHeroAgi(u,false)+1
if udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] >0 then
    set udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] = udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))] - 1 
    call SetHeroAgi(u,Agi,true)
    call DisplayTimedTextToPlayer( GetOwningPlayer(u), 0.52, -1.00, 2.00, "|cffff0000You have|r " + I2S(udg_A_SkillPointsLeft[GetConvertedPlayerId(GetOwningPlayer(u))]) + " |cffff0000attribute points left!|r" )
else 
    call SimError(GetOwningPlayer(u),"Not enough attribute points left")
endif
endfunction

//===========================================================================
function InitTrig_Atrribute_System takes nothing returns nothing
    local trigger A_Agi=CreateTrigger()
    local trigger A_Str=CreateTrigger()
    local trigger A_Int=CreateTrigger()
    set gg_trg_Atrribute_System = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Atrribute_System, EVENT_PLAYER_HERO_LEVEL )
    call TriggerAddAction( gg_trg_Atrribute_System, function Trig_Atrribute_System_Actions )
    
    call TriggerRegisterAnyUnitEventBJ( A_Agi, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( A_Agi, Condition( function Add_Agility_Conditions ) )
    call TriggerAddAction( A_Agi, function Add_Agility_Actions )
    
    call TriggerRegisterAnyUnitEventBJ( A_Str, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( A_Str, Condition( function Add_Strength_Conditions ) )
    call TriggerAddAction( A_Str, function Add_Strength_Actions )
    
    call TriggerRegisterAnyUnitEventBJ( A_Int, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( A_Int, Condition( function Add_Intelligence_Conditions ) )
    call TriggerAddAction( A_Int, function Add_Intelligence_Actions )
endfunction
 

Sim

Forum Administrator
Staff member
Reaction score
534
Did you just copy-paste his code instead of yours?

The system would, in that case, become his...
 

Sim

Forum Administrator
Staff member
Reaction score
534
Oh, fine ;)

Why would increase agility and increase intelligence have no Disabled version for their icon while increase strength gets it?
 

Hero

─║╣ero─
Reaction score
250
Oh, fine ;)

Why would increase agility and increase intelligence have no Disabled version for their icon while increase strength gets it?

Idk...it's like that originally in warcraft


And BuMp
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top