Изучение скилов - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.
Описание темы:некоректно работают изучение скилов

Ответ
Опции темы
Непрочитано 12.06.2012, 21:53   #1
Пользователь

Автор темы (Топик Стартер) Изучение скилов

Подскажите в каком файле поправить изучение скилов а то ситуация такая открываеш вкладку изучить скил выбираеш скил для учения изучаеш один раз а он какбы остается не изучиным повторно изучить до следующего уровня невозможно пока не закроеш полностью вкладку со скилами такое ощущение что оно не проверяет и не обновляет информацию об изучение сразу после изучения (сборка IDEASERV GOD 347 )
Dante5 вне форума Ответить с цитированием
Непрочитано 12.06.2012, 22:08   #2
Изгнанные

По умолчанию Re: Изучение скилов

Нет посылки пакета на обновление списка скилов.
sendPacket(new SkillList(this));
L2scripts-Guard вне форума Отправить сообщение для L2scripts-Guard с помощью Skype™ Ответить с цитированием
Непрочитано 12.06.2012, 22:16   #3
Пользователь

Автор темы (Топик Стартер) Re: Изучение скилов

Цитата:
Сообщение от iqman Посмотреть сообщение
Нет посылки пакета на обновление списка скилов.
sendPacket(new SkillList(this));
в каком файле и где именно в ядре или дате я недавно начал с серверами разбиратся еще не весь скрипт разобрал что где к чему
Dante5 вне форума Ответить с цитированием
Непрочитано 12.06.2012, 22:24   #4
Изгнанные

По умолчанию Re: Изучение скилов

Ядро, смотрите с пакета...RequestAquireSkill по окончанию обучение отсылайте тот пакет который я скинул ранее.
Не знаете как и что? Обратитесь к разработчикам.
L2scripts-Guard вне форума Отправить сообщение для L2scripts-Guard с помощью Skype™ Ответить с цитированием
Непрочитано 12.06.2012, 22:29   #5
Аватар для Visor

По умолчанию Re: Изучение скилов

ТС не понимает о чем идет речь видимо.
Подобнее - нужно посмотреть от входящего пакета на изучение скилов - и там найти и исправить.
А так конечно обратитесь к разработчикам сборки - чтобы дали обновление - возможно оно уже будет работать там, либо чтобы исправили.
__________________
L2Emu Enterprise Server
Visor вне форума Отправить сообщение для Visor с помощью ICQ Отправить сообщение для Visor с помощью Skype™ Ответить с цитированием
Непрочитано 12.06.2012, 22:48   #6
Пользователь

Автор темы (Топик Стартер) Re: Изучение скилов

Цитата:
Сообщение от Visor Посмотреть сообщение
ТС не понимает о чем идет речь видимо.
Подобнее - нужно посмотреть от входящего пакета на изучение скилов - и там найти и исправить.
А так конечно обратитесь к разработчикам сборки - чтобы дали обновление - возможно оно уже будет работать там, либо чтобы исправили.
К сожелению разработчики остановили разработку Год
Dante5 вне форума Ответить с цитированием
Непрочитано 12.06.2012, 23:46   #7
Аватар для Visor

По умолчанию Re: Изучение скилов

Тогда берите другую сборку. Я так понимаю что вы самостоятельно не справитесь с разработкой - не говоря уже об этом вопросе - как протянуть изучение от пакета.
__________________
L2Emu Enterprise Server
Visor вне форума Отправить сообщение для Visor с помощью ICQ Отправить сообщение для Visor с помощью Skype™ Ответить с цитированием
Непрочитано 13.06.2012, 00:57   #8
Пользователь

Автор темы (Топик Стартер) Re: Изучение скилов

ммм... ладно тогда как и везде толком ни кто неможет обяснить Новичкам в этом деле буду разбирать проверю то что советывал iqman ,легче конешно Visor казать человеку (Тогда берите другую сборку. Я так понимаю что вы самостоятельно не справитесь ... ну тупо пофлудить в теме) вмето того чтобы чтото дельное посоветывать .ВСЕМ плюсик + хоть за маленький толчок в нужную сторону .
Dante5 вне форума Ответить с цитированием
Непрочитано 15.06.2012, 10:27   #9
Изгнанные

По умолчанию Re: Изучение скилов

в если основа феня или овер то в классе Player ищи метод на изучение скилов и посылай сразу 2 пакете а не 1, прилизитльно можно так сделать:
Код:
public void sendSkillList() {
    	sendPacket(new SkillList(this));
        sendPacket(new ExAcquirableSkillListByClass(this));
    }
а если лыжа, то вроде смотри класс L2PcInstance и дальше всё тоже самое
Darvin вне форума Отправить сообщение для Darvin с помощью ICQ Отправить сообщение для Darvin с помощью Skype™ Ответить с цитированием
Непрочитано 17.06.2012, 13:37   #10
Пользователь

Автор темы (Топик Стартер) Re: Изучение скилов

все исправил в файле Player между строкой 4340 и 4341 дописал
PHP код:
sendPacket(new SkillList(this));
            
sendPacket(new ExAcquirableSkillListByClass(this)); 
получилосю
PHP код:
// Add or update a L2Player skill in the character_skills table of the database
        
if(store)
            
storeSkill(newSkilloldSkill);
            
sendPacket(new SkillList(this));
            
sendPacket(new ExAcquirableSkillListByClass(this));
        return 
oldSkill;
    } 
Добавлено через 4 минуты
но обнаружил еще одну проблему админским чаром все скилы учатся норм а вот простым нажимаеш наскил чтобы изучить не появляется окно описание скила где надо нажать изучит а когда подойдеш к любому нпц и вступиш с ним в диалог то всеном можно изучать как убрать влияние НПС на изучение скилов ведь в ГОД изучаетсяя без НПС

Добавлено через 2 часа 46 минут
я так понял здесь надо править

PHP код:
public class RequestAquireSkill extends L2GameClientPacket
{
    private 
AcquireType _type;
    private 
int _id_level_subUnit;

    @
Override
    
protected void readImpl()
    {
        
_id readD();
        
_level readD();
        
_type ArrayUtils.valid(AcquireType.VALUESreadD());
        if(
_type == AcquireType.SUB_UNIT)
            
_subUnit readD();
    }

    @
Override
    
protected void runImpl()
    {
        
Player player getClient().getActiveChar();
        if(
player == null || player.getTransformation() != || _type == null)
            return;

        
NpcInstance trainer player.getLastNpc();
        if((
trainer == null || player.getDistance(trainer.getX(), trainer.getY()) > Creature.INTERACTION_DISTANCE) && !player.isGM())
            return;

        
Skill skill SkillTable.getInstance().getInfo(_id_level);
        if(
skill == null)
            return;

        if(!
SkillAcquireHolder.getInstance().isSkillPossible(playerskill_type))
            return;

        
SkillLearn skillLearn SkillAcquireHolder.getInstance().getSkillLearn(player_id_level_type);

        if(
skillLearn == null)
            return;

        if(!
checkSpellbook(playerskillLearn))
        {
            
player.sendPacket(SystemMsg.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
            return;
        }

        switch (
_type)
        {
            case 
NORMAL:
                
learnSimpleNextLevel(playerskillLearnskill);
                if(
trainer != null)
                    
trainer.showSkillList(player);
                break;
            case 
TRANSFORMATION:
                
learnSimpleNextLevel(playerskillLearnskill);
                if(
trainer != null)
                    
trainer.showTransformationSkillList(playerAcquireType.TRANSFORMATION);
                break;
            case 
COLLECTION:
                
learnSimpleNextLevel(playerskillLearnskill);
                if(
trainer != null)
                    
NpcInstance.showCollectionSkillList(player);
                break;
            case 
TRANSFER_CARDINAL:
            case 
TRANSFER_EVA_SAINTS:
            case 
TRANSFER_SHILLIEN_SAINTS:
                
learnSimple(playerskillLearnskill);
                if(
trainer != null)
                    
trainer.showTransferSkillList(player);
                break;
            case 
FISHING:
                
learnSimpleNextLevel(playerskillLearnskill);
                if(
trainer != null)
                    
NpcInstance.showFishingSkillList(player);
                break;
            case 
CLAN:
                
learnClanSkill(playerskillLearntrainerskill);
                break;
            case 
SUB_UNIT:
                
learnSubUnitSkill(playerskillLearntrainerskill_subUnit);
                break;
            case 
CERTIFICATION:
                if(!
player.getActiveClass().isBase())
                {
                    
player.sendPacket(SystemMsg.THIS_SKILL_CANNOT_BE_LEARNED_WHILE_IN_THE_SUBCLASS_STATE);
                    return;
                }
                
learnSimpleNextLevel(playerskillLearnskill);
                if(
trainer != null)
                    
trainer.showTransformationSkillList(playerAcquireType.CERTIFICATION);
                break;
        }
    }

    
/**
     * Изучение следующего возможного уровня скилла
     */
    
private static void learnSimpleNextLevel(Player playerSkillLearn skillLearnSkill skill)
    {
        final 
int skillLevel player.getSkillLevel(skillLearn.getId(), 0);
        if(
skillLevel != skillLearn.getLevel() - 1)
            return;

        
learnSimple(playerskillLearnskill);
    }

    private static 
void learnSimple(Player playerSkillLearn skillLearnSkill skill)
    {
        if(
player.getSp() < skillLearn.getCost())
        {
            
player.sendPacket(SystemMsg.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_LEARN_THIS_SKILL);
            return;
        }

        if(
skillLearn.getItemId() > 0)
            if(!
player.consumeItem(skillLearn.getItemId(), skillLearn.getItemCount()))
                return;

        
player.sendPacket(new SystemMessage2(SystemMsg.YOU_HAVE_EARNED_S1_SKILL).addSkillName(skill.getId(),  skill.getLevel()));

        
player.setSp(player.getSp() - skillLearn.getCost());
        
player.addSkill(skilltrue);
        
player.sendUserInfo();
        
player.updateStats();

        
player.sendPacket(new SkillList(player));

        
RequestExEnchantSkill.updateSkillShortcuts(playerskill.getId(), skill.getLevel());
    }

    private static 
void learnClanSkill(Player playerSkillLearn skillLearnNpcInstance trainerSkill skill)
    {
        if(!(
trainer instanceof VillageMasterInstance))
            return;

        if(!
player.isClanLeader())
        {
            
player.sendPacket(SystemMsg.ONLY_THE_CLAN_LEADER_IS_ENABLED);
            return;
        }

        
Clan clan player.getClan();
        final 
int skillLevel clan.getSkillLevel(skillLearn.getId(), 0);
        if(
skillLevel != skillLearn.getLevel() - 1// можно выучить только следующий уровень
            
return;
        if(
clan.getReputationScore() < skillLearn.getCost())
        {
            
player.sendPacket(SystemMsg.THE_CLAN_REPUTATION_SCORE_IS_TOO_LOW);
            return;
        }

        if(
skillLearn.getItemId() > 0)
            if(!
player.consumeItem(skillLearn.getItemId(), skillLearn.getItemCount()))
                return;

        
clan.incReputation(-skillLearn.getCost(), false"AquireSkill: " skillLearn.getId() + ", lvl " skillLearn.getLevel());
        
clan.addSkill(skilltrue);
        
clan.broadcastToOnlineMembers(new SystemMessage2(SystemMsg.THE_CLAN_SKILL_S1_HAS_BEEN_ADDED).addSkillName(skill));

        
NpcInstance.showClanSkillList(player);
    }

    private static 
void learnSubUnitSkill(Player playerSkillLearn skillLearnNpcInstance trainerSkill skillint id)
    {
        
Clan clan player.getClan();
        if(
clan == null)
            return;
        
SubUnit sub clan.getSubUnit(id);
        if(
sub == null)
            return;

        if((
player.getClanPrivileges() & Clan.CP_CL_TROOPS_FAME) != Clan.CP_CL_TROOPS_FAME)
        {
            
player.sendPacket(SystemMsg.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
            return;
        }

        
int lvl sub.getSkillLevel(skillLearn.getId(), 0);
        if(
lvl >= skillLearn.getLevel())
        {
            
player.sendPacket(SystemMsg.THIS_SQUAD_SKILL_HAS_ALREADY_BEEN_ACQUIRED);
            return;
        }

        if(
lvl != (skillLearn.getLevel() - 1))
        {
            
player.sendPacket(SystemMsg.THE_PREVIOUS_LEVEL_SKILL_HAS_NOT_BEEN_LEARNED);
            return;
        }

        if(
clan.getReputationScore() < skillLearn.getCost())
        {
            
player.sendPacket(SystemMsg.THE_CLAN_REPUTATION_SCORE_IS_TOO_LOW);
            return;
        }

        if(
skillLearn.getItemId() > 0)
            if(!
player.consumeItem(skillLearn.getItemId(), skillLearn.getItemCount()))
                return;

        
clan.incReputation(-skillLearn.getCost(), false"AquireSkill2: " skillLearn.getId() + ", lvl " skillLearn.getLevel());
        
sub.addSkill(skilltrue);
        
player.sendPacket(new SystemMessage2(SystemMsg.THE_CLAN_SKILL_S1_HAS_BEEN_ADDED).addSkillName(skill));

        if(
trainer != null)
            
NpcInstance.showSubUnitSkillList(player);
    }

    private static 
boolean checkSpellbook(Player playerSkillLearn skillLearn)
    {
        if(
Config.ALT_DISABLE_SPELLBOOKS)
            return 
true;

        if(
skillLearn.getItemId() == 0)
            return 
true;

        
        if(
skillLearn.isClicked())
            return 
false;

        return 
player.getInventory().getCountOf(skillLearn.getItemId()) >= skillLearn.getItemCount();
    }


Последний раз редактировалось Dante5; 17.06.2012 в 16:24. Причина: Добавлено сообщение
Dante5 вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java, изучение. Hlapeks Lineage II 10 19.02.2012 09:10
Изучение Java HeyYo Курилка / Yak floor 13 25.10.2011 02:58
Изучение скилов APKO Работа со скриптами 1 25.09.2011 20:03
Изучение Java Madnezz Курилка / Yak floor 2 30.01.2011 12:02
автопрофа и авто изучение скилов korabok Серверная часть 8 28.07.2010 13:53


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 06:10. Часовой пояс GMT +3.

Вверх