Здравствуйте, гость ( Вход | Регистрация )

Навигация

Ссылки форума

Навигация по форуму

> Читать всем.

Правила общения в данном разделе.

Данный раздел является "свободным" для общения, но данные правила поведения предупреждают о некоторых пунктах, которые запрещено упоминать / создавать темы касательно запрещенных пунктов.

1.) Запрещено создавать темы любого рекламного характера

2.) Запрещено также создавать темы оскорбительного характера направленного, как в сторону администрации, так и в сторону рядовых пользователей.

3.) Администрация не приемлет призывов на взлом сайтов/аккаунтов/серверов пользователей или других членов интернет сообщества.

4.) Запрещены темы которые касаются создания сервера Lineage2, для этого существуют другие форумы или разделы.

Правила могут изменятся любым Главным Администратором без предварительного уведомления сообщества.

Блокировка происходит любым свободным членом Администрации сообщества La2base.ru по общим правилам форума и соответственным пунктам.


[core][question] Несколько вопросов, L2jOfficial
Nice42ru
сообщение 27.8.2009, 11:08
Сообщение #1



Умелец
Группа: Advanced Members
Сообщений: 244
Регистрация: 7.3.2009
Поблагодарили: 84 *


Всем доброго времени суток!
Есть несколько вопросов по редактированию ядра сервера.
Сборка L2jOfficial ~1000 ривизия.
Меня интересуют следующие вопросы:
1. Как сделать команды “.mbuff” “.fbuff” (mbuff – для мага, fbuff- для воина) чтобы когда игрок писал эти команды на него сразу же бесплатно накладывались определённые заклинания которые я напишу.
2. Можно ли это (см. ниже) переделать под сборку L2jOfficial? Тк у меня не получается в некоторых местах.

Раскрывающийся текст

Цитата(Wh1tePower @ 23.1.2009, 15:49) *
Геройское свечение за PVP

Примечание: Это не будет давать геройские скиллы или давать возможность покупать геройское оружие,только ауру(свечение).

Код
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java   (revision 1901)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java   (working copy)
@@ -488,6 +488,11 @@

    private boolean _noble = false;
    private boolean _hero = false;
+  
+   /** Special hero aura values */
+   private int heroConsecutiveKillCount = 0;
+   private boolean isPermaHero = false;
+   private boolean isPVPHero = false;

    /** The L2FolkInstance corresponding to the last Folk wich one the player talked. */
    private L2FolkInstance _lastFolkNpc = null;
@@ -1971,6 +1976,13 @@
    public void setPvpKills(int pvpKills)
    {
       _pvpKills = pvpKills;
+      
+      // Set hero aura if pvp kills > 100
+      if (pvpKills > 100)
+      {
+         isPermaHero = true;
+         setHeroAura(true);
+      }
    }

    /**
@@ -4678,6 +4690,14 @@

       stopRentPet();
       stopWaterTask();
+      
+      // Remove kill count for special hero aura if total pvp < 100
+      heroConsecutiveKillCount = 0;
+      if (!isPermaHero)
+      {
+         setHeroAura(false);
+         sendPacket(new UserInfo(this));
+      }
       return true;
    }

@@ -4897,6 +4917,13 @@
     {
         // Add karma to attacker and increase its PK counter
         setPvpKills(getPvpKills() + 1);
+        
+        // Increase the kill count for a special hero aura
+        heroConsecutiveKillCount++;
+        
+        // If heroConsecutiveKillCount > 4 (5+ kills) give hero aura
+        if(heroConsecutiveKillCount > 4)
+           setHeroAura(true);

         // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
         sendPacket(new UserInfo(this));
@@ -8715,6 +8742,22 @@
    {
       return _blockList;
    }
+  
+   public void reloadPVPHeroAura()
+   {
+      sendPacket(new UserInfo(this));
+   }
+  
+   public void setHeroAura (boolean heroAura)
+   {
+      isPVPHero = heroAura;
+      return;
+   }
+  
+   public boolean getIsPVPHero()
+   {
+      return isPVPHero;
+   }

    public void setHero(boolean hero)
    {
Index: java/net/sf/l2j/gameserver/serverpackets/UserInfo.java
===================================================================
--- java/net/sf/l2j/gameserver/serverpackets/UserInfo.java   (revision 1901)
+++ java/net/sf/l2j/gameserver/serverpackets/UserInfo.java   (working copy)
@@ -337,7 +337,7 @@

         writeD(_activeChar.getClanCrestLargeId());
         writeC(_activeChar.isNoble() ? 1 : 0); //0x01: symbol on char menu ctrl+I
-        writeC((_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA)) ? 1 : 0); //0x01: Hero Aura
+        writeC((_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) || _activeChar.getIsPVPHero()) ? 1 : 0); //0x01: Hero Aura

         writeC(_activeChar.isFishing() ? 1 : 0); //Fishing Mode
         writeD(_activeChar.getFishx()); //fishing x


© BrainFucker - Взято с АЧ



Цитата(Wh1tePower @ 23.1.2009, 4:20) *
Вещь для получения геройства после рестарта

По адресу net.sf.l2j.gameserver.handler.itemhandlers создаем новый файл под названием HeroItem.java
Код
/*
* 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/>.
*/
package net.sf.l2j.gameserver.handler.itemhandlers;

import net.sf.l2j.gameserver.handler.IItemHandler;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;


/**
*
* @author  HanWik
*/
public class HeroItem implements IItemHandler
{
   private static final int[] ITEM_IDS = { YOUR ITEM ID - replace here };

   public void useItem(L2PlayableInstance playable, L2ItemInstance item)
   {
      if (!(playable instanceof L2PcInstance))
         return;
      L2PcInstance activeChar = (L2PcInstance)playable;
       int itemId = item.getItemId();
      
       if (itemId = Айди вашей вещи здесь!) // Вещь что бы стать героем
       {
          activeChar.setHero(true);
          activeChar.broadcastUserInfo();
       }
   }
  
   /**
    * @see net.sf.l2j.gameserver.handler.IItemHandler#getItemIds()
    */
   public int[] getItemIds()
   {
      return ITEM_IDS;
   }
}

Открываем GameServer.java и добавляем это :
Код
import net.sf.l2j.gameserver.handler.itemhandlers.Harvester;
на
import net.sf.l2j.gameserver.handler.itemhandlers.HeroItem;
import net.sf.l2j.gameserver.handler.itemhandlers.Maps;


Код
_itemHandler.registerItemHandler(new BeastSpice());
    на  _itemHandler.registerItemHandler(new HeroItem());


© BrainFucker - Взято с АЧ


Цитата(XOXOJI @ 12.3.2009, 12:29) *
для начала sql

у кого л2жфри меняйте com\l2jarchid на net\sf\l2j\

в com\l2jarchid\gameserver\datatables\ArmorSetsTable.java

Код
private void loadData()
    {
        Connection con;
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("SELECT chest, legs, head, gloves, feet, skill_id, shield, shield_skill_id, enchant6skill, aurahero FROM armorsets");
            ResultSet rset = statement.executeQuery();

            while(rset.next())
            {
                int chest = rset.getInt("chest");
                int legs  = rset.getInt("legs");
                int head  = rset.getInt("head");
                int gloves = rset.getInt("gloves");
                int feet  = rset.getInt("feet");
                int skill_id = rset.getInt("skill_id");
                int shield = rset.getInt("shield");
                int shield_skill_id = rset.getInt("shield_skill_id");
                int enchant6skill = rset.getInt("enchant6skill");
                _armorSets.put(chest, new L2ArmorSet(chest, legs, head, gloves, feet,skill_id, shield, shield_skill_id, enchant6skill));
            }
            _log.config("ArmorSetsTable: Loaded "+_armorSets.size()+" armor sets.");



меняем


Код
private void loadData()
    {
        Connection con;
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("SELECT chest, legs, head, gloves, feet, skill_id, shield, shield_skill_id, enchant6skill, aurahero FROM armorsets");
            ResultSet rset = statement.executeQuery();

            while(rset.next())
            {
                int chest = rset.getInt("chest");
                int legs  = rset.getInt("legs");
                int head  = rset.getInt("head");
                int gloves = rset.getInt("gloves");
                int feet  = rset.getInt("feet");
                int skill_id = rset.getInt("skill_id");
                int shield = rset.getInt("shield");
                int shield_skill_id = rset.getInt("shield_skill_id");
                int enchant6skill = rset.getInt("enchant6skill");
[b]                int aurahero = rset.getInt("aurahero");[/b]
                _armorSets.put(chest, new L2ArmorSet(chest, legs, head, gloves, feet,skill_id, shield, shield_skill_id, enchant6skill, [b]aurahero[/b]));
            }
            _log.config("ArmorSetsTable: Loaded "+_armorSets.size()+" armor sets.");


далее файл com\l2jarchid\gameserver\model\L2ArmoSet.java



Код
public final class L2ArmorSet
{
    private final int _chest;
    private final int _legs;
    private final int _head;
    private final int _gloves;
    private final int _feet;
    private final int _skillId;

    private final int _shield;
    private final int _shieldSkillId;

    private final int _enchant6Skill;

    public L2ArmorSet(int chest, int legs, int head, int gloves, int feet, int skill_id, int shield, int shield_skill_id, int enchant6skill)
    {
        _chest = chest;
        _legs  = legs;
        _head  = head;
        _gloves = gloves;
        _feet  = feet;
        _skillId = skill_id;

        _shield = shield;
        _shieldSkillId = shield_skill_id;

        _enchant6Skill = enchant6skill;
    }


Добавляем



после


Код
public int getEnchant6skillId()
    {
        return _enchant6Skill;
    }

добавляем

    public int getauraHero()
    {
        return _auraHero;
    }


следующий файл com\l2jarchid\gameserver\model\L2ArmoSet.java


Код
if(armorSet.containAll(player))
if(armorSet.containAll(player))
                {
                    L2Skill skill = SkillTable.getInstance().getInfo(armorSet.getSkillId(),1);
                    if(skill != null)
                    {
                                            
                                                player.addSkill(skill, false);
                        player.sendSkillList();

                    }
                    else



меняем





далее



Код
if(slot == PAPERDOLL_CHEST)
            {
                L2ArmorSet armorSet = ArmorSetsTable.getInstance().getSet(item.getItemId());
                if(armorSet == null)
                    return;
                
                remove = true;
                removeSkillId1 = armorSet.getSkillId();
                removeSkillId2 = armorSet.getShieldSkillId();
                removeSkillId3 = armorSet.getEnchant6skillId();
            }
            else
            {
                L2ItemInstance chestItem = getPaperdollItem(PAPERDOLL_CHEST);
                if(chestItem == null)
                    return;
                
                L2ArmorSet armorSet = ArmorSetsTable.getInstance().getSet(chestItem.getItemId());
                if(armorSet == null)
                    return;
                
                if(armorSet.containItem(slot, item.getItemId())) // removed part of set
                {
                    remove = true;
                    removeSkillId1 = armorSet.getSkillId();
                    removeSkillId2 = armorSet.getShieldSkillId();
                    removeSkillId3 = armorSet.getEnchant6skillId();
                }
                else if(armorSet.containShield(item.getItemId())) // removed shield
                {
                    remove = true;
                    removeSkillId2 = armorSet.getShieldSkillId();
                }
            }
            
            if(remove)





добавляем








далее файл com\l2jarchid\gameserver\model\actor\instance\L2PcInstance.java

ищем
Код
private boolean _noble = false;
    private boolean _hero = false;

добавляем
Код
private boolean _epic = false;



далее ищем

Код
public void setHero(boolean hero)
    {
        if (hero && _baseClass == _activeClass)
        {
            for (L2Skill s : HeroSkillTable.GetHeroSkills())
                addSkill(s, false); //Dont Save Hero skills to database
        }
        else
        {
            for (L2Skill s : HeroSkillTable.GetHeroSkills())
                super.removeSkill(s); //Just Remove skills from nonHero characters
        }
        _hero = hero;
        
        sendSkillList();
    }

после него добавляем
Код
public void setEpic(boolean epic)
    {
        if (epic)
        {
                sendMessage("Вы одели эпический сэт");
                      sendPacket(new UserInfo(this));
                broadcastUserInfo();
        }
        else
        {
                     sendPacket(new UserInfo(this));
                broadcastUserInfo();
        }
        _epic = epic;
        
    }



далее ищем

Код
public boolean isHero()
    {
        return _hero;
    }

добавляем

Код
public boolean isEpic()
    {
        return _epic;
    }




далее 2 файла пакетов

com\l2jarchid\gameserver\network\serverpackets\UserInfo.java
com\l2jarchid\gameserver\network\serverpackets\CharInfo.java


у обладателей других сборок файлы находятся

net\sf\l2j\gameserver\serverpackets\UserInfo.java
net\sf\l2j\gameserver\serverpackets\CharInfo.java


в обоих файлах ищем строку

Код
writeC((_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA)) ? 1 : 0); // Hero Aura


и заменяем на

Код
writeC((_activeChar.isHero() || (_activeChar.isEpic()) || (_activeChar.isGM() && Config.GM_HERO_AURA)) ? 1 : 0); //0x01: Hero Aura


в теории хватает записи только в юзеринфо, но иногда при одевании сэта аура появляется после любого последующего действия
в базе в таблице арморсетс в поле аурахеро ставьте 1 вместо 0 и ура! сэт светится



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nice42ru
сообщение 30.8.2009, 18:23
Сообщение #2



Умелец
Группа: Advanced Members
Сообщений: 244
Регистрация: 7.3.2009
Поблагодарили: 84 *


Пробывал вставить в VoicedCommandHandler.java ошибка при компиляции... Помогите очень прошу!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Nice42ru   [core][question] Несколько вопросов   27.8.2009, 11:08
- - AtomoS   Что в спойлере можно сделать, было бы желание... ...   27.8.2009, 11:13
- - Nice42ru   А куда это чудо вписывать то?   27.8.2009, 11:37
- - Nice42ru   АП   27.8.2009, 17:20
- - Nice42ru   АП   27.8.2009, 21:23
- - Nice42ru   Ап, незнаю куда это вставить!!! Помоги...   29.8.2009, 12:57
- - AtomoS   В исходники))   29.8.2009, 13:13
- - Nice42ru   ну это ясно что в исходниках а в какой именно файл...   29.8.2009, 16:12
|- - xNEROSx   Цитата(Nice42ru @ 29.8.2009, 14:17) ну эт...   29.8.2009, 16:18
- - Nice42ru   Раскрывающийся текстКод/* * This program is free ...   29.8.2009, 16:51
|- - xNEROSx   Цитата(Nice42ru @ 29.8.2009, 14:56) Раскр...   29.8.2009, 16:58
- - Nice42ru   Нужно тем который мне дали кодом заменить исходный...   29.8.2009, 16:59
- - Nice42ru   Я кидаю исходный код своего файла L2NpcBuffInstanc...   30.8.2009, 9:43
- - xNEROSx   приготовь и съешь называется... если не знаете jav...   30.8.2009, 10:20
- - Nice42ru   Ну если элементарно, то помоги пожалусйто, я спаси...   30.8.2009, 12:28
- - AtomoS   Nice42ru, лучше посиди и сам разберись...   30.8.2009, 12:52
- - Nice42ru   я сдесь чтобы получить ващей помощи, думаю для это...   30.8.2009, 12:56
- - Nice42ru   Подскажите куда это чудо вставить как подключить и...   30.8.2009, 18:06
- - Nice42ru   Подскажите пожалуйсто как подключить этот Buff.jav...   31.8.2009, 5:12
- - Nice42ru   Пробывал воткнуть код бафера в код Банкинг вот что...   31.8.2009, 6:04


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 13.7.2026, 12:52