Jump to content
  • 0

[Help] pvppoints system


Question

Posted

Hello i make pvp points system but some is wrong with the code can some one check it and tell me where im fail ^^

 

This works so that if he kills a player to give me 5% of its fame, and add as many sp and pvppoints.

 

Everything works fine except the pvppoints. does not add points in the DB shows such as 23 pvppoints and How do I get 40 should be 63 and is 40 ;/

 

Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java    (revision 5547)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java    (working copy)
@@ -286,9 +286,9 @@
    private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE charId=? AND class_index=?";
    
    // Character Character SQL String Definitions:
-   private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,fame,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,createTime) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
-   private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=? WHERE charId=?";
-   private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createTime,language FROM characters WHERE charId=?";
+   private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,fame,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,createTime,pvpPoints) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
+   private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=?,pvpPoints=?,rank=? WHERE charId=?";
+   private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createTime,language,pvpPoints,rank FROM characters WHERE charId=?";
    
    // Character Teleport Bookmark:
    private static final String INSERT_TP_BOOKMARK = "INSERT INTO character_tpbookmark (charId,Id,x,y,z,icon,tag,name) values (?,?,?,?,?,?,?,?)";
@@ -413,6 +413,10 @@
    /** The PK counter of the L2PcInstance (= Number of non PvP Flagged player killed) */
    private int _pkKills;
    
+   private int _pvpPoints;
+   
+   private int _rank;
+   
    /** The PvP Flag state of the L2PcInstance (0=White, 1=Purple) */
    private byte _pvpFlag;
    
@@ -4343,7 +4347,67 @@
            DuelManager.getInstance().broadcastToOppositTeam(this, update);
        }
    }
-   
+   public void updateRank(int pvpPoints)
+   {
+       if (Config.PVP_RANK_SYSTEM_ENABLED)
+       {
+           //Check if the character has GM access
+           if (isGM())
+               return;
+           {
+               if ((pvpPoints >= (Config.PVP_LVL1)) && (pvpPoints <= (Config.PVP_LVL1)))
+               {
+                   getActingPlayer().setRank(1);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK1);
+               }
+               else if ((pvpPoints >= (Config.PVP_LVL2)) && (pvpPoints <= (Config.PVP_LVL2)))
+               {
+                   getActingPlayer().setRank(2);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK2);
+               }
+               else if ((pvpPoints >= (Config.PVP_LVL3)) && (pvpPoints <= (Config.PVP_LVL3)))
+               {
+                   getActingPlayer().setRank(3);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK3);
+               }
+               else if ((pvpPoints >= (Config.PVP_LVL4)) && (pvpPoints <= (Config.PVP_LVL4)))
+               {
+                   getActingPlayer().setRank(4);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK4);
+               }
+               else if ((pvpPoints >= (Config.PVP_LVL5)) && (pvpPoints <= (Config.PVP_LVL5)))
+               {
+                   getActingPlayer().setRank(5);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK5);
+               }
+               else if ((pvpPoints >= (Config.PVP_LVL6)) && (pvpPoints <= (Config.PVP_LVL6)))
+               {
+                   getActingPlayer().setRank(6);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK6);
+               }
+               else if ((pvpPoints >= (Config.PVP_LVL7)) && (pvpPoints <= (Config.PVP_LVL7)))
+               {
+                   getActingPlayer().setRank(7);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK7);
+               }
+               else if ((pvpPoints >= (Config.PVP_LVL8)) && (pvpPoints <= (Config.PVP_LVL8)))
+               {
+                   getActingPlayer().setRank(8);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK8);
+               }
+               else if ((pvpPoints >= (Config.PVP_LVL9)) && (pvpPoints <= (Config.PVP_LVL9)))
+               {
+                   getActingPlayer().setRank(9);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK9);
+               }
+               else if (pvpPoints >= (Config.PVP_LVL10))
+               {
+                   getActingPlayer().setRank(10);
+                   getAppearance().setNameColor(Config.NAME_COLOR_FOR_RANK10);
+               }
+           }
+       }
+       }
    /**
     * Send a Server->Client packet UserInfo to this L2PcInstance and CharInfo to all L2PcInstance in its _KnownPlayers.<BR><BR>
     *
@@ -5337,6 +5401,50 @@
        
        if (killer != null)
        {
+           if (killer instanceof L2PcInstance && getPvpFlag() > 0)
+           {
+               L2Party party = killer.getParty();
+               L2PcInstance kill = (L2PcInstance) killer;
+               int pointsToAdd;
+               if (party == null)
+               {
+                   pointsToAdd = (int) (_fame*0.05);
+               }
+               else
+               {
+                   pointsToAdd = (int) (_fame*0.05/party.getMemberCount());
+               }
+               int pointsToRemove = _fame - pointsToAdd < 0 ? 0 : _fame - pointsToAdd;
+               kill.setFame(kill.getFame() + pointsToAdd);
+               kill.setSp(kill.getSp() + pointsToAdd);
+               kill.setPvpPoints(kill.getPvpPoints() + pointsToAdd);
+               setFame(pointsToRemove);
+               killer.sendMessage("You have earned " + pointsToAdd + " Fame Points from " + getName() + "");
+               killer.broadcastPacket(new MagicSkillUse(killer, 23021, 1, 0, 0));
+               {
+                   if(killer instanceof L2PcInstance && getPvpFlag() > 0)
+                   {
+                       if (party != null)
+                       {
+                           for(L2PcInstance PartyMember : party.getPartyMembers())
+                           {
+                               if(PartyMember.isInsideRadius(this, 1600, true, false) && PartyMember != killer)
+                               {
+                                   int numberToAdd = (int) (_fame*0.05/party.getMemberCount());
+                                   PartyMember.setFame(PartyMember.getFame() + numberToAdd);
+                                   PartyMember.setSp(PartyMember.getSp() + numberToAdd);
+                                   PartyMember.setPvpPoints(kill.getPvpPoints() + numberToAdd);
+                                   int pointsToRemove1 = _fame - numberToAdd < 0 ? 0 : _fame - numberToAdd;
+                                   setFame(pointsToRemove1);
+                                   PartyMember.setPvpKills(PartyMember.getPvpKills() + 1);
+                                   PartyMember.sendMessage("You have earned " + numberToAdd + " Fame Points from " + getName() + "");
+                                   PartyMember.broadcastPacket(new MagicSkillUse(PartyMember, 23021, 1, 0, 0));
+                               }
+                           }
+                       }
+                   }
+               }
+           }
            L2PcInstance pk = killer.getActingPlayer();
            
            TvTEvent.onKill(killer, this);
@@ -5683,7 +5791,8 @@
        {
            // Add karma to attacker and increase its PK counter
            setPvpKills(getPvpKills() + 1);
-           
+           updateRank(getPvpPoints());
+           broadcastUserInfo();
            // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
            sendPacket(new UserInfo(this));
            sendPacket(new ExBrExtraUserInfo(this));
@@ -7026,7 +7135,11 @@
            statement.setInt(35, isNoble() ? 1 :0);
            statement.setLong(36, 0);
            statement.setLong(37,getCreateTime());
+           statement.setLong(38, 0);
            
+           
+           
+           
            statement.executeUpdate();
            statement.close();
        }
@@ -7098,6 +7211,8 @@
                player.setFame(rset.getInt("fame"));
                player.setPvpKills(rset.getInt("pvpkills"));
                player.setPkKills(rset.getInt("pkkills"));
+               player.setPvpPoints(rset.getInt("pvpPoints"));              
+               player.setPvpPoints(rset.getInt("rank"));
                player.setOnlineTime(rset.getLong("onlinetime"));
                player.setNewbie(rset.getInt("newbie"));
                player.setNoble(rset.getInt("nobless")==1);
@@ -7224,6 +7339,8 @@
                // Language
                player.setLang(rset.getString("language"));
                
+
+               
                // Retrieve the name and ID of the other characters assigned to this account.
                PreparedStatement stmt = con.prepareStatement("SELECT charId, char_name FROM characters WHERE account_name=? AND charId<>?");
                stmt.setString(1, player._accountName);
@@ -7665,7 +7782,9 @@
            statement.setInt(50, getBookMarkSlot());
            statement.setInt(51, getVitalityPoints());
            statement.setString(52, getLang());
-           statement.setInt(53, getObjectId());
+           statement.setLong(53, getPvpPoints());
+           statement.setLong(54, getRank());
+           statement.setInt(55, getObjectId());
            
            statement.execute();
            statement.close();
@@ -14475,7 +14594,25 @@
            L2DatabaseFactory.close(con);
        }
    }
+   public void setPvpPoints(int points)
+   {
+       _pvpPoints = points;
+   }
    
+   public int getPvpPoints()
+   {
+       return _pvpPoints;
+   }
+   public void setRank(int points1)
+   {
+       _rank = points1;
+   }
+   
+   public int getRank()
+   {
+       return _rank;
+   }
+   
    public double getCollisionRadius()
    {
        if (getAppearance().getSex())
Index: java/com/l2jserver/Config.java
===================================================================
--- java/com/l2jserver/Config.java  (revision 5547)
+++ java/com/l2jserver/Config.java  (working copy)
@@ -725,7 +725,27 @@
    public static int L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP;
    public static int L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP;
    public static TIntIntHashMap L2JMOD_DUALBOX_CHECK_WHITELIST;
-   
+   public static boolean           PVP_RANK_SYSTEM_ENABLED;
+   public static int                       PVP_LVL1;
+   public static int                       PVP_LVL2;
+   public static int                       PVP_LVL3;
+   public static int                       PVP_LVL4;
+   public static int                       PVP_LVL5;
+   public static int                       PVP_LVL6;
+   public static int                       PVP_LVL7;
+   public static int                       PVP_LVL8;
+   public static int                       PVP_LVL9;
+   public static int                       PVP_LVL10;
+   public static int                       NAME_COLOR_FOR_RANK1;
+   public static int                       NAME_COLOR_FOR_RANK2;
+   public static int                       NAME_COLOR_FOR_RANK3;
+   public static int                       NAME_COLOR_FOR_RANK4;
+   public static int                       NAME_COLOR_FOR_RANK5;
+   public static int                       NAME_COLOR_FOR_RANK6;
+   public static int                       NAME_COLOR_FOR_RANK7;
+   public static int                       NAME_COLOR_FOR_RANK8;
+   public static int                       NAME_COLOR_FOR_RANK9;
+   public static int                       NAME_COLOR_FOR_RANK10;
    //--------------------------------------------------
    // NPC Settings
    //--------------------------------------------------
@@ -2421,7 +2441,27 @@
                            }
                        }
                    }
-                   
+                   PVP_RANK_SYSTEM_ENABLED = Boolean.parseBoolean(L2JModSettings.getProperty("EnableRankSystem", "false"));
+                   PVP_LVL1 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl1", "25000"));
+                   PVP_LVL2 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl2", "50000"));
+                   PVP_LVL3 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl3", "75000"));
+                   PVP_LVL4 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl4", "100000"));
+                   PVP_LVL5 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl5", "150000"));
+                   PVP_LVL6 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl6", "200000"));
+                   PVP_LVL7 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl7", "300000"));
+                   PVP_LVL8 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl8", "400000"));
+                   PVP_LVL9 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl9", "500000"));
+                   PVP_LVL10 = Integer.parseInt(L2JModSettings.getProperty("PvpLvl10", "700000"));
+                   NAME_COLOR_FOR_RANK1 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank1", "00FF00"));
+                   NAME_COLOR_FOR_RANK2 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank2", "00FF00"));
+                   NAME_COLOR_FOR_RANK3 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank3", "00FF00"));
+                   NAME_COLOR_FOR_RANK4 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank4", "00FF00"));
+                   NAME_COLOR_FOR_RANK5 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank5", "00FF00"));
+                   NAME_COLOR_FOR_RANK6 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank6", "00FF00"));
+                   NAME_COLOR_FOR_RANK7 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank7", "00FF00"));
+                   NAME_COLOR_FOR_RANK8 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank8", "00FF00"));
+                   NAME_COLOR_FOR_RANK9 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank9", "00FF00"));
+                   NAME_COLOR_FOR_RANK10 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForRank10", "00FF00"));
                    BANKING_SYSTEM_ENABLED = Boolean.parseBoolean(L2JModSettings.getProperty("BankingEnabled", "false"));
                    BANKING_SYSTEM_GOLDBARS = Integer.parseInt(L2JModSettings.getProperty("BankingGoldbarCount", "1"));
                    BANKING_SYSTEM_ADENA = Integer.parseInt(L2JModSettings.getProperty("BankingAdenaCount", "500000000"));
Index: .settings/org.eclipse.jdt.ui.prefs
===================================================================
--- .settings/org.eclipse.jdt.ui.prefs  (revision 5547)
+++ .settings/org.eclipse.jdt.ui.prefs  (working copy)
@@ -1,4 +1,3 @@
-#Tue Aug 30 12:22:24 CLST 2011
 cleanup.add_default_serial_version_id=true
 cleanup.add_generated_serial_version_id=false
 cleanup.add_missing_annotations=true

 

http://pastebin.com/Ub427XYF

Recommended Posts

  • 0
Posted

I tried so instead updateRank(getPvpPoints ()); gave updateRank(getPvpKills ()); and  How do I get a 25000 pvp rank jumps to 1 which must either updateRank(getPvpPoints ()); enter in the appropriate place or my code is missing something.

 

[pl]poprobowalem tak zamiast updateRank(getPvpPoints()); dalem updateRank(getPvpKills()); i jak zdobede 25000 pvp to rank wskakuje na 1. czyli musze albo updateRank(getPvpPoints()); wpisac w  odpowiednie miejsce albo czegos mojemu code brakuje.[/pl]

 

(Sorry Tryskell)

  • 0
Posted

yes, now I know. I thought at work and I thought how stupid I am, in all I thought about another place in L2PcInstance. but it still does not work. If i put this in public void increasePvpKills(L2Character target) i get error

sie 06, 2012 6:29:17 PM com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket run
SEVERE: Client: [Character: Suczka[268482585] - Account: suczka - IP: 127.0.0.1] - Failed running: [C] 03 EnterWorld - L2J Server Version: 5538M - DP Revision: 9035 ; null
java.lang.StackOverflowError
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.getAccessLevel(L2PcInstance.java:6998)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.isGM(L2PcInstance.java:6945)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.updateRank(L2PcInstance.java:5555)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.updateRank(L2PcInstance.java:5609)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.updateRank(L2PcInstance.java:5609)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.updateRank(L2PcInstance.java:5609)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.updateRank(L2PcInstance.java:5609)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.updateRank(L2PcInstance.java:5609)
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.updateRank(L2PcInstance.java:5609)......

Guest
This topic is now closed to further replies.


×
×
  • 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