• 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.
  • 💡 We're thrilled to announce that our upcoming texturing contest is in the works, and we're eager to hear your suggestions! Please take this opportunity to share your ideas in this theme discussion thread for the Texturing Contest #34!
  • 🏆 Hive's 7th HD Modeling Contest: Icecrown Creature is now open! The frozen wastes of Icecrown are home to some of Azeroth’s most terrifying and resilient creatures. For this contest, your challenge is to design and model a HD 3D monster that embodies the cold, undead, and sinister essence of Icecrown! 📅 Submissions close on April 13, 2025. Don't miss this opportunity to let your creativity shine! Enter now and show us your frozen masterpiece! 🔗 Click here to enter!

How to disable shared XP gain

Status
Not open for further replies.
Level 2
Joined
Jun 19, 2011
Messages
12
These seem like easy finds... but after 20+ hours of surfing google, perhaps I just don't know the proper search terms to use? Anywho... I just need a nudge in the right direction.

Q1:
In my map, there's currently 4 user slots (Force 1, allied) and 8 npc slots (Force 2). Upon map init, a hero is generated for each user. The problem is, each time a hero gains XP from killing a unit, the other heros also gain that same XP. How can I separate this for an allied force?

Q2:
How do I go about increasing the max # of times an ability can be upgraded (upon a hero's leveling up), and the specifics of what that ability does at certain levels?
 
  • Tr
  • Events
    • Map Initialization
  • Conditions
  • Actions
    • For each (IntegerA) from 1 to 12, do (Actions)
      • Loop - Actions
        • If (All conditions are true) then do (Actions) else do (Actions)
          • If - Conditions
            • (Player(IntegerA) controller) Not Equal to User
          • Then - Actions
            • Set TempGroup = (Units owned by Player(IntegerA) matching ((Matching unit) is a Hero) Equal to True))
            • Unit Group - Pick every unit in TempGroup and do (Actions)
              • Loop - Actions
                • Hero - Disable experience gain for (Picked unit)
            • Custom script: call DestroyGroup (udg_TempGroup)
You replaced a word with "#". I don't get what you ask. If you want to set extra levels for default abilities, go to the ability and the field "Stats - Levels".
 
Level 2
Joined
Jun 19, 2011
Messages
12
Thanks, but that trigger doesn't seem to do the trick. Perhaps I wasn't specific enough?

There are 4 heros on the same force (Force 1), controlled by either separate users or separate computers. Each time any of those 4 heros kills a unit from the other force (Force 2), ALL 4 heros gain the xp from it... But, I'm trying to make it when your hero (or summoned units) kills a unit from the other force, only YOUR hero gets the XP, making it impossible to gain XP by sitting around while your team gets kills.

You replaced a word with "#". I don't get what you ask. If you want to set extra levels for default abilities, go to the ability and the field "Stats - Levels".
# = "Number". And yes, that was what I was looking for, thanks.

The ability level and what it does can all be changed in the object editor and under the spell tab.
Yeah I figured that, but I overlooked the "Stats - Levels" field, thanks!


... So how can I fix this XP distribution bug? Anyone? Is there a way to "unshare" this XP?
 
Level 2
Joined
Jun 19, 2011
Messages
12
Nope, I figured it out though:

  • Trigger
  • Events
    • Map initialization
  • Conditions
  • Actions
    • For each (Integer A) from 1 to 4, do (Actions)
      • Loop - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • ((Player((Integer A))) controller) Equal to User
            • And - All (Conditions) are true
              • Conditions
                • ((Player((Integer A))) slot status) Equal to Is playing
          • Then - Actions
            • Unit - Create 1 Beastmaster for (Player((Integer A))) at ((Player((Integer A))) start location) facing (Center of Enemy Spawn <gen>)
            • For each (Integer B) from 1 to 12, do (Actions)
              • Loop - Actions
                • Player - For (Player((Integer A))), turn Experience sharing Off toward (Player((Integer B)))
          • Else - Actions
            • For each (Integer B) from 1 to 4, do (Actions)
              • Loop - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • ((Player((Integer B))) controller) Equal to User
                    • And - All (Conditions) are true
                      • Conditions
                        • ((Player((Integer B))) slot status) Equal to Is playing
                  • Then - Actions
                    • Player - Make (Player((Integer A))) treat (Player((Integer B))) as an Neutral with shared vision
                  • Else - Actions
                    • Do nothing
Thanks for the nudge!
 
Status
Not open for further replies.
Top