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...