Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   La2Phoenix rev. 17352M (шара.) (https://forum.zone-game.info/showthread.php?t=6514)

KRlT 20.02.2010 18:24

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от GoodShadow (Сообщение 56423)
О.О причём тут ядро в sql? ошибка в поле crystal_type оно пустое, впиши none и радуйся ;)

А вот поле это `crystal_type` enum('none','d','c','b','a','s','s80','s84') NOT NULL DEFAULT 'none',

И Что куда сдесь дописывать??

Goodday 20.02.2010 18:30

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от invalid (Сообщение 56420)
Выложи просто так) я спасибками каждый твой пост затыкаю) больше просто нет ничё((((

Хорошо я выложу, но сразу говорю, я просто переписал под феникс энчантер с панели гудшадов.

PHP код:

package services.PVPCommunityBoard;

import javolution.util.FastList;
import l2p.extensions.scripts.Functions;
import l2p.extensions.scripts.ScriptFile;
import l2p.gameserver.model.items.Inventory;
import l2p.gameserver.model.L2Object;
import l2p.gameserver.model.L2Player;
import l2p.gameserver.model.L2Skill;
import l2p.gameserver.model.items.L2ItemInstance;
import l2p.gameserver.tables.SkillTable;
import l2p.gameserver.templates.L2Item;
import l2p.gameserver.model.base.PlayerAccess;
import l2p.gameserver.model.items.PcInventory;
import l2p.gameserver.serverpackets.*;
import l2p.util.Log;

public class 
EnchCB extends Functions implements ScriptFile
{
    
    private static final 
int MONEY_ID 4356// ID вещи за которую точим шмот и преобретаем статусы
    
private static final int ENCHANT_WEAPON_NUMBER_LIST[] = {
        
10152025
    
}; // Уровни заточки оружия
    
private static final int ENCHANT_WEAPON_COAL_LIST[] = {
        
15304570
    
}; // Цена заточки оружия
    
private static final int ENCHANT_ARMOR_NUMBER_LIST[] = {
        
10152025
    
}; // Уровни заточки брони
    
private static final int ENCHANT_ARMOR_COAL_LIST[] = {
        
15304570
    
}; // Цена заточки брони
    
private static final int ENCHANT_JEWEL_NUMBER_LIST[] = {
        
10152025
    
}; // Уровни заточки Бижы
    
private static final int ENCHANT_JEWEL_COAL_LIST[] = {
        
304570100
    
}; // Цена заточки Бижы

    
private static int hmsg;
    private static 
boolean _active false;

    public 
void onLoad()
    {
        
System.out.println("Loaded Service: CommunityBoard Enchant [state: OK]");
    }

    public 
void onReload()
    {
        
System.out.println("Reloaded Service: CommunityBoard Enchant [state: OK]");
    }

    public 
void onShutdown()
    {}

    public 
void startEvent()
    {

    }

    public 
void stopEvent()
    {

    }

    public 
void enchantWeapon(final String[] var)
    {
        final 
L2Player player = (L2PlayergetSelf();
        if(
player == null)
        {
            return;
        }
        

        final 
int EnchVal ENCHANT_WEAPON_NUMBER_LIST[Integer.valueOf(var[0])];
        final 
int CoinCount ENCHANT_WEAPON_COAL_LIST[Integer.valueOf(var[0])];

        if(!
checkCondition(playerCoinCount))
            return;

        
L2ItemInstance WeaponInSlot null;

        
L2ItemInstance weaponType player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);

        if(
weaponType != null && weaponType.getEquipSlot() == Inventory.PAPERDOLL_RHAND)
            
WeaponInSlot weaponType;
        else
        {
            
weaponType player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LRHAND);
            if(
weaponType != null && weaponType.getEquipSlot() == Inventory.PAPERDOLL_LRHAND)
                
WeaponInSlot weaponType;
        }

        if(
WeaponInSlot != null)
        {
            
removeItem(playerMONEY_IDCoinCount);

            
player.getInventory().unEquipItemInSlot(WeaponInSlot.getEquipSlot());
            
WeaponInSlot.setEnchantLevel(EnchVal);
            
player.getInventory().equipItem(WeaponInSlottrue);

            
player.sendPacket(new InventoryUpdate().addModifiedItem(WeaponInSlot));
            
player.broadcastUserInfo(true);

                
player.sendMessage("Your weapon has been enchanted to " EnchVal ".");

            
Log.add(player "Has by weapon enchant for" WeaponInSlot "weapon""wmzSeller");
        }

    }

    public 
void enchantArmor(final String[] var)
    {
        final 
L2Player player = (L2PlayergetSelf();
        if(
player == null)
        {
            return;
        }
        
        final 
int EnchVal ENCHANT_ARMOR_NUMBER_LIST[Integer.valueOf(var[0])];
        final 
int CoinCount ENCHANT_ARMOR_COAL_LIST[Integer.valueOf(var[0])];

        if( !
checkCondition(playerCoinCount))
            return;

        
int SetArm 0;
        for(final 
L2Skill setSkill player.getAllSkills())
        {
            if(
setSkill.getName().equalsIgnoreCase("Equipped with Shield"))
            {}
            if( !(
setSkill.getName().endsWith("Set") && setSkill.getId() >= 700))
                continue;
            else
                
SetArm setSkill.getId();
        }

        
L2ItemInstance armorInChestSlot null;
        final 
L2ItemInstance armor player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST);

        if(
SetArm == 0)
        {
            if(
armor.getItem().getName().contains("Dynasty"))
                
SetArm 1;
        }
        if(
SetArm == 0)
        {
                
player.sendMessage("You must equip full set for enchant");
            
player.sendActionFailed();
            return;
        }

        if(
armor != null && armor.getEquipSlot() == Inventory.PAPERDOLL_CHEST)
            
armorInChestSlot armor;

        
removeItem(playerMONEY_IDCoinCount);

        for(final 
L2ItemInstance item player.getInventory().getItems())
        {
            if(
item.isEquipped() && item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR)
            {
                
player.getInventory().unEquipItemInSlot(item.getEquipSlot());
                
item.setEnchantLevel(EnchVal);

                
player.sendMessage("Your armor has been enachant to " EnchVal ". Thx");
                
player.getInventory().equipItem(itemtrue);
                
player.sendPacket(new InventoryUpdate().addModifiedItem(item));
            }
        }
        
player.broadcastUserInfo(true);


        
Log.add(player "Has by armor enchant for" armorInChestSlot "and equiped full armor set for this""wmzSeller");
    }

    public 
void enchantJewel(final String[] var)
    {
        final 
L2Player player = (L2PlayergetSelf();
        if(
player == null)
        {
            return;
        }
        
        final 
int EnchVal ENCHANT_JEWEL_NUMBER_LIST[Integer.valueOf(var[0])];
        final 
int CoinCount ENCHANT_JEWEL_COAL_LIST[Integer.valueOf(var[0])];

        if( !
checkCondition(playerCoinCount))
            return;
        final 
FastList<L2ItemInstanceequiped = new FastList<L2ItemInstance>();

        for(final 
L2ItemInstance item player.getInventory().getItems())
            if(
item.isEquipped() && item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)
            {
                
equiped.add(item);
            }

        final 
int eqiptotal equiped.size();

        if(
eqiptotal 5)
        {
                
player.sendMessage("You must equip full set for enchant");
            return;
        }
        else
        {
            
removeItem(playerMONEY_IDCoinCount);
            for(final 
L2ItemInstance jewel equiped)
            {
                
player.getInventory().unEquipItemInSlot(jewel.getEquipSlot());
                
jewel.setEnchantLevel(EnchVal);
                
Log.add(player "Has by jewel enchant for" jewel"wmzSeller");
                
player.getInventory().equipItem(jeweltrue);
                
player.sendPacket(new InventoryUpdate().addModifiedItem(jewel));
            }
            
equiped.clear();
        }
        
player.broadcastUserInfo(true);

        
// сообщение
            
player.sendMessage("Your jewels has been enachant to  " EnchVal ". Thx");
    }

    public static 
boolean checkCondition(final L2Player player, final int CoinCount)
    {
        
synchronized(player)
        {
            if(
player == null)
                return 
false;

            final 
L2ItemInstance Coin player.getInventory().getItemByItemId(MONEY_ID);

            if(
Coin == null)
                
player.sendMessage("You have not enough Golds");

            if(
CoinCount != && player.getInventory().getItemByItemId(MONEY_ID).getCount() < CoinCount)
            {
                
player.sendMessage("You have not enough Golds");
                
player.sendActionFailed();
                return 
false;
            }

            return 
true;
        }
    }




Goodday 20.02.2010 18:33

Re: La2Phoenix rev. 17352M (шара.)
 
Вложений: 1
А это скомпиленный вариант.

GoodShadow 20.02.2010 18:47

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от Goodday (Сообщение 56426)
А это скомпиленный вариант.

Ты случайно не умеешь обходить протектор, я могла бы тебе дать лам гуард под сборку ;)

Протектор в клиенской части =)

Amneziya 20.02.2010 18:53

Re: La2Phoenix rev. 17352M (шара.)
 
не плохо было бы что бы ты ее выложила тут всем) порадовалиь бы

Goodday 20.02.2010 18:53

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от GoodShadow (Сообщение 56428)
Ты случайно не умеешь обходить протектор, я могла бы тебе дать лам гуард под сборку ;)

Протектор в клиенской части =)

Если разобраться то можно что угодно обойти, но щас пока занят (переписую олимп)

KRlT 20.02.2010 18:56

Re: La2Phoenix rev. 17352M (шара.)
 
GoodShadow так что поможешь мне??
Вот поле `crystal_type` enum('none','d','c','b','a','s','s80','s84') NOT NULL DEFAULT 'none',

только куда тут none вставить как ты сказал я незнаю подскажи плиз.

GoodShadow 20.02.2010 18:56

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от Amneziya (Сообщение 56431)
не плохо было бы что бы ты ее выложила тут всем) порадовалиь бы

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

Цитата:

Сообщение от KRlT (Сообщение 56433)
GoodShadow так что поможешь мне??
Вот поле `crystal_type` enum('none','d','c','b','a','s','s80','s84') NOT NULL DEFAULT 'none',

Можно полностью ошибку увидеть?

Цитата:

Сообщение от Goodday (Сообщение 56432)
Если разобраться то можно что угодно обойти, но щас пока занят (переписую олимп)


Олимп на сколько я понимаю нормальный, просто в sql или дп не корректный координат стоит.

Goodday 20.02.2010 19:02

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от GoodShadow (Сообщение 56434)
Олимп на сколько я понимаю нормальный, просто в sql или дп не корректный координат стоит.

Я вот так и не понял из-за чего люди пропадают друг у друга, по этому решил взять старый олимп и переписать под это реву.

GoodShadow 20.02.2010 19:03

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от Goodday (Сообщение 56435)
Я вот так и не понял из-за чего люди пропадают друг у друга, по этому решил взять старый олимп и переписать под это реву.

В старом олимпе не пашет 3 vs 3 ;) так что брать старый палка о двух концах.

ilyxa 21.02.2010 13:18

Re: La2Phoenix rev. 17352M (шара.)
 
Я все сделал как ты сказала переписал вот так вот запрос

INSERT INTO `armor` VALUES ('13888', 'Sealed Lord\'s Cloak', '', 'back', 'false', 'none', null, '220', 'none', '0', '-1', '0', '2', '0', '0', '0', '0', 'true', 'feud_load_cloak_i01', '0', '1', '0', '0', '0', '0', '0');

когда я переписал запрос все вроде начало заливаться нормально и в навикате в таблице появился этот запрос но потом опять вылетает такая вот ошибка

[Err] 1265 - Data truncated for column 'crystal_type' at row 1
[Err] INSERT INTO `prices` VALUES ('13888', 'Sealed Lord\'s Cloak', '', '0', '220', '', '0', 'false', 'armor', 'normal', 'EQUIPMENT', 'feud_load_cloak_i01');
[Msg] Finished - Unsuccessfully
но заливал та я уже как ты мне написала с исправлением на пустой запрос на none получается запрос я переделал правильно но оно все равно выдает ошибку что делать как теперь быть подскажите что можно сделать как исправить ?Или выложите кто не будь нормальную базу которую можно будет установить без ошибок очень буду признателен а то вообще не понять запрос я переписал а при заливки пишет что тот запрос все равно пустой.

FlowWK 21.02.2010 14:27

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от KRlT (Сообщение 56433)
GoodShadow так что поможешь мне??
Вот поле `crystal_type` enum('none','d','c','b','a','s','s80','s84') NOT NULL DEFAULT 'none',

только куда тут none вставить как ты сказал я незнаю подскажи плиз.

кошмар, называется стоавят серв. Вы хотьраз в ла2 играли? Даже видно что гудшадоу ин чего не знает ахахах, гвоорит поставит в тип вещи на none хахахх, ты хоть раз видела в игер грейд "none"? Просто убило, вот это доказывает, что ты ни черта незнаешь, а выкладываешь чужое.ГЛ

KRlT тебе надо выставить Грейд для вещи. Поищи в базе какой грейд у этой вещи, можешь ставить s80 или s84.

ilyxa 21.02.2010 14:49

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от FlowWK (Сообщение 56482)
кошмар, называется стоавят серв. Вы хотьраз в ла2 играли? Даже видно что гудшадоу ин чего не знает ахахах, гвоорит поставит в тип вещи на none хахахх, ты хоть раз видела в игер грейд "none"? Просто убило, вот это доказывает, что ты ни черта незнаешь, а выкладываешь чужое.ГЛ

KRlT тебе надо выставить Грейд для вещи. Поищи в базе какой грейд у этой вещи, можешь ставить s80 или s84.

и мне нужно делать тоже самое ? заместо пустого поля что нам гаварили ноне ставить нужно проставить s80 s84 ну сматря какой класс ? у шмотки по оффу ?а то у меня та же самая ошибка я там писал выше

atukal 21.02.2010 15:03

Re: La2Phoenix rev. 17352M (шара.)
 
PHP код:

INSERT INTO `armorVALUES (13888'Sealed Lord\'s Cloak''''back''false''none'220's84'0, -10200286710000true'feud_load_cloak_i01'1110000

а если точнее, твой запрос содержит лишний столбик

INSERT INTO `armor` VALUES ('13888', 'Sealed Lord\'s Cloak', '', 'back', 'false', 'none', null, '220', 'none', '0', '-1', '0', '2', '0', '0', '0', '0', 'true', 'feud_load_cloak_i01', '0', '1', '0', '0', '0', '0', '0');

Goodday 21.02.2010 15:25

Re: La2Phoenix rev. 17352M (шара.)
 
Мда, всё верно гудшадов сказала нужно поставить у ~8 вещей грейд none.

FlowWK 21.02.2010 15:51

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от ilyxa (Сообщение 56485)
и мне нужно делать тоже самое ? заместо пустого поля что нам гаварили ноне ставить нужно проставить s80 s84 ну сматря какой класс ? у шмотки по оффу ?а то у меня та же самая ошибка я там писал выше

да я поставил лишь грейд вещи, и все гладко залилось.
Цитата:

Сообщение от atukal (Сообщение 56486)
PHP код:

INSERT INTO `armorVALUES (13888'Sealed Lord\'s Cloak''''back''false''none'220's84'0, -10200286710000true'feud_load_cloak_i01'1110000

а если точнее, твой запрос содержит лишний столбик

INSERT INTO `armor` VALUES ('13888', 'Sealed Lord\'s Cloak', '', 'back', 'false', 'none', null, '220', 'none', '0', '-1', '0', '2', '0', '0', '0', '0', 'true', 'feud_load_cloak_i01', '0', '1', '0', '0', '0', '0', '0');

хм, мб разные версии?)) Как я написал выше, поменял лишь грейд шмотки.

Tollon 22.02.2010 01:42

Re: La2Phoenix rev. 17352M (шара.)
 
Чем вы распаковываете Class файлы?
Читал на васме про декомпиляторы, все склоняются к этому ClassJUnpk http://www.sendspace.com/file/ujaco7
Скомпилил ядро, попробывал декомпилить им, 80% кода только вытянул.

Кто что может другое посоветывать?

GoodShadow 22.02.2010 01:55

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от ilyxa (Сообщение 56478)
Я все сделал как ты сказала переписал вот так вот запрос

INSERT INTO `armor` VALUES ('13888', 'Sealed Lord\'s Cloak', '', 'back', 'false', 'none', null, '220', 'none', '0', '-1', '0', '2', '0', '0', '0', '0', 'true', 'feud_load_cloak_i01', '0', '1', '0', '0', '0', '0', '0');

когда я переписал запрос все вроде начало заливаться нормально и в навикате в таблице появился этот запрос но потом опять вылетает такая вот ошибка

[Err] 1265 - Data truncated for column 'crystal_type' at row 1
[Err] INSERT INTO `prices` VALUES ('13888', 'Sealed Lord\'s Cloak', '', '0', '220', '', '0', 'false', 'armor', 'normal', 'EQUIPMENT', 'feud_load_cloak_i01');
[Msg] Finished - Unsuccessfully
но заливал та я уже как ты мне написала с исправлением на пустой запрос на none получается запрос я переделал правильно но оно все равно выдает ошибку что делать как теперь быть подскажите что можно сделать как исправить ?Или выложите кто не будь нормальную базу которую можно будет установить без ошибок очень буду признателен а то вообще не понять запрос я переписал а при заливки пишет что тот запрос все равно пустой.

Код:

[Err] INSERT INTO `prices` VALUES ('13888', 'Sealed Lord\'s Cloak', '', '0', '220', '', '0', 'false', 'armor', 'normal', 'EQUIPMENT', 'feud_load_cloak_i01');
[Msg] Finished - Unsuccessfully

И где тут none в поле тип_кристал? скину sql как проснусь.

Цитата:

Сообщение от FlowWK (Сообщение 56482)
кошмар, называется стоавят серв. Вы хотьраз в ла2 играли? Даже видно что гудшадоу ин чего не знает ахахах, гвоорит поставит в тип вещи на none хахахх, ты хоть раз видела в игер грейд "none"? Просто убило, вот это доказывает, что ты ни черта незнаешь, а выкладываешь чужое.ГЛ

KRlT тебе надо выставить Грейд для вещи. Поищи в базе какой грейд у этой вещи, можешь ставить s80 или s84.


Могу тебя обрадовать, у меня стоит эпилог и там ноу грейд плащи.

Fatalboy 22.02.2010 10:33

Re: La2Phoenix rev. 17352M (шара.)
 
где в етой сборке прописывается лвл персонажей!?

MaT 23.02.2010 14:54

Re: La2Phoenix rev. 17352M (шара.)
 
в общем суть проблемы, при выбори диалога у нпц заточить скилы, окно с возможностью заточить не появляется, как это можно исправить?

Goodday 23.02.2010 16:28

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от MaT (Сообщение 56829)
в общем суть проблемы, при выбори диалога у нпц заточить скилы, окно с возможностью заточить не появляется, как это можно исправить?

Папку систем смени.

Travesil 23.02.2010 22:57

Re: La2Phoenix rev. 17352M (шара.)
 
Помогите вот логин пароль проходит а при выборе серва не входит серв видит.Версия La2Phoenix 17352

Логи:
Свернуть ↑Развернуть ↓

Заметил что одного чара получилось создать и он входит постояно а других нельзя создать не пускает на серв при выборе серва?

Goodday 23.02.2010 23:40

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от Travesil (Сообщение 56910)
Помогите вот логин пароль проходит а при выборе серва не входит серв видит.Версия La2Phoenix 17352

Логи:
Свернуть ↑Развернуть ↓

Заметил что одного чара получилось создать и он входит постояно а других нельзя создать не пускает на серв при выборе серва?

Если чар был создан через авто регу, то он может зайти только со второго раза, а вобще выкинь этот логин сервер ставь с 14** ревы.

Travesil 24.02.2010 00:21

Re: La2Phoenix rev. 17352M (шара.)
 
Вот большое спасибо, выручил, а я 1 пароль повторял один и тот же, а другие вбивал каждый раз новые. 3 дня втыкал в моник. Кину логин, как предложил ты, вот прочитал всю тему, хотел бы попросить дать l2pdb.sql модифицированный с меньшим количесвом ошибок. При загрузке сервера видно много ошибок про DOOR ID , Error while loading envoy(s) for Western Fortress,итд. И хотел узнать, кто-то может придумать GM SHOP с пухами и броней s80,s84, сам играл на этом серве месяца два, есть клиент под этот серв Asterios обновленый, ток толку мало, не знаю, как сделать, чтоб не шло обновление от них, а запусклась кнопа играть, сам плохо шарю((

sporty 24.02.2010 15:17

Re: La2Phoenix rev. 17352M (шара.)
 
помогите пожалуйста как отключить лог итемов кто нибудь пожалуйста сервер очень грузит а у меня железо слабое:o тоесть интернет

Goodday 24.02.2010 18:10

Re: La2Phoenix rev. 17352M (шара.)
 
Вобщем столкнулся сегодня с проблемой на своём пвп сервере, а это время баффов, я думаю такая проблема возникла у многих, увы разрабы феникса не предусмотрели такой конфиг, именно по этому мне и пришлось внести его. Выкладываю сразу исходники.

PHP код:

package services.PVPCommunityBoard;

import l2p.Config;
import l2p.extensions.scripts.Functions;
import l2p.extensions.scripts.ScriptFile;
import l2p.gameserver.ThreadPoolManager;
import l2p.gameserver.cache.Msg;
import l2p.gameserver.instancemanager.TownManager;
import l2p.gameserver.model.L2Character;
import l2p.gameserver.model.L2Player;
import l2p.gameserver.model.L2Skill;
import l2p.gameserver.model.L2Summon;
import l2p.gameserver.model.entity.olympiad.Olympiad;
import l2p.gameserver.model.entity.residence.Residence;
import l2p.gameserver.model.entity.siege.Siege;
import l2p.gameserver.model.instances.L2NpcInstance;
import l2p.gameserver.serverpackets.MagicSkillLaunched;
import l2p.gameserver.skills.effects.EffectTemplate;
import l2p.gameserver.tables.SkillTable;
import l2p.util.Files;
import l2p.util.Util;

public class 
CBBuffer extends Functions implements ScriptFile
{
    public 
L2NpcInstance npc;

    
    private static 
int CAST_TIME 0// время каста
    
private static int BUFF_TIME 120000 60// время баффа (2 часа) 
    
     
    
private static int grpCount1grpCount2grpCount3grpCount4grpCount5;


    private static 
int buffs[][] = { // id, lvl, group
            // Chants
                
{125125}, // Chant of Fury
                
{125235}, // Chant of Evasion
                
{125335}, // Chant of Rage
                
{146135}, // Chant of protect
                
{130835}, // Chant of Predator
                
{130935}, // Chant of Eagle
                
{131045}, // Chant of Vampire
                
{136215}, // Chant of Spirit
                
{136315}, // Chant of Victory
                
{139035}, // War Chant
                
{139135}, // Earth Chant
                // Songs
                
{26414}, // Song of Earth
                
{26514}, // Song of Life
                
{26614}, // Song of Water
                
{26714}, // Song of Warding
                
{26814}, // Song of Wind
                
{26914}, // Song of Hunter
                
{27014}, // Song of Invocation
                
{30414}, // Song of Vitality
                
{30614}, // Song of Flame Guard
                
{30814}, // Song of Storm Guard
                
{34914}, // Song of Renewal
                
{36314}, // Song of Meditation
                
{36414}, // Song of Champion
                // Dances
                
{27113}, // Dance of Warrior
                
{27213}, // Dance of Inspiration
                
{27313}, // Dance of Mystic
                
{27413}, // Dance of Fire
                
{27513}, // Dance of Fury
                
{27613}, // Dance of Concentration
                
{27713}, // Dance of Light
                
{30713}, // Dance of Aqua Guard
                
{30913}, // Dance of Earth Guard
                
{31013}, // Dance of Vampire
                
{31113}, // Dance of Protection
                
{36513}, // Dance of Siren
                // Группа для магов 2
            
70591}, // Wild Magic
            
43563}, // Empower
            
43553}, // Acumen
            
43521}, // Berserker Spirit
            
43464}, // Mental Shield
            
43443}, // Shield
            
43516}, // Concentration
            
43422}, // Wind Walk
            
43476}, // Bless the Body
            
43486}, // Bless the Soul
            
43504}, // Resist Shock
              
43504}, // Resist Shock
             
43476}, // Bless the Body
            
43486}, // Bless the Soul
            
43492}, // Magic Barrier
              
13913}, // Earth Chant
             
12523}, // Chant of Evasion
             
12843}, // Chant of Revenge
             
13621}, // Chant of Spirit
             
14131}, // Chant of Victory
            
13231}, // Noblesse of Blessing
             
2731}, // Dance of Mystic
              
2761}, // Dance of Concentration
             
3651}, // Dance of Siren
             
2641}, // Song of Earth
             
2661}, // Song of Water
            
2671}, // Song of Warding
            
2681}, // Song of Wind
             
3041}, // Song of Vitality
             
3061}, // Song of Flame Guard
            
3081}, // Song of Storm Guard
            
3491}, // Song of Renewal
            
3631}, // Song of Meditation        
             
45544}, // Hot Springs Malaria 4 lvl
                // Группа для воинов 1
            
43453}, // Might
            
43443}, // Shield
            
43492}, // Magic Barrier
            
43422}, // Wind Walk
            
43572}, // Haste
            
43593}, // Focus
            
43583}, // Guidance
            
43603}, // Death Whisper
            
43544}, // Vampiric Rage
            
43464}, // Mental Shield
             
43521}, // Berserker Spirit
             
43504}, // Resist Shock
             
43476}, // Bless the Body
            
43486}, // Bless the Soul
             
13913}, // Earth Chant
             
12523}, // Chant of Evasion
             
12843}, // Chant of Revenge
             
13621}, // Chant of Spirit
            
13631}, // Chant of Victory
            
13231},  // Noblesse of Blessing
            
2711}, // Dance of Warrior
            
2741}, // Dance of Fire
            
2751}, // Dance of Fury
             
2641}, // Song of Earth
             
2671}, // Song of Warding
            
2681}, // Song of Wind
            
2691}, // Song of Hunter
            
3041}, // Song of Vitality
             
3061}, // Song of Flame Guard
            
3081}, // Song of Storm Guard
             
3491}, // Song of Renewal
            
3641}  // Song of Champion            
            
};

    public 
void onLoad()
    {
        if(
Config.SERVICES_BUFFER_ENABLED)
            
System.out.println("Loaded Service: CBBuffer [state: ON]");
        else
            
System.out.println("Loaded Service: CBBuffer [state: OFF]");

        for(final 
int buff[] : buffs)
            switch(
buff[2])
            {
                case 
1:
                    
grpCount1++;
                    break;
                case 
2:
                    
grpCount2++;
                    break;
                case 
3:
                    
grpCount3++;
                    break;
                case 
4:
                    
grpCount4++;
                    break;
                case 
5:
                    
grpCount5++;
                    break;
            }
    }

    public 
void onReload()
    {}

    public 
void onShutdown()
    {}

    public 
void doBuffGroup(final String[] args)
    {
        
//final L2Player player = (L2Player) self;
        
        
final L2Player player = (L2Player)getSelf();
        final 
L2Summon pet player.getPet();


        
        if( !
checkCondition(player))
            return;

        if(
player.getAdena() < Config.SERVICES_BUFFER_PRICE * (Integer.valueOf(args[1]) + 2))
        {
            
player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
            return;
        }
        
player.reduceAdena(Config.SERVICES_BUFFER_PRICE * (Integer.valueOf(args[1]) + 2));

        
int time 0;
        final 
int id_groups Integer.valueOf(args[0]);
        final 
int select_id Integer.valueOf(args[1]);
        
L2Skill skill;
        for(final 
int buff[] : buffs)
            if(
buff[2] == id_groups)
            {
                if(
select_id == 0)
                {
                    
skill SkillTable.getInstance().getInfo(buff[0], buff[1]);
                    for(
EffectTemplate et skill.getEffectTemplates())
                    {
                        
et.setPeriod(BUFF_TIME);
                    }
                    
                    
ThreadPoolManager.getInstance().scheduleGeneral(new BeginBuff(playerskillplayer), CAST_TIME);
                    
time += 0;
                }
                if(
select_id == 1)
                {
                    if(
pet == null)
                        return;

                    
skill SkillTable.getInstance().getInfo(buff[0], buff[1]);
                    for(
EffectTemplate et skill.getEffectTemplates())
                    {
                        
et.setPeriod(BUFF_TIME);
                    }
                    
                    
ThreadPoolManager.getInstance().scheduleGeneral(new BeginPetBuff(playerskillpet), CAST_TIME);
                    
time += 0;
                }
            }
    }

    public 
void doBuff(final String[] args)
    {
        final 
L2Player player = (L2Player)getSelf();
        final 
L2Summon pet player.getPet();

        if( !
checkCondition(player))
            return;

        if(
player.getAdena() < Config.SERVICES_BUFFER_PRICE)
        {
            
player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
            return;
        }

        try
        {
            final 
int skill_id Integer.valueOf(args[0]);
            final 
int skill_lvl Integer.valueOf(args[1]);
            final 
int select_id Integer.valueOf(args[2]);
            final 
L2Skill skill SkillTable.getInstance().getInfo(skill_idskill_lvl);
            for(
EffectTemplate et skill.getEffectTemplates())
            {
            
et.setPeriod(BUFF_TIME);
            }
                    
            
            if(
select_id == 0)                
                
ThreadPoolManager.getInstance().scheduleGeneral(new BeginBuff(playerskillplayer), CAST_TIME);
        
            if(
select_id == 1)
            {
                if(
pet == null)
                    return;
                    
                
ThreadPoolManager.getInstance().scheduleGeneral(new BeginPetBuff(playerskillpet), CAST_TIME);
            }
            
player.reduceAdena(Config.SERVICES_BUFFER_PRICE);
        }
        catch(final 
Exception e)
        {
            
player.sendMessage("Invalid skill!");
        }

    }

    public 
void speedBuff(final String[] args)
    {
        final 
L2Player player = (L2Player)getSelf();
        final 
L2Summon pet player.getPet();

        if( !
checkCondition(player))
            return;

        if(
player.getAdena() < Config.SERVICES_BUFFER_PRICE)
        {
            
player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
            return;
        }

        try
        {
            final 
int skill_id Integer.valueOf(args[0]);
            final 
int skill_lvl Integer.valueOf(args[1]);
            final 
int select_id Integer.valueOf(args[2]);
            final 
L2Skill skill SkillTable.getInstance().getInfo(skill_idskill_lvl);
                    
            
            if(
select_id == 0)            
                
ThreadPoolManager.getInstance().scheduleGeneral(new BeginBuff(playerskillplayer), CAST_TIME);
            
            if(
select_id == 1)
            {
                if(
pet == null)
                    return;


                
ThreadPoolManager.getInstance().scheduleGeneral(new BeginPetBuff(playerskillpet), CAST_TIME);
            }
            
player.reduceAdena(Config.SERVICES_BUFFER_PRICE);
            
            
show("data/scripts/commands/voiced/buff.html"player);

        }
        catch(final 
Exception e)
        {
            
player.sendMessage("Invalid skill!");
        }

    }    
    
    public 
boolean checkCondition(final L2Player player)
    {
        if( !
Config.SERVICES_BUFFER_ENABLED || player == null)
            return 
false;

        if(
player.getOlympiadGameId() != -|| Olympiad.isRegisteredInComp(player))
        {
            
show("Buff sell are closed for Oly time."player);
            return 
false;
        }
        
String html;

        if(
player.getLevel() > Config.SERVICES_BUFFER_MAX_LVL || player.getLevel() < Config.SERVICES_BUFFER_MIN_LVL)
        {
            
html Files.read("data/scripts/services/NPCBuffer/no-lvl.htm"player);
            
html html.replace("%min_lvl%"Integer.toString(Config.SERVICES_BUFFER_MIN_LVL));
            
html html.replace("%max_lvl%"Integer.toString(Config.SERVICES_BUFFER_MAX_LVL));
            
show(htmlplayer);
            return 
false;
        }

        if( !
Config.SERVICES_BUFFER_SIEGE)
        {
            
//final Residence castle = TownManager.getInstance().getClosestTown(self).getCastle();
            //final Siege siege = castle.getSiege();
            
            
final Residence castle TownManager.getInstance().getClosestTown(getSelf()).getCastle();
            final 
Siege siege castle.getSiege();
            
            if(
siege != null && siege.isInProgress())
            {
                
show(Files.read("data/scripts/services/NPCBuffer/no-siege.htm"player), player);
                return 
false;
            }
        }
        return 
true;
    }

    public 
void SelectMenu(final String[] args)
    {
        final 
int select_menu Integer.valueOf(args[0]);
        
        final 
L2Player player = (L2Player)getSelf();

        
String html null;

        if(
select_menu == 0)
            
html Files.read("data/scripts/services/NPCBuffer/buffschar.htm"player);

        if(
select_menu == 1)
        {
            if(
Config.SERVICES_BUFFER_PET_ENABLED != true)
                return;
            if(
player.getPet() == null)
                return;
            
html Files.read("data/scripts/services/NPCBuffer/buffspet.htm"player);
        }

        
assert html != null;
        
html html.replace("%grp_price1%"Util.formatAdena(Config.SERVICES_BUFFER_PRICE * (grpCount1 2)));
        
html html.replace("%grp_price2%"Util.formatAdena(Config.SERVICES_BUFFER_PRICE * (grpCount2 2)));
        
html html.replace("%grp_price3%"Util.formatAdena(Config.SERVICES_BUFFER_PRICE * (grpCount3 2)));
        
html html.replace("%grp_price4%"Util.formatAdena(Config.SERVICES_BUFFER_PRICE * (grpCount4 2)));
        
html html.replace("%grp_price5%"Util.formatAdena(Config.SERVICES_BUFFER_PRICE * (grpCount5 2)));
        
html html.replace("%buffs_in_grp1%"Integer.toString(grpCount1));
        
html html.replace("%buffs_in_grp2%"Integer.toString(grpCount2));
        
html html.replace("%buffs_in_grp3%"Integer.toString(grpCount3));
        
html html.replace("%buffs_in_grp4%"Integer.toString(grpCount4));
        
html html.replace("%buffs_in_grp5%"Integer.toString(grpCount5));
        
html html.replace("%price%"Util.formatAdena(Config.SERVICES_BUFFER_PRICE));
        
show(htmlplayer);
    }

    public class 
BeginBuff implements Runnable
    
{
        
L2Character _buffer;
        
L2Skill _skill;
        
L2Player _target;

        public 
BeginBuff(final L2Character buffer, final L2Skill skill, final L2Player target)
        {
            
_buffer buffer;
            
_skill skill;
            
_target target;
            
        }

        public 
void run()
        {
            if(
_target.isInOlympiadMode() || _target.isAttackingNow() || _target.isCastingNow() || _target.isInCombat())
                return;
            
//_buffer.broadcastPacket(new MagicSkillUse(_buffer, _target, _skill.getDisplayId(), _skill.getLevel(), _skill.getHitTime(), 0));
            
ThreadPoolManager.getInstance().scheduleGeneral(new EndBuff(_buffer_skill_target), CAST_TIME);
        }
    }

    public class 
EndBuff implements Runnable
    
{
        
L2Character _buffer;
        
L2Skill _skill;
        
L2Player _target;

        public 
EndBuff(final L2Character buffer, final L2Skill skill, final L2Player target)
        {
            
_buffer buffer;
            
_skill skill;
            
_target target;
        }

        public 
void run()
        {
            
_skill.getEffects(_buffer_targetfalsefalse);
            
//_buffer.broadcastPacket(new MagicSkillLaunched(_buffer.getObjectId(), _skill.getId(), _skill.getLevel(), _target, _skill.isOffensive()));
        
}
        
    }

    public class 
BeginPetBuff implements Runnable
    
{
        
L2Character _buffer;
        
L2Skill _skill;
        
L2Summon _target;

        public 
BeginPetBuff(final L2Character buffer, final L2Skill skill, final L2Summon target)
        {
            
_buffer buffer;
            
_skill skill;
            
_target target;
        }

        public 
void run()
        {
            
//_buffer.broadcastPacket(new MagicSkillUse(_buffer, _target, _skill.getDisplayId(), _skill.getLevel(), _skill.getHitTime(), 0));
            
ThreadPoolManager.getInstance().scheduleGeneral(new EndPetBuff(_buffer_skill_target), CAST_TIME);
        }
    }

    public class 
EndPetBuff implements Runnable
    
{
        
L2Character _buffer;
        
L2Skill _skill;
        
L2Summon _target;

        public 
EndPetBuff(final L2Character buffer, final L2Skill skill, final L2Summon target)
        {
            
_buffer buffer;
            
_skill skill;
            
_target target;
        }

        public 
void run()
        {
            
_skill.getEffects(_buffer_targetfalsefalse);
            
//_buffer.broadcastPacket(new MagicSkillLaunched(_buffer.getObjectId(), _skill.getId(), _skill.getLevel(), _target, _skill.isOffensive()));
        
}
    }


PHP код:

package l2p.gameserver.skills.effects;

import java.util.Iterator;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.logging.Logger;
import l2p.gameserver.model.*;
import l2p.gameserver.model.L2Effect.EffectType;
import l2p.gameserver.skills.Env;
import l2p.gameserver.skills.conditions.Condition;
import l2p.gameserver.skills.funcs.FuncTemplate;
import l2p.gameserver.templates.StatsSet;

public final class 
EffectTemplate
{

    
    static 
Logger _log Logger.getLogger(EffectTemplate.class.getName());
    public static final 
String NO_STACK "none".intern();
    public 
Condition _attachCond;
    public final 
double _value;
    public final 
int _counter;
    public 
long _period;
    public final 
int _abnormalEffect;
    public 
FuncTemplate _funcTemplates[];
    public final 
EffectType _effectType;   
    public final 
String _stackType;
    public final 
String _stackType2;
    public final 
int _stackOrder;
    public final 
int _displayId;
    public final 
int _displayLevel;
    public final 
boolean _applyOnCaster;
    public final 
boolean _cancelOnAction;
    
    
    public 
EffectTemplate(StatsSet set)
    {
        
_value set.getDouble("value");         
        
_counter set.getInteger("count"1) < Integer.MAX_VALUE set.getInteger("count"1);        
           
_period Math.min(Integer.MAX_VALUE1000 * (set.getInteger("time"1) < Integer.MAX_VALUE set.getInteger("time"1)));              
        
_abnormalEffect set.getInteger("abnormal"0);     
        
_stackType set.getString("stackType"NO_STACK);
        
_stackType2 set.getString("stackType2"NO_STACK);
        
_stackOrder set.getInteger("stackOrder"_stackType != NO_STACK || _stackType2 != NO_STACK 1);
        
_applyOnCaster set.getBool("applyOnCaster"Boolean.valueOf(false)).booleanValue();
        
_cancelOnAction set.getBool("cancelOnAction"Boolean.valueOf(false)).booleanValue();
        
_displayId set.getInteger("displayId"0);
        
_displayLevel set.getInteger("displayLevel"0);        
        
_effectType set.getEnum("name"EffectType.class);
    
    }

    public 
L2Effect getEffect(Env env)
    {
        if(
_attachCond != null && !_attachCond.test(env))
            return 
null;
            else
        return 
_effectType.makeEffect(envthis);
    }

    public 
void attachCond(Condition c)
    {
        
_attachCond c;
    }

    public 
void attachFunc(FuncTemplate f)
    {
        if(
_funcTemplates == null)
            
_funcTemplates = new FuncTemplate[] {f};
        else
        {
            
int len _funcTemplates.length;
            
FuncTemplate[] tmp = new FuncTemplate[len 1];
            
System.arraycopy(_funcTemplates0tmp0len);
            
tmp[len] = f;
            
_funcTemplates tmp;
        }
    }

    public 
long getPeriod()
    {
        return 
_period;
    }

    public 
void setPeriod(long time)
    {
        
_period time;
    }    
    
    public 
EffectType getEffectType()
    {
        return 
_effectType;
    }

    public 
L2Effect getSameByStackType(ConcurrentLinkedQueue ef_list)
    {
        for(
Iterator i$ = ef_list.iterator(); i$.hasNext();)
        {
            
L2Effect ef = (L2Effect)i$.next();
            if(
ef != null && EffectList.checkStackType(ef._templatethis))
                return 
ef;
        }

        return 
null;
    }

    public 
L2Effect getSameByStackType(EffectList ef_list)
    {
        return 
getSameByStackType(ef_list.getAllEffects());
    }

    public 
L2Effect getSameByStackType(L2Character actor)
    {
        return 
getSameByStackType(actor.getEffectList().getAllEffects());
    }



Исходы не декомпил ;)

Добавлено через 12 минут
http://vtakte.net/Compile.zip

скомпиленный вариант.

cokol 24.02.2010 19:48

Re: La2Phoenix rev. 17352M (шара.)
 
Куда это пихать? ПвП я пихнул в скриптс.jar, а папку l2p куда пихать...Помоги плз, заранее благодарен, и еще скиньте EnchCB.class

Goodday 24.02.2010 20:05

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от cokol (Сообщение 57016)
Куда это пихать? ПвП я пихнул в скриптс.jar, а папку l2p куда пихать...Помоги плз, заранее благодарен, и еще скиньте EnchCB.class

l2pserver.jar переименуй в l2pserver.zip распакуй его и всё сразу станет ясно.

На счёт точилки она низкофункциональная нету её смысла даже ставить.

cokol 24.02.2010 20:08

Re: La2Phoenix rev. 17352M (шара.)
 
Спасибо, то есть точилку придется самому писать или у тя есть норм точилка?

Goodday 24.02.2010 20:16

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от cokol (Сообщение 57020)
Спасибо, то есть точилку придется самому писать или у тя есть норм точилка?

Есть только эта..

http://planetka.net/EnchCB.zip

sporty 24.02.2010 21:25

Re: La2Phoenix rev. 17352M (шара.)
 
помогите кто нибудь с логами итемов очень прошу.
я как понял это тут.пакет лог.ява который в утил.
/* */ public static final int CancelAgitAuction = 241;
/* */ public static final int CancelAgitBid = 242;
/* */ public static final int AutoAgitAuction = 243;
/* */ public static final int WinSiege = 244;
/* */ public static final int WinSiegeAlliance = 245;
/* */ public static final int AgitCost = 246;
/* */ public static final int UndoDismissPledge = 247;
/* */ public static final int CreateAlliance = 248;
/* */ public static final int JoinAlliance = 249;
/* */ public static final int DismissAlliance = 250;
/* */ public static final int OustAlliance = 251;
/* */ public static final int WithdrawAlliance = 252;
/* */ public static final int BuyItem = 901;
/* */ public static final int SellItem = 902;
/* */ public static final int Deposit = 903;
/* */ public static final int Retrieve = 904;
/* */ public static final int GetItem = 906;
/* */ public static final int DeleteItem = 907;
/* */ public static final int Drop = 908;
/* */ public static final int TradeGive = 909;
/* */ public static final int TradeGet = 910;
/* */ public static final int Use = 911;
/* */ public static final int NPCDrop = 912;
/* */ public static final int NPCShowSellPage = 913;
/* */ public static final int NPCShowBuyPage = 914;
/* */ public static final int DropItemWhenDied = 915;
/* */ public static final int TradeDone = 916;
/* */ public static final int TradeCanceled = 917;
/* */ public static final int BeginTrade = 918;
/* */ public static final int BeginDeposit = 919;
/* */ public static final int DepositDone = 920;
/* */ public static final int DepositCanceled = 921;
/* */ public static final int BeginRetrieval = 922;
/* */ public static final int RetrievalDone = 923;
/* */ public static final int RetrievalCanceled = 924;
/* */ public static final int EnchantItem = 925;
/* */ public static final int EnchantItemFail = 926;
/* */ public static final int DepositToWarehouse = 927;
/* */ public static final int DespositFee = 928;
/* */ public static final int RetrieveFromWarehouse = 929;
/* */ public static final int SetPrivateMsg = 930;
/* */ public static final int PrivateStoreSell = 931;
/* */ public static final int PrivateStoreBuy = 932;
/* */ public static final int CrystalizeItem = 933;
/* */ public static final int RecipeDelete = 934;
/* */ public static final int RecipeCreate = 935;
/* */ public static final int ShipDepart = 936;
/* */ public static final int ShipKicked = 937;
/* */ public static final int UseArrow = 938;
/* */ public static final int UseTelepoter = 939;
/* */ public static final int RelatedItem = 940;
/* */ public static final int SetBuyPrivateMsg = 941;
/* */ public static final int ItemAddFailed = 942;
/* */ public static final int RetrieveFromCastleWarehouse = 943;
/* */ public static final int DepositToCastleWarehouse = 944;
/* */ public static final int DepositFee2 = 945;
/* */ public static final int KeepPackage = 946;
/* */ public static final int KeepPackageFee = 947;
/* */ public static final int BuyItemTax = 948;
/* */ public static final int PrecedenceTax = 949;
/* */ public static final int CastleTax = 950;
/* */ public static final int SearchTax = 951;
/* */ public static final int GetItemByAutoLoot = 952;

ilyxa 24.02.2010 22:33

Re: La2Phoenix rev. 17352M (шара.)
 
народ кто не будь может выложить инстал базы как на нормальных серверах они идут установкой через cmd.

Travesil 24.02.2010 22:44

Re: La2Phoenix rev. 17352M (шара.)
 
Кто подскажет где включить или как настроить все эвенты на сервере чтоб запускались все при старте ? Да плиз дайте базы на отдельных sql видел скрин у автора темы есть)


Вот хоть чтото полезное выстовлю сам содрал перезалил тут ток магазин работает Community_Board http://dump.ru/file/4361378 s 80 s84 кто может вставить и выложить мод версию да и покупку проф перевести на котяру, цвет ника меняется веть с комунити.

Cagie 25.02.2010 11:49

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от GoodShadow (Сообщение 56361)
Новую ревизию сделаю для клиентов и выложу вместе с ДП и Ядром

не могли бы мне тоже кинуть ссылочку в лс?)

Travesil 25.02.2010 14:46

Re: La2Phoenix rev. 17352M (шара.)
 
Подскажите если папку геодаты переименовал и в ивори прыгаеш вниз возвращает назад откуда прыгал что менять в конфиге?

MaT 25.02.2010 15:07

Re: La2Phoenix rev. 17352M (шара.)
 
отсутсвие геодаты, там гео двиг так будет работать без геодаты .

Travesil 25.02.2010 20:54

Re: La2Phoenix rev. 17352M (шара.)
 
-Xms1g -Xmx1400m -Xmn192m StartGameServer выставил такие настройки вроде вместе с клиентом final кушает 1.8 гб но лагает кто подскажет как уменьшить количество загружаемых карт геодатой?

sporty 25.02.2010 20:58

Re: La2Phoenix rev. 17352M (шара.)
 
просто удали которые не надо

Cagie 25.02.2010 21:38

Re: La2Phoenix rev. 17352M (шара.)
 
а случайно нет ни у кого нпс бафера и класс менеджера? :-[

Goodday 25.02.2010 21:41

Re: La2Phoenix rev. 17352M (шара.)
 
Цитата:

Сообщение от Cagie (Сообщение 57189)
а случайно нет ни у кого нпс бафера и класс менеджера? :-[

Баффера я выше вылаживал..


Текущее время: 08:26. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot