• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Updating an item through the store

Status
Not open for further replies.
Level 1
Joined
Jan 23, 2020
Messages
1
I am not qualified enough for this trigger, so I ask you guys.
On my map, my hero received an item that updates an item every time you buy an item.
Now I want it to be done on a trigger GUI.
how to do it?


Code:
function Trig_Halberd_HRV takes nothing returns boolean
 return(GetItemTypeId(GetManipulatedItem())=='I01A')or(GetItemTypeId(GetManipulatedItem())=='I01G')or(GetItemTypeId(GetManipulatedItem())=='I01B')or(GetItemTypeId(GetManipulatedItem())=='I01C')or(GetItemTypeId(GetManipulatedItem())=='I01D')
endfunction
function Trig_Halberd_HIV takes nothing returns boolean
 return(Trig_Halberd_HRV())
endfunction
function Trig_Halberd_HAV takes nothing returns boolean
 return(GetItemTypeId(GetManipulatedItem())=='I01A')
endfunction
function Trig_Halberd_HHV takes nothing returns nothing
 if(Trig_Halberd_HAV())then
  call TriggerExecute(udg_TJ)
  return
 endif
endfunction
function Trig_Halberd_HJV takes nothing returns boolean
 return(GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD)>=15000)and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02D')==false)and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02E'))and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02F')==false)
endfunction
function Trig_Halberd_HKV takes nothing returns boolean
 return(GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD)>=10000)and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02E')==false)and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02F')==false)and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02D'))
endfunction
function Trig_Halberd_HLV takes nothing returns boolean
 return(GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD)>=5000)and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02E')==false)and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02F')==false)and(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I02D')==false)
endfunction

function Trig_Halberd_HMV takes nothing returns nothing
 if(Trig_Halberd_HLV())then
  call UnitAddItemByIdSwapped('I02D',GetTriggerUnit())
  call SetPlayerStateBJ(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD,(GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD)-5000))
 else
  if(Trig_Halberd_HKV())then
   call RemoveItem(GetItemOfTypeFromUnitBJ(GetTriggerUnit(),'I02D'))
   call UnitAddItemByIdSwapped('I02E',GetTriggerUnit())
   call SetPlayerStateBJ(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD,(GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD)-10000))
   call AddSpecialEffectTargetUnitBJ("origin",GetTriggerUnit(),"Abilities\\Spells\\Items\\AIem\\AIemTarget.mdl")
   call TriggerExecute(udg_XB)
  else
   if(Trig_Halberd_HJV())then
    call RemoveItem(GetItemOfTypeFromUnitBJ(GetTriggerUnit(),'I02E'))
    call UnitAddItemByIdSwapped('I02F',GetTriggerUnit())
    call SetPlayerStateBJ(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD,(GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD)-15000))
    call AddSpecialEffectTargetUnitBJ("origin",GetTriggerUnit(),"Abilities\\Spells\\Items\\AIem\\AIemTarget.mdl")
    call TriggerExecute(udg_XB)
   endif
  endif
 endif
endfunction
function Trig_Halberd_HPV takes nothing returns boolean
 return(GetItemTypeId(GetManipulatedItem())=='I02D')or(GetItemTypeId(GetManipulatedItem())=='I02E')or(GetItemTypeId(GetManipulatedItem())=='I02F')
endfunction
function Trig_Halberd_HQV takes nothing returns boolean
 return(Trig_Halberd_HPV())
endfunction
function Trig_Halberd_HSV takes nothing returns boolean
 return(GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(),bj_forLoopAIndex))=='I02D')or(GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(),bj_forLoopAIndex))=='I02E')or(GetItemTypeId(UnitItemInSlotBJ(GetTriggerUnit(),bj_forLoopAIndex))=='I02F')
endfunction
function Trig_Halberd_HTV takes nothing returns boolean
 return(Trig_Halberd_HSV())
endfunction
function Trig_Halberd_HUV takes nothing returns boolean
 return(udg_VV>=2)
endfunction
function Trig_Halberd_Actions takes nothing returns nothing
 set bj_forLoopAIndex=1
 set bj_forLoopAIndexEnd=6
 loop
  exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
  if(Trig_Halberd_HTV())then
   set udg_VV=(udg_VV+1)
  endif
  set bj_forLoopAIndex=bj_forLoopAIndex+1
 endloop
 if(Trig_Halberd_HUV())then
  call UnitRemoveItemSwapped(GetManipulatedItem(),GetTriggerUnit())
 endif
endfunction
//===========================================================================
 

Wrda

Spell Reviewer
Level 26
Joined
Nov 18, 2012
Messages
1,887
You might as well rephrase the intended purpose of your idea, because, right now, I didn't understand anything besides that you're talking about 3 different items.
Use [code=jass][/code][PLAIN] tags, not the ones you made above, the trigger is incomplete, you're not showing the event part of it. And these function names make it 1000 times harder to understand...
 
Level 6
Joined
Aug 28, 2015
Messages
213
Shouldn't be too hard
hero obtains item
issuing item equal upgrading item
loop I from 0 to maxItemLevels
hero has upgradeableItem then
drop upgradeableItem
give hero upgradeableItem[I + 1]
remove item dropped
remove item issued change
or maybe you could change the item data itself with the new natives haven't played with it enough to tell you tho.
 
Status
Not open for further replies.
Top