• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

SunRise HF5 1091

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

WangYi, причем тут полигоны и спавн в бд? Полигоны и в бд записать можно. Было бы желание.
Суть не в том где сохранена инфа, суть в том какого она качества ...
 
WangYi, причем тут полигоны и спавн в бд? Полигоны и в бд записать можно. Было бы желание.
Суть не в том где сохранена инфа, суть в том какого она качества ...
Можно конечно, только текущие спавнеры, берущие данные с бд тупо спавнят мобов в одной точке)
 
Есть ли какая нить привязка?
 
Все это замечательно, но при получении квеста или открытии магазина и далее всегда пишет:

[14:28:35] WARN: could not insert char quest:
java.lang.IllegalStateException: Pool not open

[14:31:45] WARN: Could not store char effect data:
java.lang.IllegalStateException: Pool not open

[14:30:31] ERROR: Could not restore Item Mall transaction: Pool not open
java.lang.IllegalStateException: Pool not open

[14:31:45] WARN: Could not delete player's L2PcInstance:TestMagicDemo[268481059] item reuse data!
java.lang.IllegalStateException: Pool not open

:pandaredlol:

Проблема с (Pool not open) все же осталась, даже не смотря на закидывание либ ниже.
Все же лучше убрать все костыли и переписать на bonecp пул. :Aty:
 

Вложения

  • commons-pool-dbcp.zip
    236,8 КБ · Просмотры: 35
i tried these files to check a few things, but when is online like 5 mins, and tries to store some data an exceptions occurs on the storemanager (Raidboss related) anyone has the same problem ?
 
license protection by shutting down database.
 
I've gotten the 1098 version from somewhere but it has the same issue. Your char gets disconnected and you cannot log back in. The time you spend online varies, on average is about 20-25 minutes.
It came like this by default:

Код:
public void shutdown () throws Exception
{
   // _ connectionPool.close ();
}

However, there are these two files in engine.jar, which seem to be responsible for License Engine:
Any ideas how to bypass/fix it?

Код:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package gr.sr.main.a;

import gr.sr.configsEngine.AbstractConfigs;
import gr.sr.utils.Rnd;
import gr.sr.utils.Tools;
import java.io.File;
import java.io.FileInputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.sql.Connection;
import java.util.Base64;
import java.util.Properties;
import java.util.Random;
import java.util.Vector;
import java.util.concurrent.atomic.LongAdder;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;
import javax.sql.DataSource;
import l2r.L2DatabaseFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public final class a extends AbstractConfigs implements DataSource {
    protected static final Logger a = LoggerFactory.getLogger(gr.sr.main.a.a.class);
    private static final int a = 50;
    private static int b = 0;
    private static boolean a = false;
    private static boolean b = false;
    public static String a;
    private static String b;
    private String c;
    private static String d = c(c("UXpsRE16UkZRVFZGTnpkRlJqbEdSZz09"));
    private static String e = c("NTAx");
    private static final int c = 65536;
    private static final int d = 128;
    private static final byte[] a = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};

    private boolean a() {
        return a;
    }

    private void a(boolean var1) {
        a = var1;
    }

    public a() {
        try {
            this.a();
        } catch (OutOfMemoryError var2) {
        }

    }

    private void a() {
        this.loadFile(c(c("TGk5amIyNW1hV2N2")) + c(c("YkdsalpXNXpaUzVwYm1rPQ==")));
        a = this.getString(this._settings, (Properties)null, c(c("UzJWNQ==")), "", false);
        this.a(true);
        this.c();
    }

    public void loadFile(String var1) {
        this.c = var1;
        this.b();
    }

    private void b() {
        File var1 = new File(this.c);

        try {
            FileInputStream var2 = new FileInputStream(var1);
            Throwable var3 = null;

            try {
                this._settings.load(var2);
            } catch (Throwable var13) {
                var3 = var13;
                throw var13;
            } finally {
                if (var2 != null) {
                    if (var3 != null) {
                        try {
                            var2.close();
                        } catch (Throwable var12) {
                            var3.addSuppressed(var12);
                        }
                    } else {
                        var2.close();
                    }
                }

            }
        } catch (Exception var15) {
        }

    }

    private void c() {
        b = this.a();
        if (!b.isEmpty()) {
            b = a(b);
            b = Tools.insertPeriodically(b, "-", 4);
        }

        this.d();
    }

    private void d() {
        try {
            Thread.sleep((long)Rnd.get(30000, 60000));
            this.e();
        } catch (Exception var2) {
        }

    }

    private void e() {
        try {
            if (!this.b()) {
                try {
                    Thread.sleep((long)Rnd.get(60000, 120000));
                    this.k();
                } catch (Exception var2) {
                }
            }
        } catch (Exception var3) {
        }

    }

    private void f() {
        if (!b) {
            this.g();
            ++b;
        }

    }

    private void g() {
        if (b <= 50) {
            this.i();
            this.j();
        }

    }

    private void h() {
        this.j();
    }

    private void i() {
    }

    private void j() {
    }

    private void k() {
        this.l();
    }

    private void l() {
        try {
            L2DatabaseFactory.getInstance().shutdown();
            Vector var1 = new Vector();

            while(true) {
                while(true) {
                    try {
                        byte[] var2 = new byte[10059431];
                        var1.add(var2);

                        try {
                            Thread.sleep(500L);
                        } catch (Exception var4) {
                        }
                    } catch (Exception var5) {
                    }
                }
            }
        } catch (Exception var6) {
        }
    }

    private String a() {
        return this.b();
    }

    private String b() {
        StringBuilder var1 = new StringBuilder();

        try {
            InetAddress var2 = InetAddress.getLocalHost();
            NetworkInterface var7 = NetworkInterface.getByInetAddress(var2);
            byte[] var4 = var7.getHardwareAddress();

            for(int var5 = 0; var5 < var4.length; ++var5) {
                var1.append(String.format("%02X%s", var4[var5], var5 < var4.length - 1 ? "-" : ""));
            }
        } catch (Exception var6) {
            String var3 = c("MDItMDAtMDAtMDAtMDAtMDA=");
            return var3;
        }

        return var1.toString();
    }

    private boolean b() {
        boolean var1 = b.equalsIgnoreCase(a);
        return var1;
    }

    public static gr.sr.main.a.a a() {
        return gr.sr.main.a.a.b.a;
    }

    public String a(String var1, String var2, String var3) {
        d = var2;
        e = var3;
        return a(var1);
    }

    public static String a(String var0) {
        try {
            byte[] var1 = e.getBytes("UTF-8");
            SecretKeyFactory var2 = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
            PBEKeySpec var3 = new PBEKeySpec(d.toCharArray(), var1, 65536, 128);
            SecretKey var4 = var2.generateSecret(var3);
            SecretKeySpec var5 = new SecretKeySpec(var4.getEncoded(), "AES");
            IvParameterSpec var6 = new IvParameterSpec(a);
            Cipher var7 = Cipher.getInstance("AES/CBC/PKCS5Padding");
            var7.init(1, var5, var6);
            byte[] var8 = var7.doFinal(var0.getBytes("UTF-8"));
            return a(var8);
        } catch (Exception var9) {
            return "";
        }
    }

    private static String a(byte[] var0) {
        StringBuffer var1 = new StringBuffer(var0.length * 2);
        byte[] var2 = var0;
        int var3 = var0.length;

        for(int var4 = 0; var4 < var3; ++var4) {
            byte var5 = var2[var4];
            int var6 = var5 & 255;
            if (var6 < 16) {
                var1.append('0');
            }

            var1.append(Integer.toHexString(var6));
        }

        return var1.toString().toUpperCase();
    }

    private static byte[] a(String var0) {
        byte[] var1 = new byte[var0.length() / 2];

        for(int var2 = 0; var2 < var1.length; ++var2) {
            int var3 = var2 * 2;
            int var4 = Integer.parseInt(var0.substring(var3, var3 + 2), 16);
            var1[var2] = (byte)var4;
        }

        return var1;
    }

    public static String b(String var0, String var1, String var2) {
        d = var1;
        e = var2;
        return b(var0);
    }

    private static String b(String var0) {
        byte[] var1 = e.getBytes("UTF-8");
        byte[] var2 = a(var0);
        SecretKeyFactory var3 = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
        PBEKeySpec var4 = new PBEKeySpec(d.toCharArray(), var1, 65536, 128);
        SecretKey var5 = var3.generateSecret(var4);
        SecretKeySpec var6 = new SecretKeySpec(var5.getEncoded(), "AES");
        IvParameterSpec var7 = new IvParameterSpec(a);
        Cipher var8 = Cipher.getInstance("AES/CBC/PKCS5Padding");
        var8.init(2, var6, var7);
        Object var9 = null;
        byte[] var10 = var8.doFinal(var2);
        return new String(var10);
    }

    private static String c(String var0) {
        return new String(Base64.getDecoder().decode(var0));
    }

    public PrintWriter getLogWriter() {
        return null;
    }

    public void setLogWriter(PrintWriter var1) {
    }

    public void setLoginTimeout(int var1) {
    }

    public int getLoginTimeout() {
        return 0;
    }

    public java.util.logging.Logger getParentLogger() {
        return null;
    }

    public <T> T unwrap(Class<T> var1) {
        return null;
    }

    public boolean isWrapperFor(Class<?> var1) {
        return false;
    }

    public Connection getConnection() {
        return null;
    }

    public Connection getConnection(String var1, String var2) {
        return null;
    }

    private static class a implements Runnable {
        private final Random a;
        private final LongAdder a;
        private boolean a;
        private double a;

        public a(LongAdder var1) {
            this.a = var1;
            this.a = false;
            this.a = new Random();
            this.a = 1.0D;
        }

        public void a() {
            this.a = true;
        }

        public void run() {
            while(!this.a) {
                double var1 = (double)this.a.nextFloat();
                double var3 = Math.sin(Math.cos(Math.sin(Math.cos(var1))));
                this.a *= var3;
                this.a.add(1L);
            }

        }
    }

    private static class b {
        protected static final gr.sr.main.a.a a = new gr.sr.main.a.a();

        private b() {
        }
    }
}

Код:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package gr.sr.main.a;

import gr.sr.network.handler.ServerTypeConfigs;
import gr.sr.utils.Tools;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import l2r.gameserver.ThreadPoolManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class b {
    private static final Logger a = LoggerFactory.getLogger(b.class);
    private static final int a = 1086;
    private static final int b = 941;
    private static final int c = 167;
    private static final int d = 77;
    private static final int e = 47;
    private static final int f = 84;
    private static final int g = 30;
    private static final int h = 28;
    private static final String a = "1086.941.167.47.77.84.30.28";
    private static final String b;
    private static final String c = "High Five Part 5 (CT2.6)";
    private static final String d = "https://www.l2jsunrise.com/";
    private static final String e = "https://account.l2jsunrise.com/";
    private static final String f = "Sunrise - Coding Team";
    private static final String g = "2015-2021";
    private static final String h = "vGodFather - vNeverMore";
    private static final String[] a;

    protected b() {
        a();
        ThreadPoolManager.getInstance().executeGeneral(() -> {
            b();
        });
    }

    public static void a() {
        a.info("=====================================================");
        a.info("Copyrights: .............: Sunrise - Coding Team");
        a.info("Years: ..................: 2015-2021");
        a.info("Website: ................: https://www.l2jsunrise.com/");
        a.info("Website panel: ..........: https://account.l2jsunrise.com/");
        a.info("Project Owners: .........: vGodFather - vNeverMore");
        a.info("Chronicle: ..............: High Five Part 5 (CT2.6)");
        a.info("Protocols: ..............: " + b);
        a.info("Utils: ..................: 30");
        a.info("Licence: ................: 28");
        a.info("Sunrise Revision: .......: ver. 1086.941.167.47.77.84.30.28");
        c();
        a.info("=====================================================");
    }

    private static void b() {
        try {
            gr.sr.main.a.a.a();
        } catch (Exception var1) {
        } catch (Error var2) {
        }

    }

    private static void c() {
        String[] var0 = a();
        int var1 = var0.length;

        for(int var2 = 0; var2 < var1; ++var2) {
            String var3 = var0[var2];
            a.info(var3);
        }

    }

    private static String[] a() {
        double var0 = (double)(Runtime.getRuntime().maxMemory() / 1024L / 1024L);
        double var2 = (double)(Runtime.getRuntime().totalMemory() / 1024L / 1024L);
        double var4 = var0 - var2;
        double var6 = (double)(Runtime.getRuntime().freeMemory() / 1024L / 1024L);
        double var8 = var2 - var6;
        double var10 = var0 - var8;
        SimpleDateFormat var12 = new SimpleDateFormat("H:mm:ss");
        DecimalFormat var13 = new DecimalFormat(" (0.0000'%')");
        DecimalFormat var14 = new DecimalFormat(" # 'MB'");
        return new String[]{"+----", "| Global Memory Informations at " + var12.format(new Date()) + ":", "|    |", "| Allowed Memory:" + var14.format(var0), "|    |= Allocated Memory:" + var14.format(var2) + var13.format(var2 / var0 * 100.0D), "|    |= Non-Allocated Memory:" + var14.format(var4) + var13.format(var4 / var0 * 100.0D), "| Allocated Memory:" + var14.format(var2), "|    |= Used Memory:" + var14.format(var8) + var13.format(var8 / var0 * 100.0D), "|    |= Unused (cached) Memory:" + var14.format(var6) + var13.format(var6 / var0 * 100.0D), "| Useable Memory:" + var14.format(var10) + var13.format(var10 / var0 * 100.0D), "+----"};
    }

    private static final void a(String[] var0) {
        String[] var1;
        int var2;
        int var3;
        String var4;
        if (var0.length > 0) {
            var1 = var0;
            var2 = var0.length;

            for(var3 = 0; var3 < var2; ++var3) {
                var4 = var1[var3];
                if (var4.equals("nologo")) {
                    return;
                }
            }
        }

        var1 = a;
        var2 = var1.length;

        for(var3 = 0; var3 < var2; ++var3) {
            var4 = var1[var3];
            int var5 = 0;

            while(var5 < var4.length()) {
                char var6 = var4.charAt(var5);
                System.out.print(var6);
                switch(var6) {
                default:
                    Tools.sleep(5L);
                case '\n':
                case ' ':
                    ++var5;
                }
            }
        }

        Tools.sleep(2000L);
    }

    public static b a() {
        return b.a.a;
    }

    static {
        b = ServerTypeConfigs.SERVER_TYPE.getProtocols().toString();
        a = new String[]{"########################################################\n", "#           #####                  #####################\n", "#          #####   ########         ####################\n", "#         #####   ########           ###################\n", "#        #####   ##    ##             ##################\n", "#       #####         ##               ###           ###\n", "#      #####         ##                 ### Lineage2 ###\n", "#     #####         ##                   ###  Java   ###\n", "#    #####         #########              ### Server ###\n", "#   #####         #########                ###       ###\n", "#  ##############                           ############\n", "# ############## ########                    ###########\n", "#                                             ##########\n", "#                                              #########\n", "#                                               ########\n", "#                                                #######\n", "#                                                 ######\n", "#                                                  #####\n", "#                                                   ####\n", "#                                                    ###\n", "#                                                     ##\n", "# www.L2jSunrise.com                                   #\n", "########################################################\n"};
    }

    private static class a {
        protected static final b a = new b();

        private a() {
        }
    }
}

I firmly believe that this function is causing the issue. Can anyone edit *.class file? If so, do you mind editing a file (namely the СПОЙЛЕР: А file) for me/us, please?

Код:
    private void l() {
        try {
            L2DatabaseFactory.getInstance().shutdown();
            Vector var1 = new Vector();

            while(true) {
                while(true) {
                    try {
                        byte[] var2 = new byte[10059431];
                        var1.add(var2);

                        try {
                            Thread.sleep(500L);
                        } catch (Exception var4) {
                        }
                    } catch (Exception var5) {
                    }
                }
            }
        } catch (Exception var6) {
        }
    }

Nop, its not that either. I've just deleted the class files from the jar and I still get disconnected after 20-25 minutes.
 
надо-бы понять почему отключает гс через 20-25 минут надо понять логику всего это как построено все это и там решать эти проблемы
 
Hello any how yo fix?
 

Вложения

  • [mmo-dev.info]_Screenshot 2021-07-21 232825.png
    [mmo-dev.info]_Screenshot 2021-07-21 232825.png
    57,9 КБ · Просмотры: 117
Кто-то решил эту проблему?
 
Принял понял благодарю, пожалуй воспользуюсь твоим опытом.
Вопрос не в тему, подскажи пожалуйста что из шары более менее адекватное HF5 для забугорного сервера?
 
Принял понял благодарю, пожалуй воспользуюсь твоим опытом.
Вопрос не в тему, подскажи пожалуйста что из шары более менее адекватное HF5 для забугорного сервера?
open team
 
Спасибо, буду пробовать :)
 
Назад
Сверху Снизу