[Help]About PC Bang System MultiSell

Support for the latest build of L2J Server, get help here with installations, upgrades, problems.
Do not post bugs reports here, use viewforum.php?f=77 instead.
There is no support for other server builds than the official provided by l2jserver.com
Forum rules
READ NOW: L2j Forums Rules of Conduct
Post Reply
pipiou211
Posts: 3
Joined: Thu Feb 18, 2010 11:06 pm

[Help]About PC Bang System MultiSell

Post by pipiou211 »

If you want to receive support we need this info to help you properly.
» Find Revision
L2J Revision Number:
L2JDP Revision Number: <-- Sorry but i dont know exacly the revision.. but it is Freya release.. from the firsts releases... I wanna add to my server the PC Bang Point System.. i have already added it on an older Epilogue revision but i can't ender it on this one.. all looks good, i have added it.. but i can't make a multisell...

Can someone help me? the file i have add the ID of the "PC Bang Point" is the file named "Multisell.java" inside the "com/l2jserver/gameserver/datatables" folder.. right? Like CLAN_REPUTATION and FAME already exist... can someone please help me?... the patch is this -> (PS. Don't ask me how i have added it :D, i just added it and it works... i gave you the patch to see the "Multisell edit" and help me adapt it for Freya revision... it works for Epilogue.. but multisell file is changed on Freya...

Code: Select all

 Index: /Gs folder/java/l2justice/com/gameserver/services/FService.java===================================================================--- /Gs folder/java/l2justice/com/gameserver/services/FService.java (revision 2928)+++ /Gs folder/java/l2justice/com/gameserver/services/FService.java (revision 2031)@@ -72,5 +72,5 @@ +   public static final String EVENT_PC_BANG_POINT_FILE = "./config/custom/pcBang.properties";  Index: /Gs folder/java/l2justice/com/gameserver/PcPoint.java===================================================================--- /Gs folder/java/l2justice/com/gameserver/PcPoint.java (revision 2031)+++ /Gs folder/java/l2justice/com/gameserver/PcPoint.java (revision `2031)@@ -0,0 +1,78 @@+package l2justice.com.gameserver;++import java.util.logging.Logger;++import net.sf.l2j.Config;+import net.sf.l2j.gameserver.model.L2World;+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;+import net.sf.l2j.gameserver.network.SystemMessageId;+import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;+import net.sf.l2j.util.Rnd;+++/**+ * @author Anumis+ */++public class PcPoint implements Runnable+{+   Logger _log = Logger.getLogger(PcPoint.class.getName());+   private static PcPoint _instance;++   public static PcPoint getInstance()+   {+       if(_instance == null)+       {+           _instance = new PcPoint();+       }++       return _instance;+   }++   private PcPoint()+   {+       _log.info("PcBang point event started.");+   }++   @Override+   public void run()+   {++       int score = 0;+       for(L2PcInstance activeChar: L2World.getInstance().getAllPlayers())+       {++           if(activeChar.getLevel() > Config.PCB_MIN_LEVEL )+           {+               score = Rnd.get(Config.PCB_POINT_MIN, Config.PCB_POINT_MAX);++               if(Rnd.get(100) <= Config.PCB_CHANCE_DUAL_POINT)+               {+                   score *= 2;++                   activeChar.addPcBangScore(score);++                   SystemMessage sm = new SystemMessage(SystemMessageId.DOUBLE_POINTS_YOU_GOT_$51_GLASSES_PC);+                   sm.addNumber(score);+                   activeChar.sendPacket(sm);+                   sm = null;++                   activeChar.updatePcBangWnd(score, true, true);+               }+               else+               {+                   activeChar.addPcBangScore(score);++                   SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECEVIED_$51_GLASSES_PC);+                   sm.addNumber(score);+                   activeChar.sendPacket(sm);+                   sm = null;++                   activeChar.updatePcBangWnd(score, true, false);+               }+           }++           activeChar = null;+       } +   }+}Index: /Gs folder/java/net/sf/l2j/Config.java===================================================================--- /Gs folder/java/net/sf/l2j/Config.java (revision 2028)+++ /Gs folder/java/net/sf/l2j/Config.java (revision 2031)@@ -1687,55 +1687,48 @@    public static int HPH_INTERVALOFDOOROFALTER;    public static int HPH_TIMEOFLOCKUPDOOROFALTAR;+       //============================================================+   public static boolean PCB_ENABLE;+   public static int PCB_MIN_LEVEL;+   public static int PCB_POINT_MIN;+   public static int PCB_POINT_MAX;+   public static int PCB_CHANCE_DUAL_POINT;+   public static int PCB_INTERVAL;     //============================================================+   public static void loadPCBPointConfig()    { +       final String PCB_POINT = FService.EVENT_PC_BANG_POINT_FILE; +       _log.info("Loading: " + PCB_POINT + ".");+       try+       {+           Properties pcbpSettings = new Properties();+           InputStream is = new FileInputStream(new File(PCB_POINT));+           pcbpSettings.load(is);+           is.close(); +           PCB_ENABLE = Boolean.parseBoolean(pcbpSettings.getProperty("PcBangPointEnable", "true"));+           PCB_MIN_LEVEL = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMinLevel", "20"));+           PCB_POINT_MIN = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMinCount", "20"));+           PCB_POINT_MAX = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMaxCount", "1000000")); +           if(PCB_POINT_MAX < 1)+           {+               PCB_POINT_MAX = Integer.MAX_VALUE;+           } +           PCB_CHANCE_DUAL_POINT = Integer.parseInt(pcbpSettings.getProperty("PcBangPointDualChance", "20"));+           PCB_INTERVAL = Integer.parseInt(pcbpSettings.getProperty("PcBangPointTimeStamp", "900"));+       }+       catch(Exception e)+       {+           e.printStackTrace();+           throw new Error("Failed to Load " + PCB_POINT + " File.");+       } +   }+   //============================================================+        Index: /Gs folder/java/net/sf/l2j/gameserver/clientpackets/MultiSellChoose.java===================================================================--- /Gs folder/java/net/sf/l2j/gameserver/clientpackets/MultiSellChoose.java (revision 107)+++ /Gs folder/java/net/sf/l2j/gameserver/clientpackets/MultiSellChoose.java (revision 2031)@@ -200,4 +200,9 @@                {                    player.sendPacket(new SystemMessage(SystemMessageId.THE_CLAN_REPUTATION_SCORE_IS_TOO_LOW));+                   return;+               }+               if(e.getItemId() == 65436 && e.getItemCount() * _amount > player.getPcBangScore())+               {+                   player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));                    return;                }Index: /Gs folder/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java===================================================================--- /Gs folder/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 1726)+++ /Gs folder/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 2031)@@ -144,4 +144,5 @@            // activeChar.closeNetConnection();        }+           if (activeChar.isGM())        {@@ -373,4 +374,5 @@            activeChar.checkAllowedSkills();        }+               // send user info again .. just like the real client sendPacket(ui);        if ((activeChar.getClanId() != 0) && (activeChar.getClan() != null))@@ -396,4 +398,8 @@        notifyCastleOwner(activeChar);        activeChar.onPlayerEnter();+       if(Config.PCB_ENABLE)+       {+           activeChar.showPcBangWindow();+       }        TvTEvent.onLogin(activeChar);        PcColorTable.getInstance().process(activeChar);Index: /Gs folder/java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java===================================================================--- /Gs folder/java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java (revision 7)+++ /Gs folder/java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java (revision 2031)@@ -15,4 +15,6 @@ package net.sf.l2j.gameserver.network.serverpackets; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;+  @@ -25,13 +27,36 @@ {    private static final String _S__FE_31_EXPCCAFEPOINTINFO = "[S] FE:31 ExPCCafePointInfo";-   private int _unk1, _unk2, _unk3, _unk4, _unk5 = 0; -   public ExPCCafePointInfo(int val1, int val2, int val3, int val4, int val5)+   private L2PcInstance _character;+   private int m_AddPoint;+   private int m_PeriodType;+   private int RemainTime;+   private int PointType;++   public ExPCCafePointInfo(L2PcInstance user, int modify, boolean add, int hour, boolean _double)    {-       _unk1 = val1;-       _unk2 = val2;-       _unk3 = val3;-       _unk4 = val4;-       _unk5 = val5;+       _character = user;+       m_AddPoint = modify;++       if(add)+       {+           m_PeriodType = 1;+           PointType = 1;+       }+       else+       {+           if(add && _double)+           {+               m_PeriodType = 1;+               PointType = 0;+           }+           else+           {+               m_PeriodType = 2;+               PointType = 2;+           }+       }++       RemainTime = hour;    } @@ -41,9 +66,9 @@        writeC(0xFE);        writeH(0x31);-       writeD(_unk1);-       writeD(_unk2);-       writeC(_unk3);-       writeD(_unk4);-       writeC(_unk5);+       writeD(_character.getPcBangScore());+       writeD(m_AddPoint);+       writeC(m_PeriodType);+       writeD(RemainTime);+       writeC(PointType);    } @@ -56,3 +81,4 @@        return _S__FE_31_EXPCCAFEPOINTINFO;    }+ }Index: /Gs folder/java/net/sf/l2j/gameserver/network/SystemMessageId.java===================================================================--- /Gs folder/java/net/sf/l2j/gameserver/network/SystemMessageId.java (revision 1926)+++ /Gs folder/java/net/sf/l2j/gameserver/network/SystemMessageId.java (revision 2031)@@ -3873,5 +3873,7 @@    DEATH_PENALTY_LIFTED(1917),    DUNGEON_EXPIRES_IN_S1_MINUTES(1918), -   S1(3000);+   S1(3000), +   DOUBLE_POINTS_YOU_GOT_$51_GLASSES_PC(3001), +   YOU_RECEVIED_$51_GLASSES_PC(3002);        private int _id;Index: /Gs folder/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java===================================================================--- /Gs folder/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 2029)+++ /Gs folder/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 2031)@@ -93,5 +93,4 @@ import net.sf.l2j.gameserver.model.L2Clan; import net.sf.l2j.gameserver.model.L2ClanMember; import net.sf.l2j.gameserver.model.L2Effect; import net.sf.l2j.gameserver.model.L2Fishing;@@ -152,4 +151,5 @@ import net.sf.l2j.gameserver.network.L2GameClient; import net.sf.l2j.gameserver.network.SystemMessageId;+import net.sf.l2j.gameserver.network.serverpackets.ExPCCafePointInfo; import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;@@ -234,6 +234,6 @@    private static final String RESTORE_SKILL_SAVE = "SELECT skill_id,skill_level,effect_count,effect_cur_time, reuse_delay FROM character_skills_save WHERE char_obj_id=? AND class_index=? AND restore_type=? ORDER BY buff_index ASC";    private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?";-   private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,event_points=?,coupon=?,donator=?,death_penalty_level=?,koof=?,noob=?,idiot=? WHERE obj_id=?";-   private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,event_points,coupon,donator,death_penalty_level,koof,noob,idiot FROM characters WHERE obj_id=?";+   private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,event_points=?,coupon=?,donator=?,death_penalty_level=?,koof=?,noob=?,idiot=?,pc_point=? WHERE obj_id=?";+   private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,event_points,coupon,donator,death_penalty_level,koof,noob,idiot,pc_point FROM characters WHERE obj_id=?";    private static final String RESTORE_CHAR_SUBCLASSES = "SELECT class_id,exp,sp,level,class_index FROM character_subclasses WHERE char_obj_id=? ORDER BY class_index ASC";    private static final String ADD_CHAR_SUBCLASS = "INSERT INTO character_subclasses (char_obj_id,class_id,exp,sp,level,class_index) VALUES (?,?,?,?,?,?)";@@ -382,4 +382,6 @@    /** The Experience of the L2PcInstance before the last Death Penalty */    private long _expBeforeDeath;+   /** PC BANG POINT */+   private int pcBangPoint = 0;    /**     * The Karma of the L2PcInstance (if higher than 0, the name of the L2PcInstance appears in red)@@ -6722,4 +6724,5 @@                player.setCoupon(rset.getInt("coupon"));                player.setDeathPenaltyBuffLevel(rset.getInt("death_penalty_level"));+               player.pcBangPoint = rset.getInt("pc_point");                // Add the L2PcInstance object in _allObjects                // L2World.getInstance().storeObject(player);@@ -7105,5 +7108,6 @@            statement.setInt(61, isNoob() ? 1 : 0);            statement.setInt(62, isIdiot() ? 1 : 0);-           statement.setInt(63, getObjectId());+           statement.setInt(63, getPcBangScore());+           statement.setInt(64, getObjectId());  @@ -13002,9 +13006,32 @@        return (DM._started && _inEventDM) || (CTF._started && _inEventCTF) || (VIP._started && _inEventVIP) (Zombie._started && _ZombieZ) || && !isGM();    }*/ +       public int getPcBangScore()+       {+           return pcBangPoint;+       }++       public void reducePcBangScore(int to)+       {+           pcBangPoint -= to;+           updatePcBangWnd(to, false, false);+       }++       public void addPcBangScore(int to)+       {+           pcBangPoint += to;+       }++       public void updatePcBangWnd(int score, boolean add, boolean duble)+       {+           ExPCCafePointInfo wnd = new ExPCCafePointInfo(this, score, add, 24, duble);+           sendPacket(wnd);+       }++       public void showPcBangWindow()+       {+           ExPCCafePointInfo wnd = new ExPCCafePointInfo(this, 0, false, 24, false);+           sendPacket(wnd);+       } }Index: /Gs folder/java/net/sf/l2j/gameserver/GameServer.java===================================================================--- /Gs folder/java/net/sf/l2j/gameserver/GameServer.java (revision 1999)+++ /Gs folder/java/net/sf/l2j/gameserver/GameServer.java (revision 2031)@@ -24,7 +24,9 @@ import java.util.logging.Logger; +import l2justice.com.gameserver.PcPoint; import l2justice.com.gameserver.ai.special.manager.AILoader; import l2justice.com.gameserver.powerpak.PowerPak; import l2justice.com.gameserver.util.sql.SQLQueue;+  import org.mmocore.network.*; @@ -575,4 +572,9 @@        {            OnlinePlayers.getInstance();+       }+       if(Config.PCB_ENABLE)+       {+           System.out.println("############PCB_ENABLE################");+           ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(PcPoint.getInstance(), Config.PCB_INTERVAL * 1000, Config.PCB_INTERVAL * 1000);        }        Util.printSection("L2JJustice EventManager");@@ -612,4 +614,5 @@        // Initialize config        Config.load();+       Config.loadPCBPointConfig();        ExternalConfig.loadconfig();        gameServer = new GameServer();Index: /Gs folder/java/config/Custom/pcBang.properties===================================================================--- /Gs folder/java/config/Custom/pcBang.properties (revision 2031)+++ /Gs folder/java/config/Custom/pcBang.properties (revision 2031)@@ -0,0 +1,17 @@                            +#============================================================#+# PC Bang Point                                        -#+#-------------------------------------------------------------#+BangPointEnable = True++cBangPointMinLevel = 20++PcBangPointMinCount = 20+PcBangPointMaxCount = 1000000++PcBangPointDualChance = 20++PcBangPointTimeStamp = 900 
pipiou211
Posts: 3
Joined: Thu Feb 18, 2010 11:06 pm

Re: [Help]About PC Bang System MultiSell

Post by pipiou211 »

OK Guys... you have to just use a "negative" number for the pc bang points... (-100 for me).. and it works great... just do it with negative number... not with common multisell number..
Post Reply