Skip to content

Instantly share code, notes, and snippets.

@ChaosPaladin
Forked from kostantinos/3pcafecore.diff
Created January 26, 2016 12:14
Show Gist options
  • Save ChaosPaladin/e1df714b33bbf8fd1499 to your computer and use it in GitHub Desktop.
Save ChaosPaladin/e1df714b33bbf8fd1499 to your computer and use it in GitHub Desktop.
pc cafe core
### Eclipse Workspace Patch 1.0
#P L2J_Server_BETA
Index: java/com/l2jserver/gameserver/model/actor/L2Attackable.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/L2Attackable.java (revision 6477)
+++ java/com/l2jserver/gameserver/model/actor/L2Attackable.java (working copy)
@@ -40,6 +40,7 @@
import com.l2jserver.gameserver.enums.InstanceType;
import com.l2jserver.gameserver.enums.QuestEventType;
import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
+import com.l2jserver.gameserver.instancemanager.PcCafePointsManager;
import com.l2jserver.gameserver.instancemanager.WalkingManager;
import com.l2jserver.gameserver.model.AbsorberInfo;
import com.l2jserver.gameserver.model.AggroInfo;
@@ -527,6 +528,7 @@
if (addexp > 0)
{
attacker.updateVitalityPoints(getVitalityPoints(damage), true, false);
+ PcCafePointsManager.getInstance().givePcCafePoint((attacker), addexp);
}
}
}
Index: java/com/l2jserver/gameserver/GameServer.java
===================================================================
--- java/com/l2jserver/gameserver/GameServer.java (revision 6477)
+++ java/com/l2jserver/gameserver/GameServer.java (working copy)
@@ -115,6 +115,7 @@
import com.l2jserver.gameserver.instancemanager.MailManager;
import com.l2jserver.gameserver.instancemanager.MapRegionManager;
import com.l2jserver.gameserver.instancemanager.MercTicketManager;
+import com.l2jserver.gameserver.instancemanager.PcCafePointsManager;
import com.l2jserver.gameserver.instancemanager.PetitionManager;
import com.l2jserver.gameserver.instancemanager.PunishmentManager;
import com.l2jserver.gameserver.instancemanager.QuestManager;
@@ -300,6 +301,7 @@
TerritoryWarManager.getInstance();
CastleManorManager.getInstance();
MercTicketManager.getInstance();
+ PcCafePointsManager.getInstance();
ManorData.getInstance();
printSection("Olympiad");
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 6477)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -358,7 +358,7 @@
// 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,createDate) 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=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=? WHERE charId=?";
+ 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=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,pccafe_points=?,language=? WHERE charId=?";
private static final String RESTORE_CHARACTER = "SELECT * FROM characters WHERE charId=?";
// Character Teleport Bookmark:
@@ -390,6 +390,8 @@
public static final int REQUEST_TIMEOUT = 15;
+ private int _pcBangPoints = 0;
+
private static final List<HennaListener> HENNA_LISTENERS = new FastList<HennaListener>().shared();
private static final List<EquipmentListener> GLOBAL_EQUIPMENT_LISTENERS = new FastList<EquipmentListener>().shared();
private static final List<ProfessionChangeListener> GLOBAL_PROFESSION_CHANGE_LISTENERS = new FastList<ProfessionChangeListener>().shared();
@@ -7205,6 +7207,8 @@
// Set Teleport Bookmark Slot
player.setBookMarkSlot(rset.getInt("BookmarkSlot"));
+ player.setPcBangPoints(rset.getInt("pccafe_points"));
+
// character creation Time
player.getCreateDate().setTime(rset.getDate("createDate"));
@@ -7654,8 +7658,9 @@
statement.setLong(46, getDeathPenaltyBuffLevel());
statement.setInt(47, getBookMarkSlot());
statement.setInt(48, getVitalityPoints());
- statement.setString(49, getLang());
- statement.setInt(50, getObjectId());
+ statement.setInt(49, getPcBangPoints());
+ statement.setString(50, getLang());
+ statement.setInt(51, getObjectId());
statement.execute();
}
@@ -13872,6 +13877,24 @@
_offlineShopStart = time;
}
+ public int getPcBangPoints()
+ {
+ return _pcBangPoints;
+
+ }
+
+ public void setPcBangPoints(final int i)
+ {
+ if (i < 200000)
+ {
+ _pcBangPoints = i;
+ }
+ else
+ {
+ _pcBangPoints = 200000;
+ }
+ }
+
/**
* Remove player from BossZones (used on char logout/exit)
*/
Index: java/com/l2jserver/Config.java
===================================================================
--- java/com/l2jserver/Config.java (revision 6477)
+++ java/com/l2jserver/Config.java (working copy)
@@ -104,6 +104,8 @@
public static final String CHAT_FILTER_FILE = "./config/chatfilter.txt";
public static final String EMAIL_CONFIG_FILE = "./config/Email.properties";
public static final String CH_SIEGE_FILE = "./config/ConquerableHallSiege.properties";
+ public static final String CUSTOM_CONFIG_FILE = "./config/Custom.properties";
+
// --------------------------------------------------
// L2J Variable Definitions
// --------------------------------------------------
@@ -418,6 +420,16 @@
public static boolean ALLOW_WYVERN_DURING_SIEGE;
// --------------------------------------------------
+ // Custom points
+ // --------------------------------------------------
+ public static boolean PC_BANG_ENABLED;
+ public static int MAX_PC_BANG_POINTS;
+ public static boolean ENABLE_DOUBLE_PC_BANG_POINTS;
+ public static int DOUBLE_PC_BANG_POINTS_CHANCE;
+ public static double PC_BANG_POINT_RATE;
+ public static boolean RANDOM_PC_BANG_POINT;
+
+ // --------------------------------------------------
// General Settings
// --------------------------------------------------
public static boolean EVERYBODY_HAS_ADMIN_RIGHTS;
@@ -2250,6 +2262,27 @@
}
}
+ // Load Custom L2Properties file (if exists)
+ final PropertiesParser CustomSettings = new PropertiesParser(CUSTOM_CONFIG_FILE);
+
+ PC_BANG_ENABLED = CustomSettings.getBoolean("Enabled", false);
+ MAX_PC_BANG_POINTS = CustomSettings.getInt("MaxPcBangPoints", 200000);
+ if (MAX_PC_BANG_POINTS < 0)
+ {
+ MAX_PC_BANG_POINTS = 0;
+ }
+ ENABLE_DOUBLE_PC_BANG_POINTS = CustomSettings.getBoolean("DoublingAcquisitionPoints", false);
+ DOUBLE_PC_BANG_POINTS_CHANCE = CustomSettings.getInt("DoublingAcquisitionPointsChance", 1);
+ if ((DOUBLE_PC_BANG_POINTS_CHANCE < 0) || (DOUBLE_PC_BANG_POINTS_CHANCE > 100))
+ {
+ DOUBLE_PC_BANG_POINTS_CHANCE = 1;
+ }
+ PC_BANG_POINT_RATE = CustomSettings.getDouble("AcquisitionPointsRate", 1.0);
+ if (PC_BANG_POINT_RATE < 0)
+ {
+ PC_BANG_POINT_RATE = 1;
+ }
+
// Load L2JMod L2Properties file (if exists)
final PropertiesParser L2JModSettings = new PropertiesParser(L2JMOD_CONFIG_FILE);
Index: java/com/l2jserver/gameserver/model/L2Party.java
===================================================================
--- java/com/l2jserver/gameserver/model/L2Party.java (revision 6477)
+++ java/com/l2jserver/gameserver/model/L2Party.java (working copy)
@@ -33,6 +33,7 @@
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.instancemanager.DuelManager;
+import com.l2jserver.gameserver.instancemanager.PcCafePointsManager;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
@@ -776,6 +777,7 @@
if (addexp > 0)
{
member.updateVitalityPoints(vitalityPoints, true, false);
+ PcCafePointsManager.getInstance().givePcCafePoint((member), addexp);
}
}
else
Index: java/com/l2jserver/gameserver/datatables/MultisellData.java
===================================================================
--- java/com/l2jserver/gameserver/datatables/MultisellData.java (revision 6477)
+++ java/com/l2jserver/gameserver/datatables/MultisellData.java (working copy)
@@ -38,6 +38,7 @@
import com.l2jserver.gameserver.model.multisell.PreparedListContainer;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
+import com.l2jserver.gameserver.network.serverpackets.ExPCCafePointInfo;
import com.l2jserver.gameserver.network.serverpackets.MultiSellList;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.network.serverpackets.UserInfo;
@@ -279,6 +280,13 @@
{
switch (id)
{
+ case PC_BANG_POINTS:
+ if (player.getPcBangPoints() < amount)
+ {
+ player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SHORT_OF_ACCUMULATED_POINTS));
+ break;
+ }
+ return true;
case CLAN_REPUTATION:
if (player.getClan() == null)
{
@@ -311,6 +319,14 @@
{
switch (id)
{
+ case PC_BANG_POINTS: // PcBang points
+ final int cost = player.getPcBangPoints() - (int) (amount);
+ player.setPcBangPoints(cost);
+ SystemMessage smsgpc = SystemMessage.getSystemMessage(SystemMessageId.USING_S1_PCPOINT);
+ smsgpc.addLong((int) amount);
+ player.sendPacket(smsgpc);
+ player.sendPacket(new ExPCCafePointInfo(player.getPcBangPoints(), (int) amount, 1));
+ return true;
case CLAN_REPUTATION:
player.getClan().takeReputationScore((int) amount, true);
SystemMessage smsg = SystemMessage.getSystemMessage(SystemMessageId.S1_DEDUCTED_FROM_CLAN_REP);
@@ -373,6 +389,7 @@
{
switch (ing.getItemId())
{
+ case PC_BANG_POINTS:
case CLAN_REPUTATION:
case FAME:
return true;
Index: java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (revision 6477)
+++ java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (working copy)
@@ -72,6 +72,7 @@
import com.l2jserver.gameserver.network.serverpackets.ExNevitAdventTimeChange;
import com.l2jserver.gameserver.network.serverpackets.ExNoticePostArrived;
import com.l2jserver.gameserver.network.serverpackets.ExNotifyPremiumItem;
+import com.l2jserver.gameserver.network.serverpackets.ExPCCafePointInfo;
import com.l2jserver.gameserver.network.serverpackets.ExShowContactList;
import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jserver.gameserver.network.serverpackets.ExStorageMaxCount;
@@ -427,6 +428,18 @@
activeChar.updateEffectIcons();
+ if (Config.PC_BANG_ENABLED)
+ {
+ if (activeChar.getPcBangPoints() > 0)
+ {
+ activeChar.sendPacket(new ExPCCafePointInfo(activeChar.getPcBangPoints(), 0, 1));
+ }
+ else
+ {
+ activeChar.sendPacket(new ExPCCafePointInfo());
+ }
+ }
+
activeChar.sendPacket(new EtcStatusUpdate(activeChar));
// Expand Skill
Index: java/com/l2jserver/gameserver/model/quest/QuestState.java
===================================================================
--- java/com/l2jserver/gameserver/model/quest/QuestState.java (revision 6477)
+++ java/com/l2jserver/gameserver/model/quest/QuestState.java (working copy)
@@ -27,10 +27,12 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.enums.QuestType;
+import com.l2jserver.gameserver.instancemanager.PcCafePointsManager;
import com.l2jserver.gameserver.instancemanager.QuestManager;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -792,6 +794,7 @@
public void addExpAndSp(int exp, int sp)
{
Quest.addExpAndSp(_player, exp, sp);
+ PcCafePointsManager.getInstance().givePcCafePoint(getPlayer(), (long) (exp * Config.RATE_QUEST_REWARD_XP));
}
/**
Index: java/com/l2jserver/gameserver/model/actor/instance/L2AdventurerInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2AdventurerInstance.java (revision 6477)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2AdventurerInstance.java (working copy)
@@ -18,6 +18,7 @@
*/
package com.l2jserver.gameserver.model.actor.instance;
+import com.l2jserver.Config;
import com.l2jserver.gameserver.enums.InstanceType;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
@@ -48,6 +49,10 @@
pom = npcId + "-" + val;
}
+ if (Config.PC_BANG_ENABLED)
+ {
+ return "data/html/adventurer_guildsman/" + pom + "-pcbangpoint.htm";
+ }
return "data/html/adventurer_guildsman/" + pom + ".htm";
}
}
\ No newline at end of file
Index: java/com/l2jserver/gameserver/instancemanager/PcCafePointsManager.java
===================================================================
--- java/com/l2jserver/gameserver/instancemanager/PcCafePointsManager.java (revision 0)
+++ java/com/l2jserver/gameserver/instancemanager/PcCafePointsManager.java (working copy)
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2004-2014 L2J Server
+ *
+ * This file is part of L2J Server.
+ *
+ * L2J Server is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J Server is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.instancemanager;
+
+import com.l2jserver.Config;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.base.ClassId;
+import com.l2jserver.gameserver.model.zone.ZoneId;
+import com.l2jserver.gameserver.network.SystemMessageId;
+import com.l2jserver.gameserver.network.serverpackets.ExPCCafePointInfo;
+import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
+import com.l2jserver.util.Rnd;
+
+public class PcCafePointsManager
+{
+ private static PcCafePointsManager _instance;
+
+ public static PcCafePointsManager getInstance()
+ {
+ if (_instance == null)
+ {
+ _instance = new PcCafePointsManager();
+ }
+ return _instance;
+ }
+
+ public PcCafePointsManager()
+ {
+ }
+
+ public void givePcCafePoint(final L2PcInstance player, final long givedexp)
+ {
+ if (!Config.PC_BANG_ENABLED)
+ {
+ return;
+ }
+
+ if (player.isInsideZone(ZoneId.PEACE) || player.isInsideZone(ZoneId.PVP) || player.isInsideZone(ZoneId.SIEGE) || (player.isOnlineInt() == 0) || player.isJailed())
+ {
+ return;
+ }
+
+ if (player.getPcBangPoints() >= Config.MAX_PC_BANG_POINTS)
+ {
+ final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_MAXMIMUM_ACCUMULATION_ALLOWED_OF_PC_CAFE_POINTS_HAS_BEEN_EXCEEDED);
+ player.sendPacket(sm);
+ return;
+ }
+ int _points = (int) (givedexp * 0.0001 * Config.PC_BANG_POINT_RATE);
+ if ((player.getActiveClass() == ClassId.archmage.getId()) || (player.getActiveClass() == ClassId.soultaker.getId()) || (player.getActiveClass() == ClassId.stormScreamer.getId()) || (player.getActiveClass() == ClassId.mysticMuse.getId()))
+ {
+ _points /= 2;
+ }
+
+ if (Config.RANDOM_PC_BANG_POINT)
+ {
+ _points = Rnd.get(_points / 2, _points);
+ }
+
+ @SuppressWarnings("unused")
+ boolean doublepoint = false;
+ SystemMessage sm = null;
+ if (_points > 0)
+ {
+ if (Config.ENABLE_DOUBLE_PC_BANG_POINTS && (Rnd.get(100) < Config.DOUBLE_PC_BANG_POINTS_CHANCE))
+ {
+ _points *= 2;
+ sm = SystemMessage.getSystemMessage(SystemMessageId.ACQUIRED_S1_PCPOINT_DOUBLE);
+ doublepoint = true;
+ }
+ else
+ {
+ sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S1_PC_CAFE_POINTS);
+ }
+ if ((player.getPcBangPoints() + _points) > Config.MAX_PC_BANG_POINTS)
+ {
+ _points = Config.MAX_PC_BANG_POINTS - player.getPcBangPoints();
+ }
+ sm.addLong(_points);
+ player.sendPacket(sm);
+ player.setPcBangPoints(player.getPcBangPoints() + _points);
+ player.sendPacket(new ExPCCafePointInfo(player.getPcBangPoints(), _points, 1));
+ }
+ }
+}
\ No newline at end of file
Index: java/com/l2jserver/gameserver/network/SystemMessageId.java
===================================================================
--- java/com/l2jserver/gameserver/network/SystemMessageId.java (revision 6477)
+++ java/com/l2jserver/gameserver/network/SystemMessageId.java (working copy)
@@ -13738,6 +13738,12 @@
public static final SystemMessageId YOU_CANNOT_REPORT_CHAR_AT_THIS_TIME_4;
/**
+ * ID: 2389<br>
+ * Message: The maximum accumulation allowed of PC cafe points has been exceeded. You can no longer acquire PC cafe points.
+ */
+ public static final SystemMessageId THE_MAXMIMUM_ACCUMULATION_ALLOWED_OF_PC_CAFE_POINTS_HAS_BEEN_EXCEEDED;
+
+ /**
* ID: 2390<br>
* Message: Your number of My Teleports slots has reached its maximum limit.
*/
@@ -13744,6 +13750,12 @@
public static final SystemMessageId YOUR_NUMBER_OF_MY_TELEPORTS_SLOTS_HAS_REACHED_ITS_MAXIMUM_LIMIT;
/**
+ * ID: 2393<br>
+ * Message: You have acquired $s1 PC Cafe points.
+ */
+ public static final SystemMessageId YOU_HAVE_ACQUIRED_S1_PC_CAFE_POINTS;
+
+ /**
* ID: 2396<br>
* Message: That pet/servitor skill cannot be used because it is recharging.
*/
@@ -17483,8 +17495,9 @@
YOU_CANNOT_REPORT_CHAR_AT_THIS_TIME_2 = new SystemMessageId(2381);
YOU_CANNOT_REPORT_CHAR_AT_THIS_TIME_3 = new SystemMessageId(2382);
YOU_CANNOT_REPORT_CHAR_AT_THIS_TIME_4 = new SystemMessageId(2383);
-
+ THE_MAXMIMUM_ACCUMULATION_ALLOWED_OF_PC_CAFE_POINTS_HAS_BEEN_EXCEEDED = new SystemMessageId(2389);
YOUR_NUMBER_OF_MY_TELEPORTS_SLOTS_HAS_REACHED_ITS_MAXIMUM_LIMIT = new SystemMessageId(2390);
+ YOU_HAVE_ACQUIRED_S1_PC_CAFE_POINTS = new SystemMessageId(2393);
PET_SKILL_CANNOT_BE_USED_RECHARCHING = new SystemMessageId(2396);
YOU_HAVE_NO_OPEN_MY_TELEPORTS_SLOTS = new SystemMessageId(2398);
C1_IS_ALREADY_REGISTERED_NON_CLASS_LIMITED_EVENT_TEAMS = new SystemMessageId(2440);
Index: dist/game/config/Custom.properties
===================================================================
--- dist/game/config/Custom.properties (revision 0)
+++ dist/game/config/Custom.properties (working copy)
@@ -0,0 +1,27 @@
+# ---------------------------------------------------------------------------
+# PC Bang Event
+# ---------------------------------------------------------------------------
+#PC Bang Event Enabled
+#PC BANG POINTS ID = -100
+Enabled = True
+
+#Max points that player may have
+#limited to int limit
+MaxPcBangPoints = 200000
+
+#Use random in rewarding with points
+#If enabled points will be random from points/2 to points
+AcquisitionPointsRandom = False
+
+#Creates a chance to aquire double point
+DoublingAcquisitionPoints = True
+
+#Double points chance
+#if DoublingAcquisitionPoints=True
+DoublingAcquisitionPointsChance = 1
+
+#PC Bang point rate
+#e.g. with 1.0 it's 10000 exp = 1 PC Bang point
+#2.0 - 10000 exp = 2 PC Bang points
+#0.5 - 5000 exp = 1 PC Bang point
+AcquisitionPointsRate = 1.0
\ No newline at end of file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment