Jump to content

Reborn12

VIP Member
  • Posts

    2,393
  • Credits

  • Joined

  • Last visited

  • Days Won

    19
  • Feedback

    100%

Posts posted by Reborn12

  1. Thank you sir for your awesome reply!

    About Lineage 2 gameplay I know 80% (I think).

    About Server Core I know 8% (or minus).

     

    About backdoors:

     

    I don't find too much information but I understand that backdoor it's a possible variable or function used to connect in the server as administrator (GM) independent of database setup, by a secondary port for sure.

    But if the "ADMIN" find the fake "Administrator" in the database and remove, when restart the server get access again by java files installed in the server that keep the information about the fake admin.

    So I suppose that is this occurence, but I am not finding at the source these informations or codes, and I know that have backdoors in L2 Tales source shared here (I am using just to study because I'll not open a shitty server, I'll study and buy a source from a serious guy).

     

    Maybe you can't understand what I mean in some words, please let me know if I am being understandable because I speak "self-learning" hahaha.

     

    Thank you

    Backdoored is somethink like this... http://i.imgur.com/zrFwcvz.png

    I found to reports

  2. Ωραίος ο baggos.Σκεφτόμουν κάτι σε mid/low rate server είτε interlude είτε Hi5 με μερικά custom events που θα κάνουμε μόνοι μας.Achievements/events για pvp ή exp ανάλογα με τα rates του server πάντα.Σε mid pvp events σε low exp events.Το αν θα ανοίξει ο server είναι λίγο ρίσκο αφού χρειαζόμαστε μηχανάκια και δεν νομίζω ότι τα λεφτά περισσεύουν dedicated.Καμιά ιδέα για Hi5 source υπάρχει;Χωρίς να μου πάρουν τα σόβρακα όμως ε; :P

    Το Sunrise καλό φαίνεται αλλά θέλει χρήμα για το source.

    Prwto vima einai na pareis mia apofasi..interlude i h5??gt to ena me to allo den exoune kamia sxesh...prwta perneis tn apofasi k meta dialegeis pack...oti pack kai na pareis thelei kalh douleia kalo balance kai etoimo pack na pareis pali thelei douleia oxi giasas pira pack dedicate thelw kai site...i anoigw tn deutera..
  3. Γεια χαρά σας MXC.Σκεφτόμουν μαζί με έναν φίλο να αρχίσουμε να δουλεύουμε πάνω σε έναν server.Είπε hi5,είπα interlude,παίξαμε λίγο ξύλο και όλα καλά μετά . :happyforever:

    Θέλω να ξέρω την γνώμη σας γιατί έχω καιρό να ασχοληθώ με τα projects που κυκλοφορούν και εδώ και 3ις μέρες τρέχω και δεν φτάνω.

    Αν υπάρχει κάποιο πιο stable project από τα άλλα θα ήθελα να το γράψετε σε comments από κάτω.Το Cronicle δεν μας νοιάζει πολύ αυτό που μας νοιάζει είναι να μην κάνουμε πολύ δουλειά για το τίποτα.(Ξέρω ότι δεν γίνετε Lineage 2 Server χωρίς πολύ δουλειά αλλά τουλάχιστον να πιάσει τόπο,να γίνει κάτι καλό,όχι να διορθώνω κώδικα και να πίνω φραπέ 24/7  :P )

    Ευχαριστώ εκ τον προτέρων.

    Acis me kleista ta matia..se interlude
  4. http://www.maxcheaters.com/topic/157044-versuvio-acis-buffer-by-kderd64/

    just build fails. i didnt find one i like just tried to add any.

    how do i spawn the one allready exists?

    whats the id?

    Create one new java file with name L2Buffer2Instance.java 

    and paste this 

    /*
     * This program 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 2, or (at your option)
     * any later version.
     *
     * This program 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, write to the Free Software
     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
     * 02111-1307, USA.
     *
     * http://www.gnu.org/copyleft/gpl.html
     */
    package net.sf.l2j.gameserver.model.actor.instance;
     
    import java.util.StringTokenizer;
     
    import net.sf.l2j.gameserver.ai.CtrlIntention;
    import net.sf.l2j.gameserver.datatables.SkillTable;
    import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
    import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
    import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
    import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
    import net.sf.l2j.gameserver.network.serverpackets.SocialAction;
    import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
    import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
    import net.sf.l2j.util.Rnd;
     
    /**
     * @author KDerD64
     */
    public final class L2Buffer2Instance extends L2NpcInstance
    {
    public L2Buffer2Instance(int objectId, NpcTemplate template)
    {
    super(objectId, template);
    }
     
    @Override
    public void onBypassFeedback(L2PcInstance player, String command)
    {
    StringTokenizer st = new StringTokenizer(command, " ");
    String actualCommand = st.nextToken();
     
    int buffid = 0;
    int bufflevel = 1;
    String nextWindow = null;
    if (st.countTokens() == 3)
    {
    buffid = Integer.valueOf(st.nextToken());
    bufflevel = Integer.valueOf(st.nextToken());
    nextWindow = st.nextToken();
    }
    else if (st.countTokens() == 1)
    buffid = Integer.valueOf(st.nextToken());
     
    if (actualCommand.equalsIgnoreCase("getbuff"))
    {
    if (buffid != 0)
    {
    MagicSkillUse mgc = new MagicSkillUse(this, player, buffid, bufflevel, -1, 0);
     
    SkillTable.getInstance().getInfo(buffid, bufflevel).getEffects(this, player);
    showMessageWindow(player);
    player.broadcastPacket(mgc);
    showChatWindow(player, nextWindow);
    }
    }
    else if (actualCommand.equalsIgnoreCase("restore"))
    {
    player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp());
    player.setCurrentCp(player.getMaxCp());
    showMessageWindow(player);
    }
    else if (actualCommand.equalsIgnoreCase("cancel"))
    {
    player.stopAllEffects();
    showMessageWindow(player);
    }
    else if (actualCommand.equalsIgnoreCase("figther"))
    {
    SkillTable.getInstance().getInfo(1243, 6).getEffects(this, player);
    SkillTable.getInstance().getInfo(1242, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(1240, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(1077, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(1068, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(1062, 2).getEffects(this, player);
    SkillTable.getInstance().getInfo(1048, 6).getEffects(this, player);
    SkillTable.getInstance().getInfo(1045, 6).getEffects(this, player);
    SkillTable.getInstance().getInfo(1040, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(1036, 2).getEffects(this, player);
    SkillTable.getInstance().getInfo(1035, 4).getEffects(this, player);
    SkillTable.getInstance().getInfo(1388, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(4402, 2).getEffects(this, player);
    SkillTable.getInstance().getInfo(4403, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(4404, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(4406, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(4405, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(1363, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(274, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(275, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(271, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(264, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(268, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(269, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(304, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(307, 1).getEffects(this, player); 
    SkillTable.getInstance().getInfo(4391, 2).getEffects(this, player);
    }
    else if (actualCommand.equalsIgnoreCase("mage"))
    {
    SkillTable.getInstance().getInfo(4400, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(4401, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(4391, 2).getEffects(this, player);
    SkillTable.getInstance().getInfo(4392, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(4394, 6).getEffects(this, player);
    SkillTable.getInstance().getInfo(4395, 6).getEffects(this, player);
    SkillTable.getInstance().getInfo(4396, 2).getEffects(this, player);
    SkillTable.getInstance().getInfo(4397, 2).getEffects(this, player);
    SkillTable.getInstance().getInfo(1389, 3).getEffects(this, player);
    SkillTable.getInstance().getInfo(273, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(276, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(365, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(268, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(270, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(304, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(305, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(307, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(311, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(349, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(1363, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(364, 1).getEffects(this, player);
    SkillTable.getInstance().getInfo(1303, 2).getEffects(this, player);
    SkillTable.getInstance().getInfo(1243, 6).getEffects(this, player); 
    SkillTable.getInstance().getInfo(1078, 6).getEffects(this, player);
    }
    else
    super.onBypassFeedback(player, command);
    }
     
    @Override
    public void onAction(L2PcInstance player)
    {
    if (this != player.getTarget())
    {
    player.setTarget(this);
    player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel()));
    player.sendPacket(new ValidateLocation(this));
    }
    else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false))
    {
    SocialAction sa = new SocialAction(this, Rnd.get(8));
    broadcastPacket(sa);
    player.setCurrentFolkNPC(this);
    showMessageWindow(player);
    player.sendPacket(ActionFailed.STATIC_PACKET);
    }
    else
    {
    player.getAI().setIntention(CtrlIntention.INTERACT, this);
    player.sendPacket(ActionFailed.STATIC_PACKET);
    }
    }
     
    private void showMessageWindow(L2PcInstance player)
    {
    String filename = "data/html/buffer/" + getNpcId() + ".htm";
     
    filename = getHtmlPath(getNpcId(), 0);
    NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
    html.setFile(filename);
    html.replace("%objectId%", String.valueOf(getObjectId()));
    html.replace("%npcname%", getName());
    player.sendPacket(html);
    }
     
    @Override
    public String getHtmlPath(int npcId, int val)
    {
    String pom = "";
    if (val == 0)
    pom = "" + npcId;
    else
    pom = npcId + "-" + val;
     
    return "data/html/buffer/" + pom + ".htm";
    }
    }
    
    

    then open eclipse go to net.sf.l2j.gameserver.model.actor.instance

    and paste this file there...

    now paste this npc into xml>>>npcs

    <npc id="50009" idTemplate="31324" name="AngelRafael" title="BUFFER">
    <set name="level" val="80"/>
    <set name="radius" val="8"/>
    <set name="height" val="23"/>
    <set name="rHand" val="0"/>
    <set name="lHand" val="0"/>
    <set name="type" val="L2Buffer2"/>
    <set name="exp" val="0"/>
    <set name="sp" val="0"/>
    <set name="hp" val="2444.46819"/>
    <set name="mp" val="1345.8"/>
    <set name="hpRegen" val="7.5"/>
    <set name="mpRegen" val="2.7"/>
    <set name="pAtk" val="688.86373"/>
    <set name="pDef" val="295.91597"/>
    <set name="mAtk" val="470.40463"/>
    <set name="mDef" val="216.53847"/>
    <set name="crit" val="4"/>
    <set name="atkSpd" val="253"/>
    <set name="str" val="40"/>
    <set name="int" val="21"/>
    <set name="dex" val="30"/>
    <set name="wit" val="20"/>
    <set name="con" val="43"/>
    <set name="men" val="20"/>
    <set name="corpseTime" val="7"/>
    <set name="walkSpd" val="50"/>
    <set name="runSpd" val="120"/>
    <set name="dropHerbGroup" val="0"/>
    <set name="attackRange" val="40"/>
    <ai type="default" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" canMove="true" seedable="false"/>
    <skills>
    <skill id="4045" level="1"/>
    <skill id="4416" level="18"/>
    </skills>
    </npc>
    
    

    The go to your server //spawn 50009 and Have Fun

  5. http://www.maxcheaters.com/topic/196065-show-hp-left-on-pvp-death/

    This Code was The problem on this LINE:

    // Add PvP point to attacker.
    setPvpKills(getPvpKills() + 1);
    + 
    +// Show HP PvP
    +if (Config.SHOW_HP_PVP)
    +     targetPlayer.sendPacket(new ExShowScreenMessage( getName() + " - HP: " + getCurrentShowHpPvp() + "/" + getMaxHp() , 4000, 0x02, true));
    +if (isPvpFarmZone())
     
     
    // Send UserInfo packet to attacker with its Karma and PK Counter
    
    

    Lock It Solved....

  6. lmao...

     

    Those are first lines.. Below you can find part about pvp, search for it.

    updatepvpstatus

    public void updatePvPStatus(L2Character target)
    {
    final L2PcInstance player = target.getActingPlayer();
    if (player == null)
    return;
     
    if (isInDuel() && player.getDuelId() == getDuelId())
    return;
     
    if ((!isInsideZone(ZoneId.PVP) || !target.isInsideZone(ZoneId.PVP)) && player.getKarma() == 0)
    {
    PvpFlagTaskManager.getInstance().add(this, checkIfPvP(player) ? Config.PVP_PVP_TIME : Config.PVP_NORMAL_TIME);
     
    if (getPvpFlag() == 0)
    updatePvPFlag(1);
    }
    }
    
    

    no idea more...i have added and one statisti wall from caparso:somethink wrong with updates with this??

     

    /*
     * This program 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 2, or (at your option)
     * any later version.
     *
     * This program 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, write to the Free Software
     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
     * 02111-1307, USA.
     *
     * http://www.gnu.org/copyleft/gpl.html
     */
    package net.sf.l2j.gameserver.model.actor.instance;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.StringTokenizer;
    import java.util.logging.Level;
     
    import net.sf.l2j.L2DatabaseFactory;
    import net.sf.l2j.gameserver.ThreadPoolManager;
    import net.sf.l2j.gameserver.cache.HtmCache;
    import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
    import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
     
    public class L2StatusInstance extends L2NpcInstance
        {
        
        private class PlayerInfo
            {
            public PlayerInfo(int pos,String n, int pvps, int pks ,int ontime, Boolean iso)
                {
                position = pos;
                Nick = n;
                pvpCount = pvps;
                pkCount = pks;
                onlineTime = ontime;
                isOnline = iso;
                }
            
            public int position;
            public String Nick;
            public int pvpCount;
            public int pkCount;
            public int onlineTime;
            public Boolean isOnline;
            }
        
        //delay interval (in minutes):
        private final int delayForCheck = 5;
        
        //number of players to be listed
        private int pvpListCount = 10;
        private int pkListCount = 10;
        private int onlineListCount = 10;
     
        
        private PlayerInfo [] topPvPList = new PlayerInfo [pvpListCount];
        private PlayerInfo [] topPkList = new PlayerInfo [pkListCount];
        private PlayerInfo [] topOnlineList = new PlayerInfo [onlineListCount];
        
        
        @SuppressWarnings("synthetic-access")
    public L2StatusInstance(int objectId, NpcTemplate template)
            {
            super(objectId, template);
            ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new RefreshAllLists(), 10000, delayForCheck * 60000);
            }
            
        private class RefreshAllLists implements Runnable
            {
            @Override
    @SuppressWarnings("synthetic-access")
    public void run()
                {
                ReloadData();
                }
            }
        
        private void ReloadData()
            {
            try (Connection con = L2DatabaseFactory.getInstance().getConnection())
                {
                PreparedStatement statement = con.prepareStatement("SELECT char_name, pvpkills, online FROM characters ORDER BY pvpkills DESC, char_name ASC LIMIT 10");
                ResultSet result = statement.executeQuery();
                
                //refreshing top pvp list
                int i = 0; //index of array
                
                while (result.next())
                    {
                    topPvPList[i] = new PlayerInfo(i+1,result.getString("char_name"),result.getInt("pvpkills"),0,0,result.getBoolean("online"));
                    i++;
                    }
                        
                //refreshing top pk list
                statement = con.prepareStatement("SELECT char_name, pkkills, online FROM characters ORDER BY pkkills DESC, char_name ASC LIMIT 10");
                result = statement.executeQuery();
                
                i = 0; //index of array
                while (result.next())
                    {
                    topPkList[i] = new PlayerInfo(i+1,result.getString("char_name"),0,result.getInt("pkkills"),0,result.getBoolean("online"));
                    i++;
                    }
                
                //refreshing top online list
                statement = con.prepareStatement("SELECT char_name, onlinetime, online FROM characters ORDER BY onlinetime DESC, char_name ASC LIMIT 10");
                result = statement.executeQuery();
                
                i = 0; //index of array
                while (result.next())
                    {
                    topOnlineList[i] = new PlayerInfo(i+1,result.getString("char_name"),0,0,result.getInt("onlinetime"),result.getBoolean("online"));
                    i++;
                    }
                
                result.close();
                statement.close();
               
                }
            catch (SQLException e)
                {
                _log.log(Level.WARNING, "ranking (status): could not load statistics informations" + e.getMessage(), e);
                }
            }
     
        @Override
        public void onSpawn()
            {
            ReloadData();
            }
     
        @Override
         public void showChatWindow(L2PcInstance player)
             {
            GeneratePvPList(player);
             }
        
        @Override
        public void onBypassFeedback(L2PcInstance player, String command)
            {
            StringTokenizer st = new StringTokenizer(command, " ");
            String currentCommand = st.nextToken();
        
            if (currentCommand.startsWith("pvplist"))
                {
                GeneratePvPList(player);
                }
     
            else if (currentCommand.startsWith("pklist"))
                {
                GeneratePKList(player);
                }
            else if (currentCommand.startsWith("onlinelist"))
                {
                GenerateOnlineList(player);
                }
                    
            super.onBypassFeedback(player, command);
            }
        
        private void GeneratePvPList(L2PcInstance p)
            {
            StringBuilder _PVPranking = new StringBuilder();
            for (PlayerInfo player : topPvPList)
                {
                if (player == null) break;
     
                _PVPranking.append("<table width=\"290\"><tr>");
                   _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>");        
                   _PVPranking.append("<td FIXWIDTH=\"17\" align=\"center\">"+player.position+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"158\" align=\"center\">"+player.Nick+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"90\" align=\"center\">"+player.pvpCount+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"50\" align=\"center\">"+((player.isOnline) ? "<font color=\"00FF00\">ON</font>" : "<font color=\"CC0000\">OFF</font>")+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>");
                   _PVPranking.append("</tr></table>");
                   _PVPranking.append("<img src=\"L2UI.Squaregray\" width=\"300\" height=\"1\">");
                }
            
               NpcHtmlMessage html = new NpcHtmlMessage(1);
            html.setFile(getHtmlPath(getNpcId(), 0));
            html.replace("%objectId%", getObjectId());
            html.replace("%pvplist%", _PVPranking.toString());
            p.sendPacket(html);
            }
        
        private void GeneratePKList(L2PcInstance p)
            {
            StringBuilder _PVPranking = new StringBuilder();
            for (PlayerInfo player : topPkList)
                {
                if (player == null) break;
        
                   _PVPranking.append("<table width=\"290\"><tr>");
                   _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>");        
                   _PVPranking.append("<td FIXWIDTH=\"17\" align=\"center\">"+player.position+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"158\" align=\"center\">"+player.Nick+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"90\" align=\"center\">"+player.pkCount+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"50\" align=\"center\">"+((player.isOnline) ? "<font color=\"00FF00\">ON</font>" : "<font color=\"CC0000\">OFF</font>")+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>");
                   _PVPranking.append("</tr></table>");
                   _PVPranking.append("<img src=\"L2UI.Squaregray\" width=\"300\" height=\"1\">");
                }
            
               NpcHtmlMessage html = new NpcHtmlMessage(1);
            html.setFile(getHtmlPath(getNpcId(), 2));
            html.replace("%objectId%", getObjectId());
            html.replace("%pklist%", _PVPranking.toString());
            p.sendPacket(html);
            }
        
        private void GenerateOnlineList(L2PcInstance p)
            {
            StringBuilder _PVPranking = new StringBuilder();
            for (PlayerInfo player : topOnlineList)
                {
                if (player == null) break;
            
                   _PVPranking.append("<table width=\"290\"><tr>");
                   _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>");        
                   _PVPranking.append("<td FIXWIDTH=\"17\" align=\"center\">"+player.position+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"158\" align=\"center\">"+player.Nick+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"90\" align=\"center\">"+ConverTime(player.onlineTime)+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"50\" align=\"center\">"+((player.isOnline) ? "<font color=\"00FF00\">ON</font>" : "<font color=\"CC0000\">OFF</font>")+"</td>");
                   _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>");
                   _PVPranking.append("</tr></table>");
                   _PVPranking.append("<img src=\"L2UI.Squaregray\" width=\"300\" height=\"1\">");
                }
            
               NpcHtmlMessage html = new NpcHtmlMessage(1);
            html.setFile(getHtmlPath(getNpcId(), 3));
            html.replace("%objectId%", getObjectId());
            html.replace("%onlinelist%", _PVPranking.toString());
            p.sendPacket(html);
            }
        
        private static String ConverTime(long seconds)
            {
            long remainder = seconds;
            int days = (int) remainder / (24*3600);
            remainder = remainder -(days * 3600 * 24);
        
            int hours = (int) (remainder / 3600);
            remainder = remainder -(hours * 3600);
           
            int minutes = (int) (remainder / 60);
            remainder = remainder -(hours * 60);
     
            seconds = remainder;
        
            String timeInText = "";
        
            if (days > 0)
                timeInText = days+"<font color=\"LEVEL\">D</font> ";
            if (hours > 0)
                timeInText = timeInText+ hours+"<font color=\"LEVEL\">H</font> ";
            if (minutes >0)
                timeInText = timeInText+ minutes+"<font color=\"LEVEL\">M</font>";
              
            if (timeInText=="")
                {
                if(seconds>0)
                    {
                    timeInText = seconds+"<font color=\"LEVEL\">S</font>";
                    }
                else
                    {
                    timeInText = "N/A";
                    }
                }
            return timeInText;
            }
        
        @Override
        public String getHtmlPath(int npcId, int val)
            {
            String filename;
            
            if (val == 0)
                filename = "data/html/Status/" + npcId + ".htm";
            else
                filename = "data/html/Status/" + npcId + "-" + val + ".htm";
            
            if (HtmCache.getInstance().isLoadable(filename))
                return filename;
            
            return "data/html/Status/" + npcId + ".htm";
            }
        }
    
  7. Check the method in L2PcInstance that increases the pvp score... I think it is like increasepvpscore or something like that

     

    onKillUpdatePvpKarma actually.

    /**
    * This method is used to update PvP counter, or PK counter / add Karma if necessary.<br>
    * It also updates clan kills/deaths counters on siege.
    * @param target The L2Playable victim.
    */
    public void onKillUpdatePvPKarma(L2Playable target)
    {
    if (target == null)
    return;
     
    final L2PcInstance targetPlayer = target.getActingPlayer();
    if (targetPlayer == null || targetPlayer == this)
    return;
    
    

    setpvpkills

     

    // Check if it's pvp (cases : regular, wars, victim is PKer)
    if (checkIfPvP(target) || (targetPlayer.getClan() != null && getClan() != null && getClan().isAtWarWith(targetPlayer.getClanId()) && targetPlayer.getClan().isAtWarWith(getClanId()) && targetPlayer.getPledgeType() != L2Clan.SUBUNIT_ACADEMY && getPledgeType() != L2Clan.SUBUNIT_ACADEMY) || (targetPlayer.getKarma() > 0 && Config.KARMA_AWARD_PK_KILL))
    {
    if (target instanceof L2PcInstance)
    {
    // Add PvP point to attacker.
    setPvpKills(getPvpKills() + 1);
     
    // Show HP PvP
    if (Config.SHOW_HP_PVP)
                          targetPlayer.sendPacket(new ExShowScreenMessage( getName() + " - HP: " + getCurrentShowHpPvp() + "/" + getMaxHp() , 4000, 0x02, true));
    if (isPvpFarmZone())
     
     
    // Send UserInfo packet to attacker with its Karma and PK Counter
    sendPacket(new UserInfo(this));
    }
    }
    
  8. 
    <?xml version='1.0' encoding='utf-8'?>
    <list>
    <item id="14640" type="Weapon" name="FWDemonic Agony Splitter">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='281' order='0x08' stat='pAtk'/>
        <set val='145' order='0x08' stat='mAtk'/>
        <set val='12' order='0x08' stat='rCrit'/>
        <add val='-3' order='0x10' stat='accCombat'/>
        <set val='433' order='0x08' stat='pAtkSpd'/>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
    </for>
    </item>
    <item id="14641" type="Weapon" name="FWDemonic Corpse Impaler">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='309' order='0x08' stat='pAtk'/>
        <set val='145' order='0x08' stat='mAtk'/>
        <set val='5' order='0x08' stat='rCrit'/>
        <add val='-3' order='0x10' stat='accCombat'/>
        <set val='325' order='0x08' stat='pAtkSpd'/>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
    </for>
    </item>
    <item id="14642" type="Weapon" name="FWDemonic Blood Seeker">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='281' order='0x08' stat='pAtk'/>
        <set val='145' order='0x08' stat='mAtk'/>
        <set val='4' order='0x08' stat='rCrit'/>
        <add val='4' order='0x10' stat='accCombat'/>
        <set val='325' order='0x08' stat='pAtkSpd'/>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
    </for>
    </item>
    <item id="14643" type="Weapon" name="FWDemonic Doom Bringer">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='342' order='0x08' stat='pAtk'/>
        <set val='145' order='0x08' stat='mAtk'/>
        <set val='8' order='0x08' stat='rCrit'/>
        <add val='0' order='0x10' stat='accCombat'/>
        <set val='325' order='0x08' stat='pAtkSpd'/>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
    </for>
    </item>
    <item id="14644" type="Weapon" name="FWDemonic Spirit Bow">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="BOW" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='581' order='0x08' stat='pAtk'/>
        <set val='145' order='0x08' stat='mAtk'/>
        <set val='12' order='0x08' stat='rCrit'/>
        <add val='-3' order='0x10' stat='accCombat'/>
        <set val='300' order='0x08' stat='pAtkSpd'/>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
        <!-- SA: Focus -->
        <add val='87' order='0x40' stat='rCrit'/>
    </for>
    </item>
    <item id="14645" type="Weapon" name="FWDemonic Soul Eater">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='342' order='0x08' stat='pAtk'/>
        <set val='145' order='0x08' stat='mAtk'/>
        <set val='5' order='0x08' stat='rCrit'/>
        <add val='0' order='0x10' stat='accCombat'/>
        <set val='379' order='0x08' stat='pAtkSpd'/>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
    </for>
    </item>
    <item id="14646" type="Weapon" name="FWDemonic Death Dealer">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='376' order='0x08' stat='pAtk'/>
        <set val='145' order='0x08' stat='mAtk'/>
        <set val='5' order='0x08' stat='rCrit'/>
        <add val='4' order='0x10' stat='accCombat'/>
        <set val='379' order='0x08' stat='pAtkSpd'/>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
    </for>
    </item>
    <item id="14647" type="Weapon" name="FWDemonic Tormenting Whisper">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='247' order='0x08' stat='pAtk'/>
        <set val='192' order='0x08' stat='mAtk'/>
        <set val='4' order='0x08' stat='rCrit'/>
        <add val='4' order='0x10' stat='accCombat'/>
        <set val='379' order='0x08' stat='pAtkSpd'/>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
        <!-- SA: Acumen -->
        <mul val='1.15' order='0x30' stat='mAtkSpd'/>
    </for>
    </item>
     <item id="14648" type="Weapon" name="FWDemonic Fates Redemption">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
        <set val='397' order='0x08' stat='pAtk'/>
        <set val='145' order='0x08' stat='mAtk'/>
        <set val='8' order='0x08' stat='rCrit'/>
        <add val='0' order='0x10' stat='accCombat'/>
        <set val='325' order='0x08' stat='pAtkSpd'/>
        <mul val='1.04' order='0x30' stat='pAtkSpd'>
          <and>
            <using slotitem="14648;14;4"/>
          </and>
        </mul>
        <enchant val='0' order='0x0C' stat='pAtk'/>
        <enchant val='0' order='0x0C' stat='mAtk'/>
    </for>
    </item>
    </list>
    
    

    i deleted the one i tried to fix.

    it just says item it does not exist

     

    are these just the req? xlm.anim.systextures.sytem? not sql?

     

    what is here the different from the first with another weapons??

    just add this line  <set name="weapon_type" val="SWORD" /> 

    change the weapon type with the weapons type Bow is already

  9. added in xml and cant find the item in l2...

    1rst you need to addapt this items for acis

    2nd use filed edit to add you items into client+systextures animations 

    i give you and examble for weapons

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Vesper Noble weapons on frozen interlude by WilliamFS -->
    <list>
    <item id="13511" type="Weapon" name="Vesper Noble Cutter">
    <set name="is_magical" val="true" />
    <set name="default_action" val="equip" />
    <set name="weapon_type" val="SWORD" />
    <set name="bodypart" val="rhand" />
    <set name="random_damage" val="10" />
    <set name="attack_range" val="40" />
    <set name="damage_range" val="0;0;40;120" />
    <set name="crystal_count" val="2160" />
    <set name="crystal_type" val="S" />
    <set name="material" val="ADAMANTAITE" />
    <set name="weight" val="840" />
    <set name="price" val="27000000" />
    <set name="soulshots" val="1" />
    <set name="spiritshots" val="1" />
    <for>
    <set order="0x08" stat="pAtk" val="396" />
    <set order="0x08" stat="mAtk" val="176" />
    <set order="0x08" stat="rCrit" val="8" />
    <set order="0x08" stat="pAtkSpd" val="379" />
    <enchant val="0" order="0x0C" stat="pAtk" />
    <enchant val="0" order="0x0C" stat="mAtk" />
    </for>
    </item>
    </List>
    
    

    Armors

    <?xml version='1.0' encoding='utf-8'?>
    <list>
    <item id="15606" type="Armor" name="Moirai Helmet">
    <set name="default_action" val="equip" />
    <set name="bodypart" val="head" />
    <set name="crystal_type" val="S" />
    <set name="crystal_count" val="268" />
    <set name="material" val="BONE" />
    <set name="weight" val="550" />
    <set name="price" val="7370000" />
    <for>
    <add order="0x10" stat="pDef" val="75" />
    <enchant order="0x0C" stat="pDef" val="0" />
    </for>
    </item>
    </List>
    
    

    You probably have only the stats

     

    <for>
    <add order="0x10" stat="pDef" val="75" />
    <enchant order="0x0C" stat="pDef" val="0" />
    </for>
    

     

    take a look and you will make it its easy..

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