Pc Bang очки ивент

Тема в разделе "Addition / Дополнения", создана пользователем MyltiqpRykT, 8 мар 2019.

  1. MyltiqpRykT

    MyltiqpRykT Участник

    Регистрация:
    30 окт 2018
    Сообщения:
    16
    Симпатии:
    23
    Skype:
    bystreamer
    Данный код для хроник Интерлюд заточенный под сборку L2j aCis rev 354
    Код:
    Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (revision 9)
    +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (working copy)
    @@ -164,6 +164,7 @@
     import net.sf.l2j.gameserver.network.serverpackets.ExFishingEnd;
     import net.sf.l2j.gameserver.network.serverpackets.ExFishingStart;
     import net.sf.l2j.gameserver.network.serverpackets.ExOlympiadMode;
    +import net.sf.l2j.gameserver.network.serverpackets.ExPCCafePointInfo;
     import net.sf.l2j.gameserver.network.serverpackets.ExSetCompassZoneCode;
     import net.sf.l2j.gameserver.network.serverpackets.ExStorageMaxCount;
     import net.sf.l2j.gameserver.network.serverpackets.FriendList;
    @@ -311,8 +312,8 @@
         private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?";
        
         private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,obj_Id,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,nobless,power_grade,last_recom_date) 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=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,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=?,death_penalty_level=? WHERE obj_id=?";
    -    private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level FROM characters WHERE obj_id=?";
    +    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=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,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=?,death_penalty_level=?,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, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,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 (?,?,?,?,?,?)";
    @@ -376,6 +377,8 @@
        
         private PcAppearance _appearance;
        
    +    private int pcBangPoint = 0;
    +
         private long _expBeforeDeath;
         private int _karma;
         private int _pvpKills;
    @@ -5324,6 +5327,8 @@
                     player.setOnlineTime(rset.getLong("onlinetime"));
                     player.setNoble(rset.getInt("nobless") == 1, false);
                    
    +                player.pcBangPoint = rset.getInt("pc_point");
    +
                     player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time"));
                     if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
                         player.setClanJoinExpiryTime(0);
    @@ -5747,7 +5752,8 @@
                 statement.setLong(47, getClanCreateExpiryTime());
                 statement.setString(48, getName());
                 statement.setLong(49, getDeathPenaltyBuffLevel());
    -            statement.setInt(50, getObjectId());
    +            statement.setInt(50, getPcBangScore());
    +            statement.setInt(51, getObjectId());
                
                 statement.execute();
                 statement.close();
    @@ -10564,4 +10570,33 @@
             teleToLocation(0, 0, 0, 0);
             sendMessage("Error with your coords, Please ask a GM for help!");
         }
    +   
    +    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);
    +    }
    +
     }
    \ No newline at end of file
    Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java    (revision 9)
    +++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java    (working copy)
    @@ -227,6 +227,8 @@
            
             activeChar.onPlayerEnter();
            
    +        activeChar.showPcBangWindow();
    +
             sendPacket(new SkillCoolTime(activeChar));
            
             // If player logs back in a stadium, port him in nearest town.
    Index: java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java    (revision 9)
    +++ java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java    (working copy)
    @@ -1,46 +1,75 @@
    -/*
    - * 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
    +/* 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.network.serverpackets;
     
    -/**
    - * Format: ch ddcdc
    - * @author KenM
    - */
    +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    +
     public class ExPCCafePointInfo extends L2GameServerPacket
     {
    -    private final int _score, _modify, _periodType, _remainingTime;
    -    private int _pointType = 0;
    +    private static final String _S__FE_31_EXPCCAFEPOINTINFO = "[S] FE:31 ExPCCafePointInfo";
    +    private L2PcInstance _character;
    +    private int m_AddPoint;
    +    private int m_PeriodType;
    +    private int RemainTime;
    +    private int PointType;
        
    -    public ExPCCafePointInfo(int score, int modify, boolean addPoint, boolean pointType, int remainingTime)
    +    public ExPCCafePointInfo(L2PcInstance user, int modify, boolean add, int hour, boolean _double)
         {
    -        _score = score;
    -        _modify = addPoint ? modify : modify * -1;
    -        _remainingTime = remainingTime;
    -        _pointType = addPoint ? (pointType ? 0 : 1) : 2;
    -        _periodType = 1; // get point time
    +        _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;
         }
    -   
    +
         @Override
         protected void writeImpl()
         {
             writeC(0xFE);
             writeH(0x31);
    -        writeD(_score);
    -        writeD(_modify);
    -        writeC(_periodType);
    -        writeD(_remainingTime);
    -        writeC(_pointType);
    +        writeD(_character.getPcBangScore());
    +        writeD(m_AddPoint);
    +        writeC(m_PeriodType);
    +        writeD(RemainTime);
    +        writeC(PointType);
    +    }
    +   
    +    @Override
    +    public String getType()
    +    {
    +        return _S__FE_31_EXPCCAFEPOINTINFO;
         }
     }
    \ No newline at end of file
    Index: java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java    (revision 0)
    +++ java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java    (revision 0)
    @@ -0,0 +1,58 @@
    +/*
    + * Copyright (C) 2004-2014 L2J DataPack
    + *
    + * This file is part of L2J DataPack.
    + *
    + * L2J DataPack 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 DataPack 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 net.sf.l2j.gameserver.scripting.scripts.custom;
    +
    +import net.sf.l2j.commons.random.Rnd;
    +import net.sf.l2j.gameserver.datatables.NpcTable;
    +import net.sf.l2j.gameserver.model.actor.L2Npc;
    +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    +import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
    +import net.sf.l2j.gameserver.scripting.Quest;
    +
    +public class PcPoint extends Quest
    +{   
    +    public PcPoint()
    +    {
    +        super(-1, "custom");
    +        for (NpcTemplate t : NpcTable.getInstance().getTemplates(t -> t.isType("L2Monster")))
    +        {
    +            addKillId(t.getIdTemplate());
    +        }
    +    }
    +   
    +    @Override
    +    public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
    +    {
    +        if ((killer.getLevel() >= 75) && (npc.getLevel() < 60))
    +        {
    +            return "";
    +        }
    +        int score = 0;
    +        score = Rnd.get(100, 250);
    +        killer.addPcBangScore(score);
    +        killer.updatePcBangWnd(score, true, false);
    +        return super.onKill(npc, killer, isPet);
    +    }
    +   
    +    public static void main(String[] arg)
    +    {
    +        new PcPoint();
    +    }
    +   
    +}
    \ No newline at end of file
    Код:
    Index: data/xml/scripts.xml
    ===================================================================
    --- data/xml/scripts.xml    (revision 9)
    +++ data/xml/scripts.xml    (working copy)
    @@ -361,7 +361,8 @@
         <script path="scripts.custom.NpcLocationInfo"/>
         <script path="scripts.custom.HeroCirclet"/>
         <script path="scripts.custom.HeroWeapon"/>
    -
    +    <script path="scripts.custom.PcPoint"/>
    +   
         <!-- Events -->
     
     <!--     <script path="scripts.events.GiftOfVitality"/> -->
    Код:
    Index: sql/characters.sql
    ===================================================================
    --- sql/characters.sql    (revision 9)
    +++ sql/characters.sql    (working copy)
    @@ -54,6 +54,7 @@
       `clan_join_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0,
       `clan_create_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0,
       `death_penalty_level` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
    +  `pc_point` int (1) NOT NULL DEFAULT 0,
       PRIMARY KEY (obj_Id),
       KEY `clanid` (`clanid`)
     );
    \ No newline at end of file
    Автор: Hi_Profile
     
    4ydo нравится это.

Партнеры