Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Форум для новичков[JAVA]/[question]Ограничение на шмот
Search

[question]Ограничение на шмот

17 replies223 viewsCurrently viewing: 1
K
kr-aleksandr

User

Бывалый

Posts: 243

На форуме с: 04/17/2009

Репутация: +85

Рейтинг: 0

· 05/11/2009, 06:10 AM

Сборка: L2Emu 1519
Вопрос: Как сделать, чтобы определенный армор могла одевать только одна раса и не могла другая?

0
Давид
Давид

User

Бывалый

Posts: 282

На форуме с: 04/04/2008

Репутация: +213

Рейтинг: 0

· 05/11/2009, 06:14 AM

Эм.. все что я могу сказать,попробуй создай пасивку как Guilter Body (ну или как то так),эта которая у камаелей.
Был бы сервер,подсказал бы точнее..

0
-=[BloodKill]=-
-=[BloodKill]=-

User

Ветеран

Posts: 1355

На форуме с: 09/01/2008

Репутация: +1179

Рейтинг: 0

· 05/11/2009, 06:24 AM

Если вы хотите поставить запрет на ношение оружия или предметов (к примеру Дестр с луком) Вы можете юзать этот скрипт.
Вы должны вставить в network/clientpackets/UseItem.java следующие строки:

Код
f (item.isEquipable())
        {
            if (activeChar.isDisarmed())
                return;

            if (!((L2Equip) item.getItem()).allowEquip(activeChar))
            {
                activeChar.sendPacket(new SystemMessage(SystemMessageId.NO_CONDITION_TO_EQUIP));
                return;
            }

            //Begining the script
+            if (activeChar.getClassId().getId() == 88)
+            {
+                if (item.getItemType() == L2ArmorType.MAGIC)
+                {
+                    activeChar.sendPacket(new +SystemMessage(SystemMessageId.NO_CONDITION_TO_EQUIP));
+                    return;
+                }    
+            }


К примеру Глад и Роба Армор.
Если вы хотите зделать это с каким то оружием то поменяйте эту строку

Код
if (item.getItemType() == L2ArmorType.MAGIC)


на

Код
if (item.getItemType() == L2WeaponType.DAGGER)


the available class-ids and item types are listed below.

Что бы избежать юзанья бага с саб классом я использую этот скрип что бы обезвредить всё оружие и доспехи с заменой класса.
model/actor/instance/L2PcInstance.java

Код
/**
     * Changes the character's class based on the given class index.
     * <BR><BR>
     * An index of zero specifies the character's original (base) class,
     * while indexes 1-3 specifies the character's sub-classes respectively.
     *  
     * @param classIndex
     */
    public boolean setActiveClass(int classIndex)
    {
+        L2ItemInstance chest = getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST);
+        if (chest != null)
+        {
+            
+                L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(chest.getItem().getBodyPart());
+                InventoryUpdate iu = new InventoryUpdate();
+                for (L2ItemInstance element : unequipped)
+                    iu.addModifiedItem(element);
+                sendPacket(iu);
+            
+        }
+        
+        L2ItemInstance head = getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD);
+        if (head != null)
+        {
+            
+                L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(head.getItem().getBodyPart());
+                InventoryUpdate iu = new InventoryUpdate();
+                for (L2ItemInstance element : unequipped)
+                    iu.addModifiedItem(element);
+                sendPacket(iu);
+            
+        }
+        
+        L2ItemInstance gloves = getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES);
+        if (gloves != null)
+        {
+            
+                L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(gloves.getItem().getBodyPart());
+                InventoryUpdate iu = new InventoryUpdate();
+                for (L2ItemInstance element : unequipped)
+                    iu.addModifiedItem(element);
+                sendPacket(iu);
+            
+        }
+        
+        L2ItemInstance feet = getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET);
+        if (feet != null)
+        {
+            
+                L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(feet.getItem().getBodyPart());
+                InventoryUpdate iu = new InventoryUpdate();
+                for (L2ItemInstance element : unequipped)
+                    iu.addModifiedItem(element);
+                sendPacket(iu);
+            
+        }
+        
+        L2ItemInstance legs = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS);
+        if (legs != null)
+        {
+            
+                L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(legs.getItem().getBodyPart());
+                InventoryUpdate iu = new InventoryUpdate();
+                for (L2ItemInstance element : unequipped)
+                    iu.addModifiedItem(element);
+                sendPacket(iu);
+            
+        }
+        
+        L2ItemInstance rhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
+        if (rhand != null)
+        {
+            
+                L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(rhand.getItem().getBodyPart());
+                InventoryUpdate iu = new InventoryUpdate();
+                for (L2ItemInstance element : unequipped)
+                    iu.addModifiedItem(element);
+                sendPacket(iu);
+            
+        }
+        
+        L2ItemInstance lhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
+        if (lhand != null)
+        {
+            
+                L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(lhand.getItem().getBodyPart());
+                InventoryUpdate iu = new InventoryUpdate();
+                for (L2ItemInstance element : unequipped)
+                    iu.addModifiedItem(element);
+                sendPacket(iu);
+            
+        }



Что бы вам было проще:
Class ID-s: Item types
HUMANS
-- 0=Human Fighter | 1=Warrior | 2=Gladiator | 3=Warlord | 4=Human Knight
-- 5=Paladin | 6=Dark Avenger | 7=Rogue | 8=Treasure Hunter | 9=Hawkeye
-- 10=Human Mystic | 11=Wizard | 12=Sorcerer/ss | 13=Necromancer | 14=Warlock
-- 15=Cleric | 16=Bishop | 17=Prophet

-- ELVES
-- 18=Elven Fighter | 19=Elven Knight | 20=Temple Knight | 21=Swordsinger | 22=Elven Scout
-- 23=Plainswalker | 24=Silver Ranger | 25=Elven Mystic | 26=Elven Wizard | 27=Spellsinger
-- 28=Elemental Summoner | 29=Elven Oracle | 30=Elven Elder

-- DARK ELVES
-- 31=Dark Fighter | 32=Palus Knight | 33=Shillien Knight | 34=Bladedancer | 35=Assassin
-- 36=Abyss Walker | 37=Phantom Ranger | 38=Dark Mystic | 39=Dark Wizard | 40=Spellhowler
-- 41=Phantom Summoner | 42=Shillien Oracle | 43=Shillien Elder

-- ORCS
-- 44=Orc Fighter | 45=Orc Raider | 46=Destroyer | 47=Monk | 48=Tyrant
-- 49=Orc Mystic | 50=Orc Shaman | 51=Overlord | 52=Warcryer

-- DWARVES
-- 53=Dwarven Fighter | 54=Scavenger | 55=Bounty Hunter | 56=Artisan | 57=Warsmith

-- HUMANS 3rd Professions
-- 88=Duelist | 89=Dreadnought | 90=Phoenix Knight | 91=Hell Knight | 92=Sagittarius
-- 93=Adventurer | 94=Archmage | 95=Soultaker | 96=Arcana Lord | 97=Cardinal
-- 98=Hierophant

-- ELVES 3rd Professions
-- 99=Evas Templar | 100=Sword Muse | 101=Wind Rider | 102=Moonlight Sentinel
-- 103=Mystic Muse | 104=Elemental Master | 105=Evas Saint

-- DARK ELVES 3rd Professions
-- 106=Shillien Templar | 107=Spectral Dancer | 108=Ghost Hunter | 109=Ghost Sentinel
-- 110=Storm Screamer | 111=Spectral Master | 112=Shillien Saint

-- ORCS 3rd Professions
-- 113=Titan | 114=Grand Khavatari
-- 115=Dominator | 116=Doomcryer

-- DWARVES 3rd Professions
-- 117=Fortune Seeker | 118=Maestro

-- KAMAELS
-- 123=Male Soldier | 124=Female Soldier | 125=Trooper | 126=Warder
-- 127=Berserker | 128=Male Soul Breaker | 129=Female Soul Breaker | 130=Arbalester
-- 131=Doombringer | 132=Male Soul Hound | 133=Female Soul Hound | 134=Trickster
-- 135=Inspector | 136=Judicator -Weapons-
NONE (Shield)
SWORD
BLUNT
DAGGER
BOW
POLE
ETC
FIST
DUAL
DUALFIST
BIGSWORD (Two Handed Swords)
PET
ROD
BIGBLUNT (Two handed blunt)
ANCIENT_SWORD
CROSSBOW
RAPIER

-Armors-
HEAVY
LIGHT
MAGIC


Тестилось на L2JFree.

© BrainFucker - Взято с АЧ

— Оо

0
K
kr-aleksandr

User

Бывалый

Posts: 243

На форуме с: 04/17/2009

Репутация: +85

Рейтинг: 0

· 05/11/2009, 06:30 AM

Если так делать, то при смене сабкласса будет меняться и скилл, соответсственно можно будет надевать шмот другой расы.

Ето dav'у


Блудкилл, не то по этой же причине

0
St1ng3r
St1ng3r

User

Ветеран

Posts: 537

На форуме с: 02/05/2008

Репутация: +262

Рейтинг: 0

· 05/11/2009, 08:27 AM

kr-aleksandr: Если так делать, то при смене сабкласса будет меняться и скилл, соответсственно можно будет надевать шмот другой расы.

Ето dav'у


Блудкилл, не то по этой же причине

Блуд вобще-то дал тебе исходники ограничений, никаких скилов тут не используется, все на уровне ядра.

0
K
kr-aleksandr

User

Бывалый

Posts: 243

На форуме с: 04/17/2009

Репутация: +85

Рейтинг: 0

· 05/11/2009, 12:56 PM

Но смысл тот же. Или я чего то не понял?

0
St1ng3r
St1ng3r

User

Ветеран

Posts: 537

На форуме с: 02/05/2008

Репутация: +262

Рейтинг: 0

· 05/11/2009, 03:10 PM

Смысл таков, что в ядре создается правило, которое запрещает одевать определенный предмет определенному классу.

0
-=[BloodKill]=-
-=[BloodKill]=-

User

Ветеран

Posts: 1355

На форуме с: 09/01/2008

Репутация: +1179

Рейтинг: 0

· 05/11/2009, 05:17 PM

kr-aleksandr: Но смысл тот же. Или я чего то не понял?

Если через скилы,то будут баги

— Оо

0
Макс
Макс

User

Бывалый

Posts: 101

На форуме с: 01/11/2009

Репутация: +16

Рейтинг: 0

· 05/12/2009, 10:18 AM

это кстати описано в закрытой важной теме)

0
K
kr-aleksandr

User

Бывалый

Posts: 243

На форуме с: 04/17/2009

Репутация: +85

Рейтинг: 0

· 05/12/2009, 01:50 PM

Тоесть? Ссылку!

0
St1ng3r
St1ng3r

User

Ветеран

Posts: 537

На форуме с: 02/05/2008

Репутация: +262

Рейтинг: 0

· 05/12/2009, 02:22 PM

_http://la2base.ru/forum/index.php?showtopic=32781
0_о

0
M
Max

User

Участник

Posts: 45

На форуме с: 12/29/2008

Рейтинг: 0

· 05/12/2009, 03:53 PM

-=[BloodKill]=-
помоги плизик оч прошу, дай мне етот файл UserInfo.class, и пожалуста прогу чтоб открывать .class файлы, уменя есть но когда я открываю и сохраняю то получаетса .java, я потом тут спросил на форуме, мне дали код, который декомпилит обратно в формат .class, но когда я ето делаю мне все время кидает ошыбку, народ я уже хочу етому научитса почти месец, немогу норм проги найти, если укогото будет свободное время зделайте плиз мануальчик (видио) я оч прошу, так как не только мне он опригодитса, многие хотят научитса ядро редактировать. НАСТАВЛЮ 10000000000000000000000000000 спасибок.

0
St1ng3r
St1ng3r

User

Ветеран

Posts: 537

На форуме с: 02/05/2008

Репутация: +262

Рейтинг: 0

· 05/12/2009, 05:15 PM

2NeSsS Для начала тебе надо понять, в чем различие class и java форматов. Class - это скомпиленые исходники. Java - это сами исходники.
Class можно декомпилить обратно в java, однако при этом потеряются все каменты, да и вобще почти весь код, который без должной обработки скомпилить будет нельзя (разумеется бывают и исключения). Раз уж и решил научиться редактировать ядро, то и начинай с исходников. Потом уже поймешь, что некоторые пакеты можно будет компилить в одной сборке, а потом совать в другую.

0
M
Max

User

Участник

Posts: 45

На форуме с: 12/29/2008

Рейтинг: 0

· 05/12/2009, 06:32 PM

Ок я понял, но вопрос, как тогда редактировать ядро??? если я через прогу могу редактировать ядро, а оно сохраняетса в .java формате, а мне нужно в .class, но в проги нету сохранить в .class, вопрос, как тогда его редоктировать если ты говориш что теряетса код, розкажы плиз буду оч благодарен.

0
St1ng3r
St1ng3r

User

Ветеран

Posts: 537

На форуме с: 02/05/2008

Репутация: +262

Рейтинг: 0

· 05/12/2009, 07:14 PM

Скачай исходники и редактируй на здоровье )

0
M
Max

User

Участник

Posts: 45

На форуме с: 12/29/2008

Рейтинг: 0

· 05/13/2009, 12:37 PM

что за исходники??? и причем тут они?)) розкажы плиз я непойму.

0
St1ng3r
St1ng3r

User

Ветеран

Posts: 537

На форуме с: 02/05/2008

Репутация: +262

Рейтинг: 0

· 05/13/2009, 02:20 PM

Цитата
что за исходники??? и причем тут они?)) розкажы плиз я непойму.

Мой тебе совет: хватит флудить и забей на ядро и исходники, тебе это врядли кто-нибудь объяснит так, чтобы ты все понял.

0
Topic is closed for replies