Account

Тема в разделе "Scripts / Работа со скриптами", создана пользователем Ms.Derailment, 8 май 2018.

  1. Ms.Derailment

    Ms.Derailment Капля-Доверия
    Админы не рекомендуют.

    Регистрация:
    12 апр 2018
    Сообщения:
    25
    Симпатии:
    2
    Сервис аккаунт менеджер
    Код:
    package services;
    
    import tenjs.config.ConfigValue;
    import tenjs.database.*;
    import tenjs.extensions.scripts.Functions;
    import tenjs.extensions.scripts.ScriptFile;
    import tenjs.gameserver.model.L2Player;
    import tenjs.gameserver.xml.ItemTemplates;
    import tenjs.util.Log;
    
    import java.sql.ResultSet;
    
    public class Account extends Functions implements ScriptFile
    {
        public void CharToAcc()
        {
            L2Player player = (L2Player) getSelf();
            if(player == null)
                return;
            String append = "Перенос персонажей между аккаунтами.<br>";
            append += "Цена: " + ConfigValue.CharToAccPrice + " " + ItemTemplates.getInstance().getTemplate(ConfigValue.CharToAccItem).getName() + ".<br>";
            append += "Внимание !!! При переносе персонажа на другой аккаунт, убедитесь что персонажей там меньше чем 7, иначе могут возникнуть непредвиденные ситуации за которые Администрация не отвечает.<br>";
            append += "Внимательно вводите логин куда переносите, администрация не возвращает персонажей.";
            append += "Вы переносите персонажа " + player.getName() + ", на какой аккаунт его перенести ?";
            append += "<edit var=\"new_acc\" width=150>";
            append += "<button value=\"Перенести\" action=\"bypass -h scripts_services.Account:NewAccount $new_acc\" width=150 height=15><br>";
            show(append, player, null);
        }
    
        public void NewAccount(String[] name)
        {
            L2Player player = (L2Player) getSelf();
            if(player == null)
                return;
            if(player.getInventory().getCountOf(ConfigValue.CharToAccItem) < ConfigValue.CharToAccPrice)
            {
                player.sendMessage("У вас нету " + ConfigValue.CharToAccPrice + " " + ItemTemplates.getInstance().getTemplate(ConfigValue.CharToAccItem));
                CharToAcc();
                return;
            }
            String _name = name[0];
            ThreadConnection con = null;
            ThreadConnection conGS = null;
            FiltredPreparedStatement offline = null;
            FiltredStatement statement = null;
            ResultSet rs = null;
            try
            {
                con = L2DatabaseFactory.getInstanceLogin().getConnection();
                offline = con.prepareStatement("SELECT `login` FROM `accounts` WHERE `login` = ?");
                offline.setString(1, _name);
                rs = offline.executeQuery();
                if(rs.next())
                {
                    removeItem(player, ConfigValue.CharToAccItem, ConfigValue.CharToAccPrice);
                    conGS = L2DatabaseFactory.getInstance().getConnection();
                    statement = conGS.createStatement();
                    statement.executeUpdate("UPDATE `characters` SET `account_name` = '" + _name + "' WHERE `char_name` = '" + player.getName() + "'");
                    player.sendMessage("Персонаж успешно перенесен.");
                    Log.add("Персонаж " + player.getName() + " перенесён на акаунт " + _name + " с акаунта " + player.getAccountName(), "services");
                    player.logout(false, false, false, true);
                }
                else
                {
                    player.sendMessage("Введенный аккаунт не найден.");
                    CharToAcc();
                }
            }
            catch(Exception e)
            {
                e.printStackTrace();
                return;
            }
            finally
            {
                DatabaseUtils.closeDatabaseCSR(con, offline, rs);
                DatabaseUtils.closeDatabaseCS(conGS, statement);
            }
        }
    
        public void onLoad()
        {}
    
        public void onReload()
        {}
    
        public void onShutdown()
        {}
    }
     
  2. DeadPool

    DeadPool Пляшущий с бубном
    Постоялец

    Регистрация:
    10 ноя 2017
    Сообщения:
    144
    Симпатии:
    79
    Skype:
    poshlya4ok666
    И что тут уникального? Другие импорты и вывод сообщения в лог ГСа?
    P.S. шара first-team за 2013-2014 год:
    Код:
    package services;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    import l2ft.commons.dbutils.DbUtils;
    import l2ft.gameserver.Config;
    import l2ft.gameserver.data.xml.holder.ItemHolder;
    import l2ft.gameserver.database.DatabaseFactory;
    import l2ft.gameserver.model.Player;
    import l2ft.gameserver.scripts.Functions;
    import l2ft.gameserver.scripts.ScriptFile;
    
    public class Account extends Functions implements ScriptFile
    {
      
        public void Show()
        {
            Player player = (Player) getSelf();
            if(player == null)
                return;
            if (!Config.SERVICES_ACC_MOVE_ENABLED)
            {
                show(player.isLangRus() ? "Сервис отключен.":"Service is disabled.", player);
                return;
            }
            String append = player.isLangRus() ? "Перенос персонажей между аккаунтами.<br>":"Transfer characters between accounts.<br>";
            append += player.isLangRus() ? "Цена: " + Config.SERVICES_ACC_MOVE_PRICE + " " + ItemHolder.getInstance().getTemplate(Config.SERVICES_ACC_MOVE_ITEM).getName() + ".<br>":"Price: " + Config.SERVICES_ACC_MOVE_PRICE + " " + ItemHolder.getInstance().getTemplate(Config.SERVICES_ACC_MOVE_ITEM).getName() + ".<br>";
            append += player.isLangRus() ? "Внимание !!! При переносе персонажа на другой аккаунт, убедитесь что персонажей там меньше чем 7, иначе могут возникнуть непредвиденные ситуации за которые Администрация не отвечает.<br>":"Attention! When you transfer a character to another account, make sure that the characters there is less than 7, or there might be unforeseen situations for which the Administration is not responsible.<br>";
            append += player.isLangRus() ? "Внимательно вводите логин куда переносите, администрация не возвращает персонажей.":"Carefully enter the username to transfer, the administration does not return characters.";
            append += player.isLangRus() ? "Внимание !!! После успешного переноса персонажа на другой аккаунт клиент закроется!!!!.":"Attention! After a successful migration character to another customer's account will be closed!!.";
            append += player.isLangRus() ? "Вы переносите персонажа " + player.getName() + ", на какой аккаунт его перенести ?":"You transfer your character " + player.getName() + ", on which account to transfer it?";
            append += "<edit var=\"new_acc\" width=150>";
            append += player.isLangRus() ? "<button value=\"Перенести\" action=\"bypass -h scripts_services.Account:NewAccount $new_acc\" width=150 height=15><br>":"<button value=\"Transfer\" action=\"bypass -h scripts_services.Account:NewAccount $new_acc\" width=150 height=15><br>";
            show(append, player, null);
          
        }
    
        public void NewAccount(String[] name)
        {
            Player player = (Player) getSelf();
            if(player == null)
                return;
            if (!Config.SERVICES_ACC_MOVE_ENABLED)
            {
                show(player.isLangRus() ? "Сервис отключен.":"Service is disabled.", player);
                return;
            }
            if(player.getInventory().getCountOf(Config.SERVICES_ACC_MOVE_ITEM) < Config.SERVICES_ACC_MOVE_PRICE)
            {
                player.sendMessage(player.isLangRus() ? "У вас нету " + Config.SERVICES_ACC_MOVE_PRICE + " " + ItemHolder.getInstance().getTemplate(Config.SERVICES_ACC_MOVE_ITEM):"You have no " + Config.SERVICES_ACC_MOVE_PRICE + " " + ItemHolder.getInstance().getTemplate(Config.SERVICES_ACC_MOVE_ITEM));
                Show();
                return;
            }
            String _name = name[0];
            Connection con = null;
            Connection conGS = null;
            PreparedStatement offline = null;
            Statement statement = null;
            ResultSet rs = null;
            try
            {
                con = DatabaseFactory.getInstance().getConnection();
                offline = con.prepareStatement("SELECT `login` FROM `accounts` WHERE `login` = ?");
                offline.setString(1, _name);
                rs = offline.executeQuery();
                if(rs.next())
                {
                    removeItem(player, Config.SERVICES_ACC_MOVE_ITEM, Config.SERVICES_ACC_MOVE_PRICE);
                    conGS = DatabaseFactory.getInstance().getConnection();
                    statement = conGS.createStatement();
                    statement.executeUpdate("UPDATE `characters` SET `account_name` = '" + _name + "' WHERE `char_name` = '" + player.getName() + "'");
                    player.sendMessage(player.isLangRus() ? "Персонаж успешно перенесен.":"Character is successfully transferred.");
                    player.logout();
                }
                else
                {
                    player.sendMessage(player.isLangRus() ? "Введенный аккаунт не найден.":"The entered account is not found.");
                    Show();
                }
            }
            catch(Exception e)
            {
                e.printStackTrace();
                return;
            }
            finally
            {
                DbUtils.closeQuietly(con, offline, rs);
                DbUtils.closeQuietly(conGS, statement);
            }
        }
    
        public void onLoad()
        {}
    
        public void onReload()
        {}
    
        public void onShutdown()
        {}
    }
    
    P.S.S. русские символы нормально в логах пишет? :D
    Код:
                    Log.add("Персонаж " + player.getName() + " перенесён на акаунт " + _name + " с акаунта " + player.getAccountName(), "services");
    
     
  3. Ms.Derailment

    Ms.Derailment Капля-Доверия
    Админы не рекомендуют.

    Регистрация:
    12 апр 2018
    Сообщения:
    25
    Симпатии:
    2
    Как бы это с овпен тим исхода)
     
  4. DeadPool

    DeadPool Пляшущий с бубном
    Постоялец

    Регистрация:
    10 ноя 2017
    Сообщения:
    144
    Симпатии:
    79
    Skype:
    poshlya4ok666
    Open team - тот же фт, я большой разницы в них не увидел, почище разве что сурс немного ,а так косяки все те же в пакетке например
     
    Maiden7 нравится это.

Партнеры