• 💀 Happy Halloween! 💀 It's time to vote for the best terrain! Check out the entries to Hive's HD Terrain Contest #2 - Vampire Folklore.❗️Poll closes on November 14, 2023. 🔗Click here to cast your vote!
  • 🏆 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!
  • 🏆 HD Level Design Contest #1 is OPEN! Contestants must create a maze with at least one entry point, and at least one exit point. The map should be made in HD mode, and should not be openable in SD. Only custom models from Hive's HD model and texture sections are allowed. The only exceptions are DNC models and omnilights. This is mainly a visual and design oriented contest, not technical. The UI and video walkthrough rules are there to give everyone an equal shot at victory by standardizing how viewers see the terrain. 🔗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