• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical 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