Fixed Каты некры,мамоны для победителей без печати

damka

Heir
Customer
Всем привет уважаемые знатоки , есть необходимость сделать что бы при телепорте в катакомбы ,гейткипер проверял только факт регистрации ,и победитель или проигравший,независимо от печати. И точно так же с мамонами. С телепортером в катакомбы зикуратом вроде разобрался но еще не тестировал,сумел найти метод в класе Util , а вот по мамонам ,ума не приложу,где прописан доступ к байпасам. Нужно по сути для мамонов поменять условия проверки,на этом всё. Может,кто то уже делал такое ? А я знаю что делал ,ибо это практика на 95% серверов,что пускает в каты и некры только победителей ,независимо от печати,и так же с мамонами. Буду благодарен за наводку куда копать,спасибо заранее!
 
# При смене периода и владельца перчат, меняется спаун и тип мобов (Off-like).
# Чтобы всегда был спаун только мобов с дропом камней - SevenSingStaticEventPeriodSpawn = True
SevenSingStaticEventPeriodSpawn = False
# Телепортировать незарегистрированных игроков в город при попытке атаки мобов Семи Печатей
SeventSingMobProtection=True
# Проверяет ли Телепортер в Катакомбы и Некрополисы и Победителей регистрацию игрока на Семь Печатей (Offlike - True)
SeventSingTeleporterProtection=True
# Маммоны проверяет запись игрока на семь печатей и статус печати.
# Если включено, то Маммон не будет давать доступ к байпасам незарегистрированным игрокам. (Offlike - True)
MammonCheckRegistrationOnSevenSing=true

=-=-=-==-=

Это уже есть в altsetting.prope...
 
# При смене периода и владельца перчат, меняется спаун и тип мобов (Off-like).
# Чтобы всегда был спаун только мобов с дропом камней - SevenSingStaticEventPeriodSpawn = True
SevenSingStaticEventPeriodSpawn = False
# Телепортировать незарегистрированных игроков в город при попытке атаки мобов Семи Печатей
SeventSingMobProtection=True
# Проверяет ли Телепортер в Катакомбы и Некрополисы и Победителей регистрацию игрока на Семь Печатей (Offlike - True)
SeventSingTeleporterProtection=True
# Маммоны проверяет запись игрока на семь печатей и статус печати.
# Если включено, то Маммон не будет давать доступ к байпасам незарегистрированным игрокам. (Offlike - True)
MammonCheckRegistrationOnSevenSing=true
=-=-=-==-=

Это уже есть в altsetting.prope...
MammonCheckRegistrationOnSevenSing - проверяет сторону ,победитель или проигравший , и в том числе выбранную печать , если выиграла аварис - торгаш общается в некрополях,если гнозис - кузнец в катах ,и сакрефайс - никто из них не общается+закрыты каты некры

А надо как раз таки сделать,что б мамон не проверял печать,а только регистрацию , ибо Дизер уже как то делал фиксы на эту тему ,но игроки все равно жалуются что что то не так работает , то за аварис пускает в некры но не общается торгаш,толи наоборот за гнозис и не общается кузнец,что то такое

я решил это просто выкинуть ,и проверять только победителя , и что бы сумонеры не сумонили к мамонам , нужна эта проверка
 
Не знаю, я проверю конечно еще раз, но при таких настройках в городе мамон проверял на регу, но мультисел открывал без проблем.
=-=-=
Такой вопрос: а в чем смысл тогда вообще всего этого ? Если ты проверяешь просто на регу ?
И то что они сумонятся к мамону... Кто ? Игроки 10 уровня ? И что они у него поменяют , если у них даже АА нету... да даже если есть, какой смысл скрыть если ты открываешь им доступ и проверяешь только регу )
 
Не знаю, я проверю конечно еще раз, но при таких настройках в городе мамон проверял на регу, но мультисел открывал без проблем.
=-=-=
Такой вопрос: а в чем смысл тогда вообще всего этого ? Если ты проверяешь просто на регу ?
И то что они сумонятся к мамону... Кто ? Игроки 10 уровня ? И что они у него поменяют , если у них даже АА нету... да даже если есть, какой смысл скрыть если ты открываешь им доступ и проверяешь только регу )
смысл в том ,что бы люди ходили в каты пешочком ,и искали мамончика,но при этом что бы он не проверял печать,а только регу,ну и что бы не сумонились)

Вообщем надо оно мне :D
 
Решение еще не было найдено ,если у кого то есть какие либо идеи - я готов их рассмотреть и опробовать,и сообщить результаты
 
вы со своими инстаграмными общениями утомляете. Следующий раз ты создашь тему с просьбой помочь. Я вообще не буду отвечать.
Это форум, какие обратитесь в ЛС.
Я просто помню ты обещал меня забанить, если я еще буду публиковать свои кривые декомпилы. Если даешь добро - я их сейчас пабну, вообще не вопрос, но по сути, я просто закоментил проверки печатей :D

@Rosylik без обид, дизер бан обещал за мои кривые декомпилы, если надо я все пабну без проблем :D
 
Вообщем публикую свои кривые декомпилы)
script.jar/util :
Code:
public void SSGatekeeper(String[] var1) {
        if (var1.length < 4) {
            throw new IllegalArgumentException();
        } else {
            Player var2 = this.getSelf();
            if (var2 != null && NpcInstance.canBypassCheck(var2, var2.getLastNpc())) {
                int var3 = Integer.parseInt(var1[0]);
                int var4 = Integer.parseInt(var1[1]);
                int var5 = Integer.parseInt(var1[2]);
                int var6 = Integer.parseInt(var1[3]);
                if (var6 == 0) {
                    var2.teleToLocation(var3, var4, var5);
                } else {
                    SevenSigns var7 = SevenSigns.getInstance();
                    int var8 = var7.getCurrentPeriod();
                    int var9 = var7.getPlayerCabal(var2);//Сторона персонажа
                    if (Config.ALT_ENABLE_SEVEN_SING_TELEPORTER_PROTECTION) {
                        if (var8 == 1) {
                            if (var9 == 0) {
                                this.show("seven_signs/ss_teleporter_q0506_01.htm", var2);
                                return;
                            }
                        } else if (var8 == 3) {

                            if (var9 == 0) {
                                this.show("seven_signs/ss_teleporter_q0506_01.htm", var2);
                                return;
                            }
                          
                            int winningCabal = var7.getCabalHighestScore();
                            if (var9 != winningCabal) {
                                this.show("seven_signs/ss_teleporter_q0506_02.htm", var2);
                                return;
                            }
//                            int var10 = var7.getSealOwner(var6 == 1 ? 1 : 2);
//                            if (var10 != 0 && var10 != var9) {
//                                this.show("seven_signs/ss_teleporter_q0506_02.htm", var2);
//                                return;
//                            }
                        }
                    }

                    var2.teleToLocation(var3, var4, var5);
                }
            }
        }
    }


server.jar/l2.gameserver.model.instances/SignsPriestInstance


Code:
    @Override
    public void showChatWindow(Player player, int val, Object... args) {
        int npcId = getTemplate().npcId;

        String html = "seven_signs/";

        SevenSigns ssq = SevenSigns.getInstance();

        int avariceOwner = ssq.getSealOwner(SevenSigns.SEAL_AVARICE); // seal 1
        int gnosisOwner  = ssq.getSealOwner(SevenSigns.SEAL_GNOSIS);  // seal 2
        int playerCabal  = ssq.getPlayerCabal(player);                // 0 = none, 1 = Dusk, 2 = Dawn
        boolean isSealValidation = ssq.isSealValidationPeriod();
        int winningCabal = ssq.getCabalHighestScore();                // 0 = tie, 1 = Dusk, 2 = Dawn

        switch (npcId) {
            // ------------------------------
            // Dawn priests
            // ------------------------------
            case 31078:
            case 31079:
            case 31080:
            case 31081:
            case 31082:
            case 31083:
            case 31084:
            case 31168:
            case 31692:
            case 31694:
            case 31997: {
                switch (playerCabal) {
                    // Гравець зареєстрований за Dusk
                    case SevenSigns.CABAL_DUSK -> {
                        if (isSealValidation) {
                            html += "dawn_priest_3b.htm";
                        } else {
                            html += "dawn_priest_3a.htm";
                        }
                    }

                    // Гравець зареєстрований за Dawn
                    case SevenSigns.CABAL_DAWN -> {
                        if (isSealValidation) {
                            if (winningCabal == SevenSigns.CABAL_DAWN) {
                                // Dawn виграли, але перевіряється ще й власник Seal of Gnosis
                                if (winningCabal != gnosisOwner) {
                                    html += "dawn_priest_2c.htm";
                                } else {
                                    html += "dawn_priest_2a.htm";
                                }
                            } else {
                                html += "dawn_priest_2b.htm";
                            }
                        } else {
                            html += "dawn_priest_1b.htm";
                        }
                    }

                    // Гравець не зареєстрований (cabal = 0)
                    default -> {
                        if (isSealValidation) {
                            if (winningCabal == SevenSigns.CABAL_DAWN) {
                                html += "dawn_priest_4.htm";
                            } else {
                                html += "dawn_priest_2b.htm";
                            }
                        } else {
                            html += "dawn_priest_1a.htm";
                        }
                    }
                }
                break;
            }

            // ------------------------------
            // Dusk priests
            // ------------------------------
            case 31085:
            case 31086:
            case 31087:
            case 31088:
            case 31089:
            case 31090:
            case 31091:
            case 31169:
            case 31693:
            case 31695:
            case 31998: {
                switch (playerCabal) {
                    // Гравець зареєстрований за Dusk
                    case SevenSigns.CABAL_DUSK -> {
                        if (isSealValidation) {
                            if (winningCabal == SevenSigns.CABAL_DUSK) {
                                // Dusk виграли, перевіряється власник Gnosis
                                if (winningCabal != gnosisOwner) {
                                    html += "dusk_priest_2c.htm";
                                } else {
                                    html += "dusk_priest_2a.htm";
                                }
                            } else {
                                html += "dusk_priest_2b.htm";
                            }
                        } else {
                            html += "dusk_priest_1b.htm";   
                        }
                    }

                    // Гравець зареєстрований за Dawn
                    case SevenSigns.CABAL_DAWN -> {
                        if (isSealValidation) {
                            html += "dusk_priest_3b.htm";
                        } else {
                            html += "dusk_priest_3a.htm";
                        }
                    }

                    // Не зареєстрований
                    default -> {
                        if (isSealValidation) {
                            if (winningCabal == SevenSigns.CABAL_DUSK) {
                                html += "dusk_priest_4.htm";
                            } else {
                                html += "dusk_priest_2b.htm";
                            }
                        } else {
                            html += "dusk_priest_1a.htm";     
                        }
                    }
                }
                break;
            }

            // ------------------------------
            // Black Market Trader
            // ------------------------------
            case 31092: {
                html += "blkmrkt_1.htm";
                break;
            }

            // ------------------------------
            // Merchant of Mammon (31113)
            // ------------------------------
            case 31113: {
                if (!player.isGM()) {
                    switch (winningCabal) {
                        case SevenSigns.CABAL_DUSK -> {
                            // Dusk перемогли:
                            // доступ до маммона тільки якщо:
                            //   - гравець у Dusk
                            //   - і Dusk володіють Seal of Avarice
                          //  if (playerCabal != winningCabal || playerCabal != avariceOwner) {
                            // Фікснув,що б не перевіряв печатку
                            if (playerCabal != winningCabal) {
                                html += "mammmerch_2.htm"; // відмова
                                player.sendPacket(new NpcHtmlMessage(player, this, html, val));
                                return;
                            }
                        }
                        case SevenSigns.CABAL_DAWN -> {
//                            if (playerCabal != winningCabal || playerCabal != avariceOwner) {
                            if (playerCabal != winningCabal) {
                                html += "mammmerch_2.htm"; // відмова
                                player.sendPacket(new NpcHtmlMessage(player, this, html, val));
                                return;
                            }
                        }
                      
                    }
                }

                html += "mammmerch_1.htm";
                break;
            }

            // ------------------------------
            // Blacksmith of Mammon (31126)
            // ------------------------------
            case 31126: {
                if (!player.isGM()) {
                    switch (winningCabal) {
                        case SevenSigns.CABAL_DUSK -> {

//                            if (playerCabal != winningCabal || playerCabal != gnosisOwner) {
                            if (playerCabal != winningCabal ) {
                                html += "mammblack_2.htm"; // відмова
                                player.sendPacket(new NpcHtmlMessage(player, this, html, val));
                                return;
                            }
                        }
                        case SevenSigns.CABAL_DAWN -> {
                          
//                            if (playerCabal != winningCabal || playerCabal != gnosisOwner) {
                            if (playerCabal != winningCabal) {
                                html += "mammblack_2.htm"; // відмова
                                player.sendPacket(new NpcHtmlMessage(player, this, html, val));
                                return;
                            }
                        }
                    }
                }

                // GM або пройшли перевірки
                html += "mammblack_1.htm";
                break;
            }

            // ------------------------------
            // Інші NPC – стандартний шлях
            // ------------------------------
            default: {
                html = getHtmlPath(npcId, val, player);
                break;
            }
        }

        player.sendPacket(new NpcHtmlMessage(player, this, html, val));
    }
 
Блин ну вы ж не обижайтесь, я реально думал Пан Дизер бан мне влепит по причине "надоел" , культурно выражаясь
 
Back
Top