l2redkiller Posted April 14, 2011 Posted April 14, 2011 i there i will add a config like 100 PvP & 100 PK = Noble. so just dont know how make the double check i tryed like this : public void increasePvpKills(L2Character target) { if (target instanceof L2PcInstance && AntiFeedManager.getInstance().check(this, target)) { // Add karma to attacker and increase its PK counter setPvpKills(getPvpKills() + 1); if (Config.ALLOWNOBLEPVPPK) { increaseNoblekills(getPvpKills()); broadcastUserInfo(); }; // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); sendPacket(new ExBrExtraUserInfo(this)); } } and pvp : public void increasePkKillsAndKarma(L2Character target) { int baseKarma = Config.KARMA_MIN_KARMA; int newKarma = baseKarma; int karmaLimit = Config.KARMA_MAX_KARMA; int pkLVL = getLevel(); int pkPKCount = getPkKills(); int targLVL = target.getLevel(); int lvlDiffMulti = 0; int pkCountMulti = 0; // Check if the attacker has a PK counter greater than 0 if (pkPKCount > 0) pkCountMulti = pkPKCount / 2; else pkCountMulti = 1; if (pkCountMulti < 1) pkCountMulti = 1; // Calculate the level difference Multiplier between attacker and killed L2PcInstance if (pkLVL > targLVL) lvlDiffMulti = pkLVL / targLVL; else lvlDiffMulti = 1; if (lvlDiffMulti < 1) lvlDiffMulti = 1; // Calculate the new Karma of the attacker : newKarma = baseKarma*pkCountMulti*lvlDiffMulti newKarma *= pkCountMulti; newKarma *= lvlDiffMulti; // Make sure newKarma is less than karmaLimit and higher than baseKarma if (newKarma < baseKarma) newKarma = baseKarma; if (newKarma > karmaLimit) newKarma = karmaLimit; // Fix to prevent overflow (=> karma has a max value of 2 147 483 647) if (getKarma() > (Integer.MAX_VALUE - newKarma)) newKarma = Integer.MAX_VALUE - getKarma(); // Add karma to attacker and increase its PK counter setKarma(getKarma() + newKarma); if (target instanceof L2PcInstance && AntiFeedManager.getInstance().check(this, target)) setPkKills(getPkKills() + 1); if (Config.ALLOWNOBLEPVPPK) { increaseNoblekills(getPkKills()); broadcastUserInfo(); }; // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); sendPacket(new ExBrExtraUserInfo(this)); } public void increaseNoblekills(int i) { if (getPvpKills() == (Config.PVPNOBLE) && getPkKills() == (Config.PKNOBLE)); setNoble(true); sendMessage("Congratulations you Reached "+ Config.PVPNOBLE +" PvPs and "+ Config.PKNOBLE +" PKs and Recived Nobless"); } the orange thing is no error but if he get 100 pvps and have 0 pk they get the noble so what i have todo ? in config i have 100 pvp & 100 pk. thanks for help Quote
0 sτrίkε- Posted April 14, 2011 Posted April 14, 2011 let me ask something. you want to make a system which if character take 100 pvp and 100 pk then he will be noblesse? Quote
0 vampir Posted April 14, 2011 Posted April 14, 2011 in increaseNoblekills change that if to if(getPvpKills()>=(Config.PVPNOBLE)&&getPkKills()>=(Config.PKNOBLE));{ setNoble(true); sendMessage("Congratulations you Reached "+ Config.PVPNOBLE +" PvPs and "+ Config.PKNOBLE +" PKs and Recived Nobless"); } also u can do check if player isnt nobles atm thats all, check it, tell me if its working :) Quote
0 l2redkiller Posted April 14, 2011 Author Posted April 14, 2011 Thanks for the help but it dont work :( so more ideas ? Quote
0 vampir Posted April 14, 2011 Posted April 14, 2011 what exactly is not working with it? its still like before that every1 who have just 100+ pvps are getting nobles even with having 0 pks or what? Quote
0 l2redkiller Posted April 14, 2011 Author Posted April 14, 2011 ye just for test i changet 2pvps 1 pk at stat 2pvps 0 pks i get the status. thanks for help Quote
0 vampir Posted April 14, 2011 Posted April 14, 2011 are u sure that they are getting blessing of nobless and all things that nobless is giving and not only the message? also check if this config is working good, if its tested and its still not working good then delete line setNoble(true); and check if they are getting noblesses(just to see if this is giving it and not something else), if u did that and they are not getting noblesses anymore then i dont know :/ Quote
0 l2redkiller Posted April 14, 2011 Author Posted April 14, 2011 thats the problem at the stats 2pvp 0 pk they get noble and the message so anything will not really check maybe the part of getPvpKills and getPkKills becurse the NobleKills is in increasePvpKills and in increasePkKills. so someone can help me Quote
0 vampir Posted April 14, 2011 Posted April 14, 2011 write there something like: System.out.println("1"+getPvpKills()); System.out.println("2"+getPkKills()); System.out.println("3"+Config.PKNOBLE); System.out.println("4"+Config.PVPNOBLE); thats what i always do to check something :) later in console check the numbers they return Quote
0 Tryskell Posted April 15, 2011 Posted April 15, 2011 First it should be public void increaseNoblekills() { if ((getPvpKills() == (Config.PVPNOBLE)) && (getPkKills() == (Config.PKNOBLE))); { setNoble(true); sendMessage("Congratulations you Reached "+ Config.PVPNOBLE +" PvPs and "+ Config.PKNOBLE +" PKs and Recived Nobless"); } } ----- Second, your code means : if you get 100 pvp and 100 pks, go noble. You think it's good but it's not. Your code doesn't think about if one value is higher than that. Your condition can be fill ONLY IF BOTH PVP/PKKILLS = 100, which is nearly impossible to do. So rethink your idea better cause it's crappy atm :). Instead of == use >= for both pks and pvp stuff. public void increaseNoblekills() { if ((getPvpKills() >= (Config.PVPNOBLE)) && (getPkKills() >= (Config.PKNOBLE))); { setNoble(true); sendMessage("Congratulations, you reached "+ Config.PVPNOBLE +" PvPs and "+ Config.PKNOBLE +" PKs and received Noblesse status."); } } ----- Third you don't need to do that : increaseNoblekills(int i), as i is never used. Clean both increaseNoblekills(getPvpKills()); for increaseNoblekills(); Quote
0 vampir Posted April 15, 2011 Posted April 15, 2011 isnt that the same code as i wrote before and its still not working as he said? Quote
0 Tryskell Posted April 15, 2011 Posted April 15, 2011 isnt that the same code as i wrote before and its still not working as he said? It's definitely not the same code :D. Quote
0 vampir Posted April 15, 2011 Posted April 15, 2011 mine: if(getPvpKills()>=(Config.PVPNOBLE)&&getPkKills()>=(Config.PKNOBLE));{ setNoble(true); sendMessage("Congratulations you Reached "+ Config.PVPNOBLE +" PvPs and "+ Config.PKNOBLE +" PKs and Recived Nobless"); } yours if ((getPvpKills() >= (Config.PVPNOBLE)) && (getPkKills() >= (Config.PKNOBLE))); { setNoble(true); sendMessage("Congratulations, you reached "+ Config.PVPNOBLE +" PvPs and "+ Config.PKNOBLE +" PKs and received Noblesse status."); } its same but nvm Quote
0 l2redkiller Posted April 15, 2011 Author Posted April 15, 2011 Third you don't need to do that : increaseNoblekills(int i), as i is never used. Clean both increaseNoblekills(getPvpKills()); for increaseNoblekills(); if i add this with getpvpkills than he dont check pks or i am wrong ? Quote
0 Tryskell Posted April 15, 2011 Posted April 15, 2011 mine: if(getPvpKills()>=(Config.PVPNOBLE)&&getPkKills()>=(Config.PKNOBLE));{ setNoble(true); sendMessage("Congratulations you Reached "+ Config.PVPNOBLE +" PvPs and "+ Config.PKNOBLE +" PKs and Recived Nobless"); } yours if ((getPvpKills() >= (Config.PVPNOBLE)) && (getPkKills() >= (Config.PKNOBLE))); { setNoble(true); sendMessage("Congratulations, you reached "+ Config.PVPNOBLE +" PvPs and "+ Config.PKNOBLE +" PKs and received Noblesse status."); } its same but nvm Use code tags then I will see your code next time :D. And red, you're wrong. About the fact it doesn't works, verify if your lovely config is set to True and not False. It has no reason to don't work. The broadcastUserInfo has to be put in the increaseNoblekills() method aswell. It's called anytime else. Quote
Question
l2redkiller
i there i will add a config like
100 PvP & 100 PK = Noble.
so just dont know how make the double check i tryed like this :
and pvp :
the orange thing is no error but if he get 100 pvps and have 0 pk they get the noble so what i have todo ?
in config i have 100 pvp & 100 pk.
thanks for help
14 answers to this question
Recommended Posts
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.