Перейти к содержанию

GUSTAVO

Постоялец
  • Публикаций

    228
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1
  • Отзывы

    0%

Сообщения, опубликованные GUSTAVO


  1. import java.io.InputStream;
    import java.net.URL;
    import java.net.URLConnection;
    
    public class Test
    {
    	 public static void main(String[] args)
    	{
    		connectToUrl("", true);
    	}
    	
    	public static String connectToUrl(String URL_TO_SEND, boolean answer)
        {
            try
            {
                URL url = new URL(URL_TO_SEND);
                URLConnection uc = url.openConnection();
     
                InputStream in = uc.getInputStream();
                int ch; String text = "";
     
                while ((ch = in.read()) != -1)
                { text += (char) ch; }
     
                if (answer) System.out.println("\nСЕРВЕР ВЕРНУЛ:\n"+text+"\n");
                return text; // возвращает ответ сервера
            }
            catch(Exception e)
            {e.printStackTrace();}
            return null;
        }
    }
    
    

    Спасибо!!


  2. Добрый день! Кто может код который при запуске сервера делает запрос на хостинг, конкретно в текстовый файл на хостинге в котором в первой строке написано допустим test, ну и если в условии запроса надпись совпадает с надписью в текстовом файле на хостинге, то продолжать загрузку сервера, а если не совпадает, то выключать запуск сервера?? Крч кто эти слова может помочь на java язык перевести?) А ну и конечно же нужно, чтоб соединение было зашифровано) делаться будет под l2jserver, но думаю значения не имеет)


  3. отпиши в лс за пивасик помогу

    Ответ был прост. Нужно указать ip 0.0.0.0 в сборке. Как то странно, даже если на ip статический порты открыть , толку 0, а если открыть порты на 0.0.0.0 и указать в сборке этот ip, все запускается и работает.


  4. ищу человека, который поможет(Team viewer), сам не могу найти проблему(кодировка стоит везде UTF-8 без BOM). За некоторую оплату, в личку стучите.

    Скачайте лучше IntelliJ IDEA, у меня с эклипсом такая же ерунда была, а в ИДЕА нормально все встает.


  5. и да забыл (2. подучите грамматику ошибок очень много - без обид) сори я не в обиду но увы какой есть такой есть с русским у меня проблема грамматика не очень хотя книги очень много перечитал уж повер мне но вот *мат* с грамматикой ппц просто по этому очень мало пишу тут или где то еще стыдно мне за это ну чее я могу делать так что сори я надеюст вы меня поняли 

    Лучше L2jserver, команда работает много лет и до сих пор продолжает работать. Да и обновления выпускают ) ну это мое мнение, кому как)


  6. пример:

    Файл Config.java

    [spoiler=Файл Config.java]

    String[] propertySplit = enchantSettings.getProperty("NormalWeaponEnchantLevel", "").split(";");
    				for (String readData : propertySplit)
    				{
    					String[] writeData = readData.split(",");
    					if (writeData.length != 2)
    					{
    						continue;
    					}
    					try
    					{
    						NORMAL_WEAPON_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    					}
    					catch (NumberFormatException nfe)
    					{
    					}
    				}
    
    propertySplit = enchantSettings.getProperty("NormalArmorEnchantLevel", "").split(";");
    				for (String readData : propertySplit)
    				{
    					String[] writeData = readData.split(",");
    					if (writeData.length != 2)
    					{
    						continue;
    					}
    					try
    					{
    						NORMAL_ARMOR_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    					}
    					catch (NumberFormatException nfe)
    					{
    					}
    				}
    
    propertySplit = enchantSettings.getProperty("NormalJewelryEnchantLevel", "").split(";");
    				for (String readData : propertySplit)
    				{
    					String[] writeData = readData.split(",");
    					if (writeData.length != 2)
    					{
    						continue;
    					}
    					try
    					{
    						NORMAL_JEWELRY_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    					}
    					catch (NumberFormatException nfe)
    					{
    					}
    				} 

     

    Файл RequestEnchantItem.java

    [spoiler=Файл RequestEnchantItem.java]

    if (item.getItem().getType2() == L2Item.TYPE2_WEAPON)
    		{
    			for (int normalweaponscroll : NORMAL_WEAPON_SCROLLS)
    			{
    				if (scroll.getItemId() == normalweaponscroll)
    				{
    					if ((item.getEnchantLevel() + 1) > Config.NORMAL_WEAPON_ENCHANT_LEVEL.size())
    					{
    						chance = Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(Config.NORMAL_WEAPON_ENCHANT_LEVEL.size());
    					}
    					else
    					{
    						chance = Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    					}
    					maxEnchantLevel = Config.ENCHANT_MAX_WEAPON; // конфиг на макс заточку оружия
    				}
    			}
    		}
    		else if (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR)
    		{
    			for (int normalarmorscroll : NORMAL_ARMOR_SCROLLS)
    			{
    				if (scroll.getItemId() == normalarmorscroll)
    				{
    					
    					if ((item.getEnchantLevel() + 1) > Config.NORMAL_ARMOR_ENCHANT_LEVEL.size())
    					{
    						chance = Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(Config.NORMAL_ARMOR_ENCHANT_LEVEL.size());
    					}
    					else
    					{
    						chance = Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    					}
    					maxEnchantLevel = Config.ENCHANT_MAX_ARMOR; // конфиг на макс заточку брони
    				}
    			}
    		}
    		else if (item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)
    		{
    			for (int normaljewelscroll : NORMAL_ARMOR_SCROLLS)
    			{
    				if (scroll.getItemId() == normaljewelscroll)
    				{
    					if ((item.getEnchantLevel() + 1) > Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size())
    					{
    						chance = Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size());
    					}
    					else
    					{
    						chance = Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    					}
    					maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY; // конфиг на макс заточку бижутерии
    				}
    			}
    		}
    

     

    Файл enchant.properties

    [spoiler=Файл enchant.properties]

    # Weapon
    NormalWeaponEnchantLevel = 1,100;2,100;3,100;4,70;5,40;6,70;7,40;8,70;9,70;10,70;11,70;12,60;13,70;14,60;15,65;16,30;17,65;18,30;19,350;20,40;21,30;22,35;23,29;24,25;25,21;26,17;27,14;28,10;29,6;30,3;
    # Armor
    NormalArmorEnchantLevel = 1,100;2,100;3,100;4,63;5,60;6,65;7,63;8,60;9,60;10,55;11,45;12,40;13,35;14,35;15,30;16,40;17,41;18,41;19,40;20,38;21,49;22,47;23,67;24,59;25,41;26,41;27,41;28,41;29,31;30,21;
    # Jewelry
    NormalJewelryEnchantLevel = 1,100;2,100;3,100;4,63;5,60;6,65;7,63;8,60;9,60;10,55;11,45;12,40;13,35;14,35;15,30;16,40;17,41;18,41;19,40;20,38;21,49;22,47;23,67;24,59;25,41;26,41;27,41;28,41;29,31;30,21;
     

     

     

    P.s. Если не помог то сорян.

     

    Спасибо!


  7. может поможет

     

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

     

    парсеры лежат здесь "com\l2jserver\gameserver\data\xml\impl"

    ограничение на заточку то я сделал, с шансом не могу разобраться.

  8. запустил сборку grind-team HF, гоин и гейм работает без ошибок, а вот клиент не подключается к серверу вобще никак, менял 5 разных патчей, л2ини по 3 варианта ип, порты открыты, ип в конфигах написано поидее правильно, что делать?)

    ad14a4547d30.png

    Или отключи защиту в конфиге FirstGuard.ini или rGuard.ini , проверь вобщем как то так называется)


  9. Ребят, так и не разобрался с шансами в конфиг. Ткните носом, уже пару дней сижу туплю)

    Пусть переменная будет

    Config.CONFIG_ENCHANT_CHANCE;

     

    Куда в код ее впихнуть чтоб шанс настраивать через конфиг?

     

    В идеале отдельно сделать бы на шмот бижу и пухи, тогда возьмем

    Config.CONFIG_ENCHANT_CHANCE_WEAPON;

    Config.CONFIG_ENCHANT_CHANCE_ARMOR;

    Config.CONFIG_ENCHANT_CHANCE_JEWELL;

     

    В ядре нашел вот что:

     

    package com.l2jserver.gameserver.model.items.enchant;

    import java.util.logging.Logger;

    import com.l2jserver.Config;
    import com.l2jserver.gameserver.datatables.ItemTable;
    import com.l2jserver.gameserver.model.StatsSet;
    import com.l2jserver.gameserver.model.items.L2Item;
    import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
    import com.l2jserver.gameserver.model.items.type.CrystalType;
    import com.l2jserver.gameserver.model.items.type.EtcItemType;
    import com.l2jserver.gameserver.model.items.type.ItemType;
    import com.l2jserver.gameserver.util.Util;

    /**
    * @@Authority UnAfraid
    */
    public abstract class AbstractEnchantItem
    {
    protected static final Logger _log = Logger.getLogger(AbstractEnchantItem.class.getName());

    private static final ItemType[] ENCHANT_TYPES = new ItemType[]
    {
    EtcItemType.ANCIENT_CRYSTAL_ENCHANT_AM,
    EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP,
    EtcItemType.BLESS_SCRL_ENCHANT_AM,
    EtcItemType.BLESS_SCRL_ENCHANT_WP,
    EtcItemType.SCRL_ENCHANT_AM,
    EtcItemType.SCRL_ENCHANT_WP,
    EtcItemType.SCRL_INC_ENCHANT_PROP_AM,
    EtcItemType.SCRL_INC_ENCHANT_PROP_WP,
    };

    private final int _id;
    private final CrystalType _grade;
    private final int _maxEnchantLevel;
    private final double _bonusRate;

    public AbstractEnchantItem(StatsSet set)
    {
    _id = set.getInt("id");
    if (getItem() == null)
    {
    throw new NullPointerException();
    }
    else if (!Util.contains(ENCHANT_TYPES, getItem().getItemType()))
    {
    throw new IllegalAccessError();
    }
    _grade = set.getEnum("targetGrade", CrystalType.class, CrystalType.NONE);
    _maxEnchantLevel = set.getInt("maxEnchant", Config.MAX_ENCHANT_LEVEL);
    _bonusRate = set.getDouble("bonusRate", 0);
    }

    /**
    * @return id of current item
    */
    public final int getId()
    {
    return _id;
    }

    /**
    * @return bonus chance that would be added
    */
    public final double getBonusRate()
    {
    return _bonusRate;
    }

    /**
    * @return {@link L2Item} current item/scroll
    */
    public final L2Item getItem()
    {
    return ItemTable.getInstance().getTemplate(_id);
    }

    /**
    * @return grade of the item/scroll.
    */
    public final CrystalType getGrade()
    {
    return _grade;
    }

    /**
    * @return {@code true} if scroll is for weapon, {@code false} for armor
    */
    public abstract boolean isWeapon();

    /**
    * @return the maximum enchant level that this scroll/item can be used with
    */
    public int getMaxEnchantLevel()
    {
    return _maxEnchantLevel;
    }

    /**
    * @param itemToEnchant the item to be enchanted
    * @param supportItem
    * @return {@code true} if this support item can be used with the item to be enchanted, {@code false} otherwise
    */
    public boolean isValid(L2ItemInstance itemToEnchant, EnchantSupportItem supportItem)
    {
    if (itemToEnchant == null)
    {
    return false;
    }
    else if (itemToEnchant.isEnchantable() == 0)
    {
    return false;
    }
    else if (!isValidItemType(itemToEnchant.getItem().getType2()))
    {
    return false;
    }
    else if ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel))
    {
    return false;
    }
    else if (_grade != itemToEnchant.getItem().getItemGradeSPlus())
    {
    return false;
    }
    return true;
    }

    /**
    * @param type2
    * @return {@code true} if current type2 is valid to be enchanted, {@code false} otherwise
    */
    private final boolean isValidItemType(int type2)
    {
    if (type2 == L2Item.TYPE2_WEAPON)
    {
    return isWeapon();
    }
    else if ((type2 == L2Item.TYPE2_SHIELD_ARMOR) || (type2 == L2Item.TYPE2_ACCESSORY))
    {
    return !isWeapon();
    }
    return false;
    }
    }

     

     

    package com.l2jserver.gameserver.model.items.enchant;

    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;

    import com.l2jserver.gameserver.model.holders.RangeChanceHolder;

    /**
    * @@Authority UnAfraid
    */
    public final class EnchantItemGroup
    {
    private static final Logger _log = Logger.getLogger(EnchantItemGroup.class.getName());
    private final List
    _chances = new ArrayList<>();
    private final String _name;
    public EnchantItemGroup(String name)
    {
    _name = name;
    }

    /**
    * @return name of current enchant item group.
    */
    public String getName()
    {
    return _name;
    }

    /**
    * @param holder
    */
    public void addChance(RangeChanceHolder holder)
    {
    _chances.add(holder);
    }

    /**
    * @param index
    * @return chance for success rate for current enchant item group.
    */
    public double getChance(int index)
    {
    if (!_chances.isEmpty())
    {
    for (RangeChanceHolder holder : _chances)
    {
    if ((holder.getMin() <= index) && (holder.getMax() >= index))
    {
    return holder.getChance();
    }
    }
    _log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't match proper chance for item group: " + _name, new IllegalStateException());
    return _chances.get(_chances.size() - 1).getChance();
    }
    _log.log(Level.WARNING, getClass().getSimpleName() + ": item group: " + _name + " doesn't have any chances!");
    return -1;
    }
    }

     

     

    package com.l2jserver.gameserver.model.items.enchant;

    import com.l2jserver.gameserver.model.items.L2Item;

    /**
    * @@Authority UnAfraid
    */
    public final class EnchantRateItem
    {
    private final String _name;
    private int _itemId;
    private int _slot;
    private Boolean _isMagicWeapon = null;

    public EnchantRateItem(String name)
    {
    _name = name;
    }

    /**
    * @return name of enchant group.
    */
    public String getName()
    {
    return _name;
    }

    /**
    * Adds item id verification.
    * @param id
    */
    public void setItemId(int id)
    {
    _itemId = id;
    }

    /**
    * Adds body slot verification.
    * @param slot
    */
    public void addSlot(int slot)
    {
    _slot |= slot;
    }

    /**
    * Adds magic weapon verification.
    * @param magicWeapon
    */
    public void setMagicWeapon(boolean magicWeapon)
    {
    _isMagicWeapon = magicWeapon;
    }

    /**
    * @param item
    * @return {@code true} if item can be used with this rate group, {@code false} otherwise.
    */
    public boolean validate(L2Item item)
    {
    if ((_itemId != 0) && (_itemId != item.getId()))
    {
    return false;
    }
    else if ((_slot != 0) && ((item.getBodyPart() & _slot) == 0))
    {
    return false;
    }
    else if ((_isMagicWeapon != null) && (item.isMagicWeapon() != _isMagicWeapon))
    {
    return false;
    }
    return true;
    }
    }

     

     

    package com.l2jserver.gameserver.model.items.enchant;

    import java.util.HashSet;
    import java.util.Set;
    import java.util.logging.Level;

    import com.l2jserver.Config;
    import com.l2jserver.gameserver.data.xml.impl.EnchantItemGroupsData;
    import com.l2jserver.gameserver.model.StatsSet;
    import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
    import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
    import com.l2jserver.gameserver.model.items.type.EtcItemType;
    import com.l2jserver.gameserver.model.items.type.ItemType;
    import com.l2jserver.gameserver.network.Debug;
    import com.l2jserver.gameserver.util.Util;
    import com.l2jserver.util.Rnd;

    /**
    * @@Authority UnAfraid
    */
    public final class EnchantScroll extends AbstractEnchantItem
    {
    private final boolean _isWeapon;
    private final boolean _isBlessed;
    private final boolean _isSafe;
    private final int _scrollGroupId;
    private Set
    _items;

    public EnchantScroll(StatsSet set)
    {
    super(set);
    _scrollGroupId = set.getInt("scrollGroupId", 0);

    final ItemType type = getItem().getItemType();
    _isWeapon = (type == EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.BLESS_SCRL_ENCHANT_WP) || (type == EtcItemType.SCRL_ENCHANT_WP);
    _isBlessed = (type == EtcItemType.BLESS_SCRL_ENCHANT_AM) || (type == EtcItemType.BLESS_SCRL_ENCHANT_WP);
    _isSafe = (type == EtcItemType.ANCIENT_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP);
    }

    @@override
    public boolean isWeapon()
    {
    return _isWeapon;
    }

    /**
    * @return {@code true} for blessed scrolls (enchanted item will remain on failure), {@code false} otherwise
    */
    public boolean isBlessed()
    {
    return _isBlessed;
    }

    /**
    * @return {@code true} for safe-enchant scrolls (enchant level will remain on failure), {@code false} otherwise
    */
    public boolean isSafe()
    {
    return _isSafe;
    }

    /**
    * @return id of scroll group that should be used
    */
    public int getScrollGroupId()
    {
    return _scrollGroupId;
    }

    /**
    * Enforces current scroll to use only those items as possible items to enchant
    * @param itemId
    */
    public void addItem(int itemId)
    {
    if (_items == null)
    {
    _items = new HashSet<>();
    }
    _items.add(itemId);
    }

    /**
    * @param itemToEnchant the item to be enchanted
    * @param supportItem the support item used when enchanting (can be null)
    * @return {@code true} if this scroll can be used with the specified support item and the item to be enchanted, {@code false} otherwise
    */
    @@override
    public boolean isValid(L2ItemInstance itemToEnchant, EnchantSupportItem supportItem)
    {
    if ((_items != null) && !_items.contains(itemToEnchant.getId()))
    {
    return false;
    }
    else if ((supportItem != null))
    {
    if (isBlessed())
    {
    return false;
    }
    else if (!supportItem.isValid(itemToEnchant, supportItem))
    {
    return false;
    }
    else if (supportItem.isWeapon() != isWeapon())
    {
    return false;
    }
    }
    return super.isValid(itemToEnchant, supportItem);
    }

    /**
    * @param player
    * @param enchantItem
    * @return the chance of current scroll's group.
    */
    public double getChance(L2PcInstance player, L2ItemInstance enchantItem)
    {
    if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null)
    {
    _log.log(Level.WARNING, getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId());
    return -1;
    }

    final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getItem(), _scrollGroupId);
    if (group == null)
    {
    _log.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player);
    return -1;
    }
    return group.getChance(enchantItem.getEnchantLevel());
    }

    /**
    * @param player
    * @param enchantItem
    * @param supportItem
    * @return the total chance for success rate of this scroll
    */
    public EnchantResultType calculateSuccess(L2PcInstance player, L2ItemInstance enchantItem, EnchantSupportItem supportItem)
    {
    if (!isValid(enchantItem, supportItem))
    {
    return EnchantResultType.ERROR;
    }

    final double chance = getChance(player, enchantItem);

    if (chance == -1)
    {
    return EnchantResultType.ERROR;
    }

    final double bonusRate = getBonusRate();
    final double supportBonusRate = (supportItem != null) ? supportItem.getBonusRate() : 0;
    final double finalChance = Math.min(chance + bonusRate + supportBonusRate, 100);

    final double random = 100 * Rnd.nextDouble();
    final boolean success = (random < finalChance);

    if (player.isDebug())
    {
    final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getItem(), _scrollGroupId);
    final StatsSet set = new StatsSet();
    if (isBlessed())
    {
    set.set("isBlessed", isBlessed());
    }
    if (isSafe())
    {
    set.set("isSafe", isSafe());
    }
    set.set("chance", Util.formatDouble(chance, "#.##"));
    if (bonusRate > 0)
    {
    set.set("bonusRate", Util.formatDouble(bonusRate, "#.##"));
    }
    if (supportBonusRate > 0)
    {
    set.set("supportBonusRate", Util.formatDouble(supportBonusRate, "#.##"));
    }
    set.set("finalChance", Util.formatDouble(finalChance, "#.##"));
    set.set("random", Util.formatDouble(random, "#.##"));
    set.set("success", success);
    set.set("item group", group.getName());
    set.set("scroll group", _scrollGroupId);
    Debug.sendItemDebug(player, enchantItem, set);
    }
    return success ? EnchantResultType.SUCCESS : EnchantResultType.FAILURE;
    }
    }

     

     

    package com.l2jserver.gameserver.model.items.enchant;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;

    import com.l2jserver.gameserver.model.items.L2Item;

    /**
    * @@Authority UnAfraid
    */
    public final class EnchantScrollGroup
    {
    private final int _id;
    private List
    _rateGroups;

    public EnchantScrollGroup(int id)
    {
    _id = id;
    }

    /**
    * @return id of current enchant scroll group.
    */
    public int getId()
    {
    return _id;
    }

    /**
    * Adds new rate group.
    * @param group
    */
    public void addRateGroup(EnchantRateItem group)
    {
    if (_rateGroups == null)
    {
    _rateGroups = new ArrayList<>();
    }
    _rateGroups.add(group);
    }

    /**
    * @return {@code List} of all enchant rate items, Empty list if none.
    */
    public List
    getRateGroups()
    {
    return _rateGroups != null ? _rateGroups : Collections.
    emptyList();
    }

    /**
    * @param item
    * @return {@link EnchantRateItem}, {@code NULL} in case non of rate items can be used with.
    */
    public EnchantRateItem getRateGroup(L2Item item)
    {
    for (EnchantRateItem group : getRateGroups())
    {
    if (group.validate(item))
    {
    return group;
    }
    }
    return null;
    }
    }

     


  10. "=" это знак присваивания.

    из того что ты выше написал я исхожу что проще сделать будет так if (bodypart(как мне показалось из вышеупомянутого тобой это меч) ==(если он) lrhand(двуручный)) { твой код }

    "=" это знак присваивания. Нет я имел ввиду он так обозначен в item в датапаке.

    Именно так я написал в первом сообщении, что хочу сделать проверку что если меч двурук , как ты написал ( if (bodypart(как мне показалось из вышеупомянутого тобой это меч) ==(если он) lrhand(двуручный)) { твой код } ) , но я хз как, вот и спрашиваю конкретно что написать) как происходит проверка для скила в ядре)

    Тут скорее нужна помощь пользователей команды L2JSERVER ) кто знает где эта проверка лежит? или как мне сделать правильно?


  11. надо смотреть перебрать каждый тип посмотреть как реализован, возможно с названием напутали в сурсе, если нету то дописать

    Не не, тут сделано все так что просто проверяется меч двуручный или нет (bodypart=lrhand), а тип остается SWORD . Реализовано так. Вед работает и двурук распознается в игре и скилы пашет с ним. Просто тут проверка стоит на этот bodypart=lrhand , так вот я не могу найти где она написана под скилы например и как сделать мне под баланс соответсвенно.

    И если дописать как ты сказал, что каждому двурук придется в xml item дописывать тип BIGSWORD И BIGBLUNT , ведь они сейчас работают на SWORD и BLUNT , ну и скилы соответственно для двурук тоже переписывать в датапаке)


  12. Посмотреть метод WeaponType как у тебя в нем прописано каждое оружие

    Все что есть:

    SWORD(TraitType.SWORD),

    BLUNT(TraitType.BLUNT),

    DAGGER(TraitType.DAGGER),

    BOW(TraitType.BOW),

    POLE(TraitType.POLE),

    NONE(TraitType.NONE),

    DUAL(TraitType.DUAL),

    ETC(TraitType.ETC),

    FIST(TraitType.FIST),

    DUALFIST(TraitType.DUALFIST),

    FISHINGROD(TraitType.NONE),

    RAPIER(TraitType.RAPIER),

    ANCIENTSWORD(TraitType.ANCIENTSWORD),

    CROSSBOW(TraitType.CROSSBOW),

    FLAG(TraitType.NONE),

    OWNTHING(TraitType.NONE),

    DUALDAGGER(TraitType.DUALDAGGER);

     

     

    И да кстати, смотрел с data/stat/items двуруки все обозначены простым SWORD ну и указано что он lrhand

    <set name="weapon_type" val="SWORD" />

    <set name="bodypart" val="lrhand" />

     

     

    ну и как говорил так же и проверка в скилах идет на двурук

    <cond msgId="113" addName="1">
          <and>
                <using kind="SWORD,BLUNT" />
                <using slot="lrhand" />
          </and>
    </cond>

  13. Я думаю многие видели конфиг баланса дамага оружия на броню.

    (DaggerVsHeavy = 1.00

    DaggerVsLight = 1.00
    DaggerVsRobe = 1.00) и тд..

    Так вот есть проблема. Я его хочу перетащить в L2JServer который с репозитория команды.

    Но при добавлении ругается на :

    if ((attacker.isPlayer() && (target instanceof L2PcInstance) && (weapon != null) && (weapon.getItemType() == WeaponType.

    BIGSWORD) && (skill != null)))
    {
    L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
    if (armor != null)
    {
    if (((L2PcInstance) target).isWearingHeavyArmor())
    {
    damage *= Config.BIGSWORD_VS_HEAVY;
    }
    if (((L2PcInstance) target).isWearingLightArmor())
    {
    damage *= Config.BIGSWORD_VS_LIGHT;
    }
    if (((L2PcInstance) target).isWearingMagicArmor())
    {
    damage *= Config.BIGSWORD_VS_ROBE;
    }
    }
    }

     

     

    Посмотрел что да как и сделал выводы что в сборке двурук или двуручная дубина проверяются так:

    <cond msgId="113" addName="1">
          <and>
                <using kind="SWORD,BLUNT" />
                <using slot="lrhand" />
          </and>
    </cond>
    Это взято из скила.
    Собственно вопрос: Как в код добавить проверку на то что одет двурук?
    Например:
    if ((attacker.isPlayer() && (target instanceof L2PcInstance) && (weapon != null) && (weapon.getItemType() == WeaponType.BIGSWORD) && (skill != null) && (пушка одета в виде lrhand)))
    {
    L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
    if (armor != null)
    {
    if (((L2PcInstance) target).isWearingHeavyArmor())
    {
    damage *= Config.BIGSWORD_VS_HEAVY;
    }
    if (((L2PcInstance) target).isWearingLightArmor())
    {
    damage *= Config.BIGSWORD_VS_LIGHT;
    }
    if (((L2PcInstance) target).isWearingMagicArmor())
    {
    damage *= Config.BIGSWORD_VS_ROBE;
    }
    }
    }

    Нужен конкретный код.
    Хелп!)

  14. Всем привет! Подскажите как вывести по отдельности шанс точки на шмот, пухи и бижу в конфиг. В EnchantData.xml не удобно. Хочу чтоб в конфиге прописал как надо и все)

    Прошу ответы по теме. И не нужно говорить что разницы нет, там и так нормально и тд.. Мне нужно так, а как сделать хз, вот и спрашиваю людей поумнее в этой сфере) За адекватный ответ с меня +)

×
×
  • Создать...