Jump to content
  • 0

Without Karma, And Not Counting Pk


Question

2 answers to this question

Recommended Posts

  • 0
Posted

Check the method which increase the pvp/pk. No idea what name of that method fandc uses. Search inside L2PcInstance for setPvpKills(getPvpKills() + 1); and see what is wrong.

  • 0
Posted

Check the method which increase the pvp/pk. No idea what name of that method fandc uses. Search inside L2PcInstance for setPvpKills(getPvpKills() + 1); and see what is wrong.

 

public final void doPurePk(final Player killer)
    {
        // Check if the attacker has a PK counter greater than 0
        final int pkCountMulti = Math.max(killer.getPkKills() / 2, 1);

        // Calculate the level difference Multiplier between attacker and killed L2Player
        // final int lvlDiffMulti = Math.max(killer.getLevel() / _level, 1);

        // Calculate the new Karma of the attacker : newKarma = baseKarma*pkCountMulti*lvlDiffMulti
        // Add karma to attacker and increase its PK counter
        killer.increaseKarma(Config.KARMA_MIN_KARMA * pkCountMulti); // * lvlDiffMulti);
        killer.setPkKills(killer.getPkKills() + 1);
    }

    public final void doKillInPeace(final Player killer) // Check if the L2Player killed haven't Karma
    {
        if((_karma <= 0) && ((_event == null) || _event.checkPvP(killer, this)))
        {
            if(Config.SERVICES_PK_PVP_KILL_ENABLE)
            {
                if(Config.SERVICES_PK_PVP_TIE_IF_SAME_IP)
                {
                    if(this.getIP() != killer.getIP())
                    {
                        if(Config.SERVICES_ANNOUNCE_PK_ENABLED)
                        {
                            Announcements.getInstance().announceToAll("Player " + killer.getName() + " has killed " + killer.getTarget().getName() + " with a PK");
                        }
                        ItemFunctions.addItem(killer, Config.SERVICES_PK_KILL_REWARD_ITEM, Config.SERVICES_PK_KILL_REWARD_COUNT, true, "Pk");
                    }
                }
                else
                {
                    if(Config.SERVICES_ANNOUNCE_PK_ENABLED)
                    {
                        Announcements.getInstance().announceToAll("Player " + killer.getName() + " has killed " + killer.getTarget().getName() + " with a PK");
                    }
                    ItemFunctions.addItem(killer, Config.SERVICES_PK_KILL_REWARD_ITEM, Config.SERVICES_PK_KILL_REWARD_COUNT, true, "Pk");
                }
            }
            doPurePk(killer);
        }
        else
        {
            killer.setPvpKills(killer.getPvpKills() + 1);
        }
    }

 

------------------------------------------

 

 

public void setPvpKills(int pvpKills)
    {
        _pvpKills = pvpKills;
    }

 

 

-----------------------------------------

 

 

// Processing Karma/PKCount/PvPCount for killer
        if(killer.isPlayer())
        {
            Player pk = (Player) killer;
            int repValue = (getLevel() - pk.getLevel()) >= 20 ? 2 : 1;
            boolean war = atMutualWarWith(pk);

            if((war) && (pk.getClan().getReputationScore() > 0) && (this._clan.getLevel() >= 5) && (this._clan.getReputationScore() > 0) && (pk.getClan().getLevel() >= 5))
            {
                this._clan.broadcastToOtherOnlineMembers(new SystemMessage(1782).addString(getName()).addNumber(-this._clan.incReputation(-repValue, true, "ClanWar")), this);
                pk.getClan().broadcastToOtherOnlineMembers(new SystemMessage(1783).addNumber(pk.getClan().incReputation(repValue, true, "ClanWar")), pk);
            }

            CastleSiegeEvent siegeEvent = getEvent(CastleSiegeEvent.class);
            CastleSiegeEvent siegeEventPk = pk.getEvent(CastleSiegeEvent.class);
            if(siegeEvent != null && (siegeEvent == siegeEventPk))
            {
                pk.getClan().incSiegeKills();
                if(((siegeEventPk.getSiegeClan("defenders", pk.getClan()) != siegeEvent.getSiegeClan("attackers", getClan())) || (siegeEventPk.getSiegeClan("attackers", pk.getClan()) != siegeEvent.getSiegeClan("defenders", getClan()))) && (pk.getClan().getReputationScore() > 0) && (this._clan.getLevel() >= 5) && (this._clan.getReputationScore() > 0) && (pk.getClan().getLevel() >= 5))
                {
                    this._clan.broadcastToOtherOnlineMembers(new SystemMessage(1782).addString(getName()).addNumber(-this._clan.incReputation(-repValue, true, "ClanWar")), this);
                    pk.getClan().broadcastToOtherOnlineMembers(new SystemMessage(1783).addNumber(pk.getClan().incReputation(repValue, true, "ClanWar")), pk);
                }
            }
            DominionSiegeEvent dominionEvent = getEvent(DominionSiegeEvent.class);
            DominionSiegeEvent dominionEventPk = pk.getEvent(DominionSiegeEvent.class);
            if((dominionEvent != null) && (dominionEventPk != null))
            {
                pk.getClan().incSiegeKills();
            }
            FortressSiegeEvent fsiegeEvent = getEvent(FortressSiegeEvent.class);
            FortressSiegeEvent fsiegeEventPk = pk.getEvent(FortressSiegeEvent.class);
            if((fsiegeEvent != null) && (fsiegeEvent == fsiegeEventPk) && (pk.getClan() != null) && (_clan != null) && ((fsiegeEventPk.getSiegeClan("defenders", pk.getClan()) != fsiegeEvent.getSiegeClan("attackers", getClan())) || (fsiegeEventPk.getSiegeClan("attackers", pk.getClan()) != fsiegeEvent.getSiegeClan("defenders", getClan()))) && (pk.getClan().getReputationScore() > 0) && (this._clan.getLevel() >= 5) && (this._clan.getReputationScore() > 0) && (pk.getClan().getLevel() >= 5))
            {
                this._clan.broadcastToOtherOnlineMembers(new SystemMessage(1782).addString(getName()).addNumber(-this._clan.incReputation(-repValue, true, "ClanWar")), this);
                pk.getClan().broadcastToOtherOnlineMembers(new SystemMessage(1783).addNumber(pk.getClan().incReputation(repValue, true, "ClanWar")), pk);
            }
            ClanHallSiegeEvent chsiegeEvent = getEvent(ClanHallSiegeEvent.class);
            ClanHallSiegeEvent chsiegeEventPk = pk.getEvent(ClanHallSiegeEvent.class);
            if((chsiegeEvent != null) && (chsiegeEvent == chsiegeEventPk) && ((chsiegeEventPk.getSiegeClan("defenders", pk.getClan()) != chsiegeEvent.getSiegeClan("attackers", getClan())) || (chsiegeEventPk.getSiegeClan("attackers", pk.getClan()) != chsiegeEvent.getSiegeClan("defenders", getClan()))) && (pk.getClan().getReputationScore() > 0) && (this._clan.getLevel() >= 5) && (this._clan.getReputationScore() > 0) && (pk.getClan().getLevel() >= 5))
            {
                this._clan.broadcastToOtherOnlineMembers(new SystemMessage(1782).addString(getName()).addNumber(-this._clan.incReputation(-repValue, true, "ClanWar")), this);
                pk.getClan().broadcastToOtherOnlineMembers(new SystemMessage(1783).addNumber(pk.getClan().incReputation(repValue, true, "ClanWar")), pk);
            }
            if((isOnSiegeField()) && (!Config.SIEGE_PVP_COUNT)){ return; }
            if((this._pvpFlag > 0) || (war) || (Config.SIEGE_PVP_COUNT) || (Config.ZONE_PVP_COUNT) || isInZonePvP())
            {
                if(Config.SERVICES_PK_PVP_KILL_ENABLE)
                {
                    if(Config.SERVICES_PK_PVP_TIE_IF_SAME_IP)
                    {
                        if(this.getIP() != pk.getIP())
                        {
                            if(Config.SERVICES_ANNOUNCE_PVP_ENABLED)
                            {
                                Announcements.getInstance().announceToAll("Player " + pk.getName() + " win " + pk.getTarget().getName() + " in PVP");
                            }
                            ItemFunctions.addItem(pk, Config.SERVICES_PVP_KILL_REWARD_ITEM, Config.SERVICES_PVP_KILL_REWARD_COUNT, true, "PvP");
                        }
                    }
                    else
                    {
                        if(Config.SERVICES_ANNOUNCE_PVP_ENABLED)
                        {
                            Announcements.getInstance().announceToAll("Player " + pk.getName() + " win " + pk.getTarget().getName() + " in PVP");
                        }
                        ItemFunctions.addItem(pk, Config.SERVICES_PVP_KILL_REWARD_ITEM, Config.SERVICES_PVP_KILL_REWARD_COUNT, true, "PvP");
                    }
                }
                pk.setPvpKills(pk.getPvpKills() + 1);
            }
            else
            {
                doKillInPeace(pk);
            }
            pk.sendChanges();
        }

        int karma = _karma;
        decreaseKarma(Config.KARMA_LOST_BASE);
        
        // under normal conditions, things are lost with the death of the guard tower or player
        // In addition, the loss of viola at things smetri can lose things in the monster smteri
        boolean isPvP = killer.isPlayable() || (killer instanceof GuardInstance);
        
        if ((killer.isMonster() && !Config.DROP_ITEMS_ON_DIE // if you kill the monster and viola off
        ) || (isPvP // if you kill a player or the Guard and
        && ((_pkKills < Config.MIN_PK_TO_ITEMS_DROP // number of PCs too little
        ) || ((karma == 0) && Config.KARMA_NEEDED_TO_DROP)) // karma is not
        ) || isFestivalParticipant() // the festival things are not lost
            || (!killer.isMonster() && !isPvP))
        {
            return;
        }

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • A huge amount of goods at free prices, for some reason, is idle in the warehouse. What, have you all gone to the factory or something?) CAN'T GO TO THE ONLINE STORE? OPEN THE SITE VIA VPN OR TOR BROWSER. Payments-system / Crypto-Exchange ☑ Account Airbnb 🗂 1 in stock ☑ Account AlchemyPay 🗂 2 in stock ☑ Account Astropay 🗂 1 in stock ☑ Account Anycoin 🗂 2 in stock ☑ Account 4x4 io 🗂 1 in stock ☑ Account Bunq 🗂 1 in stock ☑ Account Bilderlings 🗂 1 in stock ☑ Account BitPay 🗂 3 in stock ☑ Account Bitinvestor / swapped 🗂 1 in stock ☑ Account Bitmex 🗂 1 in stock ☑ Account Bitsa 🗂 2 in stock ☑ Account Blackcatcard 🗂 1 in stock ☑ Account Blockchain 🗂 1 in stock ☑ Account Btcdirect 🗂 1 in stock ☑ Account BBVA 🗂 1 in stock ☑ Account Binance 🗂 4 in stock ☑ Account Bitget 🗂 1 in stock ☑ Account Blackwell Global 🗂 1 in stock ☑ Account Brighty app 🗂 1 in stock ☑ Account Bankera 🗂 2 in stock ☑ Account Cent.app 🗂 1 in stock ☑ Account Coinbase card 🗂 2 in stock ☑ Account Coinfinity 🗂 1 in stock ☑ Account Capitalist 🗂 1 in stock ☑ Account CoinW 🗂 1 in stock ☑ Account Coinmetro 🗂 1 in stock ☑ Account Coinpayments 🗂 3 in stock ☑ Account Cryptomus 🗂 1 in stock ☑ Account Curve 🗂 1 in stock ☑ Account Coinzoom 🗂 1 in stock ☑ Account Cryptopay 🗂 1 in stock ☑ Account Egera 🗂 2 in stock ☑ Account Eldorado gg 🗂 1 in stock ☑ Account e PN 🗂 1 in stock ☑ Account FasterPay 🗂 1 in stock ☑ Account Fragment 🗂 1 in stock ☑ Account Finci 🗂 1 in stock ☑ Account fillit eu 🗂 2 in stock ☑ Account Gate 🗂 1 in stock ☑ Account Grey 🗂 1 in stock ☑ Account HTX (Huobi) 🗂 3 in stock ☑ Account IN1 🗂 1 in stock ☑ Account Imagenpay 🗂 1 in stock ☑ Account ICard 🗂 1 in stock ☑ Account IPRoyal 🗂 1 in stock ☑ Account Kraken 🗂 2 in stock ☑ Account Kucoin 🗂 1 in stock ☑ Account Kauri Finance 🗂 1 in stock ☑ Account Kriptomat 🗂 1 in stock ☑ Account Luno 🗂 2 in stock ☑ Account LuxonPay 🗂 1 in stock ☑ Account MEXC 🗂 1 in stock ☑ Account MyBrocard 🗂 1 in stock ☑ Account Moonpay 🗂 1 in stock ☑ Account Monzo 🗂 1 in stock ☑ Account moneyjar world 🗂 1 in stock ☑ Account Naga Pay 🗂 1 in stock ☑ Account Nash 🗂 1 in stock ☑ Account Nebeus 🗂 1 in stock ☑ Account Nexo 🗂 3 in stock ☑ Account Nearpay 🗂 1 in stock ☑ Account Neteller 🗂 2 in stock ☑ Account NiceHash 🗂 1 in stock ☑ Account N26 🗂 2 in stock ☑ Account OKX 🗂 1 in stock ☑ Account PayDo 🗂 1 in stock ☑ Account Paypal 🗂 1 in stock ☑ Account Paysera 🗂 2 in stock ☑ Account PST 🗂 1 in stock ☑ Account Paybis 🗂 1 in stock ☑ Account Payoneer 🗂 1 in stock ☑ Account Paysafecard 🗂 1 in stock ☑ Account Paytend 🗂 1 in stock ☑ Account Quppy 🗂 2 in stock ☑ Account RedotPay 🗂 1 in stock ☑ Account Ramp 🗂 1 in stock ☑ Account Revolut 🗂 2 in stock ☑ Account Santander 🗂 1 in stock ☑ Account Spendl 🗂 2 in stock ☑ Account Skrill 🗂 1 in stock ☑ Account Swapin 🗂 1 in stock ☑ Account Trustee Plus 🗂 2 in stock ☑ Account Valora 🗂 1 in stock ☑ Account Volet 🗂 1 in stock ☑ Account W1TTY 🗂 1 in stock ☑ Account Wallet Telegram 🗂 3 in stock ☑ Account Weststein 🗂 1 in stock ☑ Account Wirex 🗂 1 in stock ☑ Account Wise 🗂 3 in stock ☑ Account Whitebit 🗂 1 in stock ☑ Account Wittix 🗂 1 in stock ☑ Account XGo 🗂 1 in stock ☑ Account Zeply 🗂 1 in stock ☑ Account gekkard 🗂 1 in stock +There are kits with a physical payment card Business-Accounts ☑ Account Blackcatcard Business 🗂 1 in stock ☑ Account Mistertango Business 🗂 1 in stock ☑ Account Payset Business 🗂 1 in stock ☑ Account Wise Business 🗂 1 in stock ☑ Account Finom Business 🗂 1 in stock ☑ Account PayPal Business 🗂 3 in stock ☑ Account Wallester Business 🗂 1 in stock ☑ Account Stripe Business 🗂 2 in stock ☑ Account Wittix Business 🗂 1 in stock ☑ Account Ebay com Seller US|EU, new 🗂 2 in stock If you need account that we don't have in a list contact us. Contact via telegram - in the first post of the topic!
    • What problems are you having? DM me on Discord: l2mid.com or you can write here too i also use Strix.
    • How can i increase the HP of a summon ? specifically Summon Mechanic Golem from warsmith ..   thx.
    • We invite you all, our dear community, to the Facebook groups Lu4 Global and Latam https://www.facebook.com/share/g/1DBF55fMXG/ Global Community https://www.facebook.com/share/g/1ApVygvr8R/ Global Community Los inviatamos a todos querida comunidad a los grupos de Facebook Lu4 Global y Latam https://www.facebook.com/share/g/1DBF55fMXG/   Comunidad Global https://www.facebook.com/share/g/1ApVygvr8R/   Comunidad Latam
    • TOP support you can get. Create all system so i can transfere all users from mmoweb to his platform
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock