The BlaqkPariah Adults Only Happy Funtime Show

Discussion in 'NOTD Discussion' started by Blaqk, May 9, 2012.

  1. Blaqk
    • Development Team
    • Webmaster/Liaison

    Blaqk NOTD Staff: Bugs, Pugs, and Scruggs

    I'm lazy so I'm just copy pasting the conversation.
  2. Lord NiteShade
    • Wiki Founder
    • Community Leader

    Lord NiteShade NOTD Staff: Wiki Founder/TeamSpeak Admin

    RE: The BlaqkPariah XP System Suggestion Thing

    Sounds like such a bitch to make. Definitely no way to do that through the data editor, not without reworking the entire exp system from scratch. Even then I dont think it would work intended.
  3. Blaqk
    • Development Team
    • Webmaster/Liaison

    Blaqk NOTD Staff: Bugs, Pugs, and Scruggs

    RE: The BlaqkPariah XP System Suggestion Thing

    Make it into a more practical application then. Or, if you don't think it's worth it, then just stop short of our conversation at change the gain:share ratio at level 10.
  4. Lord NiteShade
    • Wiki Founder
    • Community Leader

    Lord NiteShade NOTD Staff: Wiki Founder/TeamSpeak Admin

    RE: The BlaqkPariah XP System Suggestion Thing

    It's..doable. But its a metric fuck ton of work.
  5. Blaqk
    • Development Team
    • Webmaster/Liaison

    Blaqk NOTD Staff: Bugs, Pugs, and Scruggs

    RE: The BlaqkPariah XP System Suggestion Thing

    I'll pay you in candy.
  6. Lord NiteShade
    • Wiki Founder
    • Community Leader

    Lord NiteShade NOTD Staff: Wiki Founder/TeamSpeak Admin

    RE: The BlaqkPariah XP System Suggestion Thing

    Ha, very funny. No I discussed it with Diode.
    It's not beyond the realm of possibility, but it's far beyond the realm of time I could commit to it. It would also need a lot of private testing on a "sub-notd" map. Obviously you cant test the system offline, and patching the main map to suddenly have a semi-functional most likely broken exp system would render the map nigh unplayable. Leave this one on the drawing board for v2.
  7. ArcanePariah
    • Development Team
    • Map Developer

    ArcanePariah Miracle Worker

    RE: The BlaqkPariah XP System Suggestion Thing

    Hmm, I thought this would be simple as hell to code, im guessing the editor isn't exactly as flexible as a general purpose programming language. From my coding point of view what were proposing amounts to:
    Code:
    double expShare(player x)
    {
    int average;
    int sum = 0;
    for (int i = 0; i < getNumOfPlayers(); i++)
    {
        sum += getPlayer(i).getLevel();
    }
    average = sum/getNumOfplayers();
    return (average - x.getLevel())/10
    
    and then have the trigger/dataeditor object that does exp gain simply multiply the result by 1 - expShare() to get final result, adjust the 1 to wahtever we want the base line to be ( .8 in Blaqks case) and for shared exp it would just be multiplying total exp by same rate + offset (expGain() + 0.2 in Blaqks example).

    The main appeal to this setup is that it puts the breaks on snowballing. The more you whore, the slower you will level, and the faster yoru teammates will level. If we used blaqk's example, if you are 7 levels above your teammates , you would get next to nothing in exp from kills, and your teams mates would get a massive bonuses from your kills, leveling them up. This permits a DPS to continue to dps, but they will NOT overlevel from it at all.
  8. Ghost
    • Warden

    Ghost Warden

    RE: The BlaqkPariah XP System Suggestion Thing

    Similar thoughts I was having in private actually.

    But rather than base it off the level, I was more thinking of classes.

    Current/Default: 90 killer 10 shared (note killer gets shared when he kills too). Rec and Med get 20 shared on top of 90 killed.

    Proposed rework:
    Rifle, Comm, Assa, MM, PF, FO: When they kill an enemy, they receive 65% xp and share 35% including self. They do not receive 40% for what other classes kill.
    Engie, Demo, Chem, Tech, Flamer: When they kill an enemy, they receive 75% xp and share 25% including self. They do not receive 40% for what other classes kill.
    Medic, Recon: When they kill an enemy, they receive 85% xp and share 15% including self. They do not receive 40% for what other classes kill.

    This makes kills as medic/rec rather selfish, but doesn't have the effect of making a creep give more xp than it would to any other class including the killer. However, med and rec generally don't get many kills anyhow, so it doesn't matter.

    The main dps classes (I am aware they have support trees, but it doesn't matter) gain xp at the current rate essentially but every kill they make shares a lot more xp than other classes' kills would. This allows them to whore a bit, but not too much.
  9. Blaqk
    • Development Team
    • Webmaster/Liaison

    Blaqk NOTD Staff: Bugs, Pugs, and Scruggs

    The BlaqkPariah Adults Only Funtime Show

    Nite/SomeonewhoknowsmorethanIdo how would this look for NOTD?
  10. Lord NiteShade
    • Wiki Founder
    • Community Leader

    Lord NiteShade NOTD Staff: Wiki Founder/TeamSpeak Admin

    RE: The BlaqkPariah Adults Only Funtime Show

    Code:
    bool gt_Kills_Func (bool testConds, bool runActions) {
                if (((EventUnitDamageSourcePlayer() >= 1) && (EventUnitDamageSourcePlayer() <= 9)) && (UnitGetType(lv_deadUnit) != "SpiderMineBurrowed") && (UnitGetType(lv_deadUnit) != "SpiderMine") && ((libNtve_gf_UnitInRegion(gv_marineHero[lv_localIntA], lv_xPShareRegion) == true) || (libNtve_gf_UnitInRegion(gv_playerPet[lv_localIntA], lv_xPShareRegion) == true) || (libNtve_gf_UnitInRegion(gv_reaperMK13[lv_localIntA], lv_xPShareRegion) == true))) {
                    if ((UnitIsAlive(gv_playerPet[lv_localIntA]) == true)) {
                        if ((UnitLevel(gv_playerPet[lv_localIntA]) > 9)) {
                            UnitSetPropertyFixed(gv_playerPet[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_playerPet[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 1.15));
                        }
                        else {
                            if ((gv_noNewbie == true)) {
                                UnitSetPropertyFixed(gv_playerPet[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_playerPet[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 1.4));
                            }
                            else {
                                UnitSetPropertyFixed(gv_playerPet[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_playerPet[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 1.6));
                            }
                        }
                    }
                    else if ((UnitGetType(gv_marineHero[lv_localIntA]) == "Medic")) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 0.73));
                    }
                    else if ((UnitGetType(gv_marineHero[lv_localIntA]) == "GhostLaserLines")) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 0.42));
                    }
                    else if ((UnitGetType(gv_marineHero[lv_localIntA]) == "Spectre")) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 0.79));
                    }
                    else if ((UnitGetType(gv_marineHero[lv_localIntA]) == "Flamethrower3")) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 0.55));
                    }
                    else if ((UnitGetType(gv_marineHero[lv_localIntA]) == "ForwardObserver")) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 0.22));
                    }
                    else if ((UnitGetType(gv_marineHero[lv_localIntA]) == "Engineer")) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 0.26));
                    }
                    else if ((UnitGetType(gv_marineHero[lv_localIntA]) == "Pathfinder")) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 0.25));
                    }
                    else if ((UnitGetType(gv_marineHero[lv_localIntA]) != "Medic") && (UnitGetType(gv_marineHero[lv_localIntA]) != "GhostLaserLines") && (UnitGetType(gv_marineHero[lv_localIntA]) != "Spectre") && (UnitGetType(gv_marineHero[lv_localIntA]) != "ForwardObserver") && (UnitGetType(gv_marineHero[lv_localIntA]) != "Flamethrower3") && (UnitGetType(gv_marineHero[lv_localIntA]) != "Engineer") && (UnitGetType(gv_marineHero[lv_localIntA]) != "Pathfinder")) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 0.3));
                    }
                    else if ((UnitIsAlive(gv_reaperMK13[lv_localIntA]) == true)) {
                        UnitSetPropertyFixed(gv_reaperMK13[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_reaperMK13[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 1.7));
                    }
                    if ((UnitGetType(lv_deadUnit) == "Ultralisk") && (libNtve_gf_UnitInRegion(gv_marineHero[lv_localIntA], lv_xPShareRegion) == true)) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 15.0));
                    }
                    else if ((UnitGetType(lv_deadUnit) == "Titan") && (libNtve_gf_UnitInRegion(gv_marineHero[lv_localIntA], lv_xPShareRegion) == true)) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 20.0));
                    }
                    else if ((UnitGetType(lv_deadUnit) == "Slasher") && (libNtve_gf_UnitInRegion(gv_marineHero[lv_localIntA], lv_xPShareRegion) == true)) {
                        UnitSetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, (UnitGetPropertyFixed(gv_marineHero[lv_localIntA], c_unitPropXP, c_unitPropCurrent) + 8.0));
    
    There, thats better. There's a portion your current kill trigger, exp values are somewhere in there.
  11. Blaqk
    • Development Team
    • Webmaster/Liaison

    Blaqk NOTD Staff: Bugs, Pugs, and Scruggs

    RE: The BlaqkPariah XP System Suggestion Thing

    I love how that's no less stupid and bulky than making custom xp values for kills in Brood War on the old editor. We've come a very short way.
  12. Lord NiteShade
    • Wiki Founder
    • Community Leader

    Lord NiteShade NOTD Staff: Wiki Founder/TeamSpeak Admin

    RE: The BlaqkPariah XP System Suggestion Thing

    No, nowadays we have the data editor. That's SCII's trump card. It just can't be used for "everything."

Share This Page