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]/[help]Выдача скилов за захват Замков
Search

[help]Выдача скилов за захват Замков

25 replies330 viewsCurrently viewing: 1
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/07/2009, 02:18 PM

Сборка: Equal
Проблема: Подскажите как через ЯДРО можно было бы сделать так что если клан захватывает замок, то им не только акуссесуар выдавали, но ещё и скил, также взависимости от замка.
Соображения: Выдача наверно будет делаться на основе выдаче хиро скилов о потом их забирания у игрока

0
P
Pikovit

User

Участник

Posts: 35

На форуме с: 09/30/2009

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

Рейтинг: 0

· 11/07/2009, 03:14 PM

ты хочешь чтоб скилы давались от короны или просто чару?

0
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/07/2009, 03:16 PM

Именно чтобы отдельные скилы давало, а потом если замок уже принадлежит другому клану забирало скилы.

0
chipito
chipito

User

Участник

Posts: 54

На форуме с: 12/31/2007

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

Рейтинг: 0

· 11/07/2009, 04:40 PM

В хрониках хелбаунд+ реализовали скилы при захвате форта,если в твоей базе есть таблица skill_residential,то заходиш туда,прописуеш ID замка или форта ID скила и Skill lvl

0
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/08/2009, 12:54 PM

У меня Interlude, так что надо в ядре делать все.

0
Lapa
Lapa

User

Бывалый

Posts: 202

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

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

Рейтинг: 0

· 11/08/2009, 01:16 PM

Единственное , что реально сделать без ядра это привязать скиллы к итему, То есть к короне, и при потере замка корона забираеться как си скиллы

— Кот ЦАРЬ

0
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/08/2009, 01:36 PM

Так мне наоборот надо, чтобы ЧЕРЕЗ ядро делать.

0
onik2005
onik2005

User

Новичок

Posts: 10

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

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

Рейтинг: 0

· 11/08/2009, 01:57 PM

Может оффтоп, но как сделать чтоб скил появлялся/включался когда у перса появляется определенный итем(желательно когда он его одевает), не через ядро а в xml скилах?

0
DeadAdsl
DeadAdsl

User

Ветеран

Posts: 1208

На форуме с: 12/21/2007

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

Рейтинг: 0

· 11/08/2009, 03:22 PM

onik2005: Может оффтоп, но как сделать чтоб скил появлялся/включался когда у перса появляется определенный итем(желательно когда он его одевает), не через ядро а в xml скилах?


Через .xml никак, но можно через БД. В таблице армор есть столбик item_skill_id. Думаю дальше будет понятно

— Заболел

0
X
XOXOJI

User

Участник

Posts: 51

На форуме с: 06/29/2007

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

Рейтинг: 0

· 11/08/2009, 04:35 PM

через ядро, в L2PcInstance.java

Код
...
    public void regiveTemporarySkills()
    {
    Castle gludio =     CastleManager.getInstance().getCastleById(1);
    if (getClanId() == gludio.getOwnerId())
    {
        L2Skill skill = SkillTable.getInstance().getInfo(1322, 1);
        addSkill(skill,false);    
    }...

это код с арчида, у меня работал :) точно не помню либо тут в в RewardSkills
addSkill(skill,false); - false - не записывать скилл в базу; после того как замок будет у другого клана скил отпадет после перезахода
getInfo(1322, 1); - айди, лвл
при желании можно сделать привязку лвла скила от лвл клана...ну как то так вобщем.

0
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/08/2009, 05:06 PM

Видимо этот код еще чем-то подкреплен, потому что я попробовал и не дало скила.

0
X
XOXOJI

User

Участник

Posts: 51

На форуме с: 06/29/2007

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

Рейтинг: 0

· 11/08/2009, 05:32 PM

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

Код
    public void RewardSkills()
    {
    Castle gludio =     CastleManager.getInstance().getCastleById(1);
    if (getClanId() == gludio.getOwnerId())
    {
        L2Skill skill = SkillTable.getInstance().getInfo(1322, 1);
        addSkill(skill,false);    
    }...

0
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/08/2009, 05:45 PM

Не ну то что ты название метода сменил, от этого ничего не изменится
Вот в сборке нашол такой код.

Раскрывающийся текст
Код
    private void regiveTemporarySkills()
    {
        // Do not call this on enterworld or char load

        // Add noble skills if noble
        if (isNoble())
            setNoble(true);

        // Add Hero skills if hero
        if (isHero())
            setHero(true);

        // Add clan skills
        if (getClan() != null && getClan().getReputationScore() >= 0)
        {
            L2Skill[] skills = getClan().getAllSkills();
            for (L2Skill sk : skills)
            {
                if(sk.getMinPledgeClass() <= getPledgeClass())
                    addSkill(sk, false);
            }
        }
    
        // Reload passive skills from armors / jewels / weapons
        getInventory().reloadEquippedItems();
        
    }


Вот сюда надо добавить условия при которых клану выдадут скилы взависимости от замка.

0
X
XOXOJI

User

Участник

Posts: 51

На форуме с: 06/29/2007

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

Рейтинг: 0

· 11/08/2009, 05:49 PM

сюда и надо. мб не

Код
if (getClanId() == gludio.getOwnerId())

а
Код
if (getClan() == gludio.getOwnerId())

у всех по разному.
ПС. при выдачей Админом замка без перезахода может не давать. у меня было так.

0
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/08/2009, 06:09 PM

После выдачи админом клану я релогался и не было скила.

Попробовал сделать так

Код
Castle gludio = CastleManager.getInstance().getCastleById(1);
        // Add Castle skills
        if (getClan() != null && getClan() == gludio.getOwnerId())
        {        
            L2Skill skill = SkillTable.getInstance().getInfo(1204, 2);
            addSkill(skill,false);
        }


Но компилятор ругается
Код
compile:
    [javac] Compiling 1290 source files to C:\Equal_SRC\Equal-GameServer\build\c
lasses
    [javac] C:\Equal_SRC\Equal-GameServer\java\com\equal\gameserver\model\actor\
instance\L2PcInstance.java:2363: incomparable types: com.equal.gameserver.model.
L2Clan and int
    [javac]             if (getClan() != null && getClan() == gludio.getOwnerId(
))
    [javac]                                                ^
    [javac] 1 error



Раскрывающийся текст
Код
Castle gludio = CastleManager.getInstance().getCastleById(1);
        // Add Castle skills
        if (getClan() != null && getClanId() == gludio.getOwnerId())
        {        
            L2Skill skill = SkillTable.getInstance().getInfo(1204, 2);
            addSkill(skill,false);
        }

Этот вариант тоже не подошел

В условии надо чтобы было написано "если клану принадлежит замок глудио"
но как это в код переделать не могу сообразить.

0
X
XOXOJI

User

Участник

Posts: 51

На форуме с: 06/29/2007

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

Рейтинг: 0

· 11/08/2009, 06:25 PM

if (getClan() != null && getClanId() == gludio.getOwnerId())

getClan() != null - если есть клан
getClanId() == gludio.getOwnerId() если айди клана равно айди клана-владельца
у тебя ругается на L2Clan класс
поменяй getClan() на getClanId()

0
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/08/2009, 06:26 PM

Код
if (getClan() != null)
        {
            L2Skill skill = SkillTable.getInstance().getInfo(1204, 2);
            addSkill(skill,false);
        }

Просто сделал такой код проверить дастся ли скилл, в итоге даже так скилл не дало

0
X
XOXOJI

User

Участник

Posts: 51

На форуме с: 06/29/2007

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

Рейтинг: 0

· 11/08/2009, 06:27 PM

прикрепи сюда файл L2PcInstance и из папки model L2Clan

0
V
Vo1N

User

Участник

Posts: 85

На форуме с: 08/26/2007

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

Рейтинг: 0

· 11/08/2009, 06:42 PM

Держи

0
X
XOXOJI

User

Участник

Posts: 51

На форуме с: 06/29/2007

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

Рейтинг: 0

· 11/08/2009, 07:17 PM

[attachment=4398:L2PcInstance.rar]
пробуй, там у тебя скилллист не отправлялся :)

строку L2Clan clan = getClan();
поставь перед if (getClan() != null)

0
Войдите или зарегистрируйтесь чтобы ответить