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

Now I can not check pvppoints in the game, so I do not know. (will add info about pvp points later)

Tried 10 times kill a player and in database stored only last points. that means points not add

  • 0
Posted

well, u dont need to add variables in realtime so it isnt a problem, just finish your code :)

  • 0
Posted

[pl]Vampir nie mam co teraz testować jak mi pvppoints nie zapisuje poprawnie w bazie punkty powinny się dodawać i według nich powinien wzrastać rank a jest tak ze jak zabije gracza i dostane 23 punkty to w bazie pokazuje 23 i jak drugi raz zabije gracza i dostane 21 punktów to pokazuje 21 a powinno sumować  i powinno być 44.

 

kill.setPvpPoints(kill.getPvpPoints() + pointsToAdd); z tego wynika ze problem jest z getPvpPoints() tak mi sie wydaje. [/pl]

  • 0
Posted

tu masz blad: player.setPvpPoints(rset.getInt("rank"));

ale nie w tym tkwi problem, kod wydaje sie w porzadku, takze jesli sie ma party, gosc dostanie punkty 2 razy, ale na prawde nie moge znalesc gdzie tkwi twoj problem. Opisz go bardziej, co dokladnie robisz, kiedy cos sprawdzasz, co wychodzi itd uzywaj tez logow bo bardzo sie przydaja

  • 0
Posted

changed [pl]zmienilem[/pl]

+			statement.setLong(53, getPvpPoints());
+			statement.setLong(54, getRank());

 

for [pl]na[/pl]

 

+			statement.setInt(53, getPvpPoints());
+			statement.setInt(54, getRank());

 

and writes to the db works and adds points, but a rank does not work, How do I get 25 000 pvpPoints should nick color Changes and db rank jump to 1, and this does not happen, tomorrow as I have time to even testing and see. btw I have a clean log any errors.

 

[pl]i dzialazapisuje do db i sumuje punkty ale za to rank nie dzialajak zdobede 25000 pvp points powinien kolor niku  sie zmienic i w db rank wskoczycna 1, a tak sie nie dzieje jutro jak bedemial czas to jeszcze potestuje i zobacze. btw logi mam czyste zadnych bledow.[/pl]

 

ps. also changed player.setPvpPoints(rset.getInt("rank"));  for player.setRank(rset.getInt("rank"));

[pl]ps. takze zmienilem player.setPvpPoints(rset.getInt("rank"));  na player.setRank(rset.getInt("rank"));[/pl]

  • 0
Posted

w L2PcInstance nie uzywaj getActingPlayer(). bo to nie potrzebne.

updateRank czyli ustawianie rangi i koloru nicku jest uruchamiane tylko przy zapisywaniu do bazy, wiec ranga zmieni sie jedynie gdy ktos sie wyloguje, dodaj to do increasePvPPoints czy cos takiego - czyli metody gdzie punkty pvp sie dodaja.

  • 0
Posted

Wlasnie nie, sprawdzalem na kilka sposobow i rank sie nie zmienia czy czekam 15 min czy sie przeloguje, poszperam jeszcze jakies cody z nameColor za pvp moze cos przeoczylem.

Guest
This topic is now closed to further replies.


  • Posts

    • I fixed it now my friends can join too, with what do you want help with? Also can you upload the interlude client of gx-ext for c4? just to have it because i deleted the rar i just have the folder
    • me ayudas a montar ese pack por que no entiendo tanto es para tener de prueba
    • GX-C4 pack, its ok...just used it.
    • This post originally appeared on MmoGah. Arena Breakout: Infinite is a hardcore tactical extraction shooter that demands precision, patience, and strategy. This guide will walk you through everything a beginner needs to know—from gear and combat to survival and extraction.     What Is Arena Breakout: Infinite? Arena Breakout: Infinite (ABI) is a free-to-play online extraction shooter developed by MoreFun Studios and released on Steam in September 2025. Unlike traditional battle royales, ABI focuses on risk vs. reward rather than being the last one standing. Players enter instanced maps called "raids," where they must scavenge loot, survive enemy encounters, and extract safely.   Core Gameplay Mechanics 1. Raids and Extraction Each raid features 4–6 teams (solo or squad) dropped into a map. The goal is to loot valuable items and extract through designated points. Extraction is not exclusive—multiple teams can leave the map alive. 2. PvPvE Combat You'll face both human players and AI enemies. AI can be unpredictable and deadly, especially in high-tier zones. 3. No Hand-Holding ABI offers no tutorials or guidance. You learn by dying—and surviving.   Gear and Loadouts 1. Choose Wisely Your gear determines your survivability. Armor, helmets, and medical supplies are essential. Weapons vary in recoil, damage, and handling. Start with low-cost rifles like the AKS-74U or MP5. 2. Insurance System You can insure gear to recover it if you die and it isn't looted. Use insurance for expensive items, but don't rely on it blindly. 3. Backpacks and Storage Larger backpacks allow more loot but make you a bigger target. Organize your inventory to quickly access meds and ammo during combat.   Tactical Tips for Beginners 1. Know What to Loot Prioritize high-value items like weapon parts, medical kits, and rare electronics. Learn loot hotspots on each map—warehouses, bunkers, and military zones often yield better gear. 2. Sound Is Everything Footsteps, gunfire, and reloads are loud. Use headphones and move cautiously. Crouch-walking and slow peeking reduce noise and improve stealth. 3. Map Knowledge Study maps offline or in low-risk raids. Learn extraction points, choke zones, and sniper nests. 4. Stamina Management Sprinting drains stamina, which affects aim and movement. Rest in safe zones and avoid overexertion during firefights.   Combat and Survival 1. Engage Smartly Don't chase kills—survival and extraction are the real goals. Use cover, lean mechanics, and suppressive fire to control fights. 2. Healing and Damage ABI features a detailed health system: limbs can be fractured, bleeding, or disabled. Carry splints, bandages, and painkillers. Know how to treat each condition. 3. Death Is a Lesson You will die—a lot. Use each death to learn positioning, gear value, and enemy behavior.   Progression and Economy 1. Free-to-Play Friendly ABI is generous with starter gear and daily rewards. You can earn the currency Arena Breakout: Infinite Koens through successful raids and selling loot. 2. Marketplace Trade gear with other players or sell to vendors. Prices fluctuate—learn market trends to maximize profit. 3. No Skill Trees Unlike similar games, ABI doesn't use operator skills. Progression is gear-based and tactical, not RPG-style.   Settings and Optimization 1. Graphics and Performance Lower shadows and post-processing for better visibility. Use high FPS settings for smoother combat. 2. Keybinds Customize controls for quick access to healing, leaning, and inventory. Practice muscle memory in offline raids. 3. Audio Settings Maximize footstep and gunfire volume. Reduce ambient noise to focus on threats.   Beginner Loadout Recommendation Slot Item Notes Primary Gun AKS-74U or MP5 Low recoil, easy to handle Secondary Pistol (optional) Backup for emergencies Armor Basic Vest Better than nothing Helmet Light Helmet Protects against headshots Backpack Medium Balance between space and size Meds Bandages, Splints Treat bleeding and fractures Ammo 2–3 extra mags Always reload before fights         Final Advice for New Players Start slow: Don't rush into high-tier zones. Learn the basics in low-risk areas. Play with friends: Squad play improves survival and makes learning easier. Watch and learn: Study streamers and guides to understand advanced tactics. Don't hoard: Use your gear. Hoarding leads to stagnation and fear of loss. Extract often: Surviving and extracting builds confidence and resources. Arena Breakout: Infinite is brutal, but deeply rewarding. With patience and practice, you'll evolve from a terrified scavenger to a confident operator. Every raid is a story—make yours one of survival and triumph.
  • Topics

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