Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Форум для новичков[JAVA]/[help]Выдача скилов за захват Замков
Поиск

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

25 ответов356 просмотровСейчас просматривают: 1
V
Vo1N

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 07.11.2009, 14:18

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

0
P
Pikovit

Пользователь

Участник

Постов: 35

На форуме с: 30.09.2009

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

Рейтинг: 0

· 07.11.2009, 15:14

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

0
V
Vo1N

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 07.11.2009, 15:16

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

0
chipito
chipito

Пользователь

Участник

Постов: 54

На форуме с: 31.12.2007

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

Рейтинг: 0

· 07.11.2009, 16:40

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

0
V
Vo1N

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 08.11.2009, 12:54

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

0
Lapa
Lapa

Пользователь

Бывалый

Постов: 202

На форуме с: 26.01.2008

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

Рейтинг: 0

· 08.11.2009, 13:16

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

— Кот ЦАРЬ

0
V
Vo1N

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 08.11.2009, 13:36

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

0
onik2005
onik2005

Пользователь

Новичок

Постов: 10

На форуме с: 28.04.2009

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

Рейтинг: 0

· 08.11.2009, 13:57

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

0
DeadAdsl
DeadAdsl

Пользователь

Ветеран

Постов: 1208

На форуме с: 21.12.2007

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

Рейтинг: 0

· 08.11.2009, 15:22

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


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

— Заболел

0
X
XOXOJI

Пользователь

Участник

Постов: 51

На форуме с: 29.06.2007

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

Рейтинг: 0

· 08.11.2009, 16:35

через ядро, в 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

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 08.11.2009, 17:06

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

0
X
XOXOJI

Пользователь

Участник

Постов: 51

На форуме с: 29.06.2007

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

Рейтинг: 0

· 08.11.2009, 17:32

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

Код
    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

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 08.11.2009, 17:45

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

Раскрывающийся текст
Код
    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

Пользователь

Участник

Постов: 51

На форуме с: 29.06.2007

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

Рейтинг: 0

· 08.11.2009, 17:49

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

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

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

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

0
V
Vo1N

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 08.11.2009, 18:09

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

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

Код
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

Пользователь

Участник

Постов: 51

На форуме с: 29.06.2007

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

Рейтинг: 0

· 08.11.2009, 18:25

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

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

0
V
Vo1N

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 08.11.2009, 18:26

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

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

0
X
XOXOJI

Пользователь

Участник

Постов: 51

На форуме с: 29.06.2007

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

Рейтинг: 0

· 08.11.2009, 18:27

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

0
V
Vo1N

Пользователь

Участник

Постов: 85

На форуме с: 26.08.2007

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

Рейтинг: 0

· 08.11.2009, 18:42

Держи

0
X
XOXOJI

Пользователь

Участник

Постов: 51

На форуме с: 29.06.2007

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

Рейтинг: 0

· 08.11.2009, 19:17

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

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

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