Reliable 119 Posted September 10, 2013 Ребят подскажите как сделать что бы шмот ресы и т.д. игроки продавали в магазин по 1 адене, сборка сервер First-Team HF5, с меня ++ Share this post Link to post Share on other sites
VREDNbIi 145 Posted September 10, 2013 SET @Iteam_price = 0; UPDATE `armor` SET `price` = @Iteam_price; UPDATE `etcitem` SET `price` = @Iteam_price; UPDATE `weapon` SET `price` = @Iteam_price; как-то так.... хотя там вроде значение делится на 2 еще... если хочешь не ноль, поставь 2 Share this post Link to post Share on other sites
Reliable 119 Posted September 10, 2013 нету таких таблиц, все хранится в xml Share this post Link to post Share on other sites
VREDNbIi 145 Posted September 10, 2013 нету таких таблиц, все хранится в xml тогда ручками в xml ? =) логично тогда уж... <set name="price" value="500000"/> на <set name="price" value="1"/> Share this post Link to post Share on other sites
Reliable 119 Posted September 10, 2013 жесть, а может есть какае то альтернатива, типо поправка в ядре или в скриптах? Share this post Link to post Share on other sites
r2ndom 72 Posted September 10, 2013 (edited) В notepad++ выделяешь строчку, жмешь ctrl+f, заменить, ниже дописываешь тоже самое только со значанием 0, жмешь найти. Когда находит нужную строчку жмешь заменить. Если делать через ядро тебе в любом случае придется прописывать все вещи которые продаавать по 1 адене, так что проще тут. Если нужно заменить все строки то жмешь заменить все Edited September 10, 2013 by r2ndom Share this post Link to post Share on other sites
r2ndom 72 Posted September 10, 2013 Если что выкладывай сюда файл, поменяю Share this post Link to post Share on other sites
Reliable 119 Posted September 10, 2013 надо все итымы переписать, это ппц сколько времени. Share this post Link to post Share on other sites
DevGoD 342 Posted September 10, 2013 Как вариант пакет ExBuySellList поковырять. Share this post Link to post Share on other sites
Reliable 119 Posted September 10, 2013 (edited) Как вариант пакет ExBuySellList поковырять. может подскажешь что тут изменить? package l2ft.gameserver.network.l2.s2c; import java.util.ArrayList; import java.util.Collections; import java.util.List; import l2ft.gameserver.data.xml.holder.BuyListHolder.NpcTradeList; import l2ft.gameserver.model.Player; import l2ft.gameserver.model.items.ItemInstance; import l2ft.gameserver.model.items.TradeItem; public abstract class ExBuySellList extends L2GameServerPacket { public static class BuyList extends ExBuySellList { private final int _listId; private final List<TradeItem> _buyList; private final long _adena; private final double _taxRate; public BuyList(NpcTradeList tradeList, Player activeChar, double taxRate) { super(0); _adena = activeChar.getAdena(); _taxRate = taxRate; if(tradeList != null) { _listId = tradeList.getListId(); _buyList = tradeList.getItems(); activeChar.setBuyListId(_listId); } else { _listId = 0; _buyList = Collections.emptyList(); activeChar.setBuyListId(0); } } @Override protected void writeImpl() { super.writeImpl(); writeQ(_adena); // current money writeD(_listId); writeH(_buyList.size()); for(TradeItem item : _buyList) { writeItemInfo(item, item.getCurrentValue()); writeQ((long) (item.getOwnersPrice() * (1. + _taxRate))); } } } public static class SellRefundList extends ExBuySellList { private final List<TradeItem> _sellList; private final List<TradeItem> _refundList; private int _done; public SellRefundList(Player activeChar, boolean done) { super(1); _done = done ? 1 : 0; if(done) { _refundList = Collections.emptyList(); _sellList = Collections.emptyList(); } else { ItemInstance[] items = activeChar.getRefund().getItems(); _refundList = new ArrayList<TradeItem>(items.length); for(ItemInstance item : items) _refundList.add(new TradeItem(item)); items = activeChar.getInventory().getItems(); _sellList = new ArrayList<TradeItem>(items.length); for(ItemInstance item : items) if(item.canBeSold(activeChar)) _sellList.add(new TradeItem(item)); } } @Override protected void writeImpl() { super.writeImpl(); writeH(_sellList.size()); for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } writeH(_refundList.size()); for(TradeItem item : _refundList) { writeItemInfo(item); writeD(item.getObjectId()); writeQ(item.getCount() * item.getReferencePrice() / 2); } writeC(_done); } } private int _type; public ExBuySellList(int type) { _type = type; } @Override protected void writeImpl() { writeEx(0xB7); writeD(_type); } } Edited September 10, 2013 by Reliable Share this post Link to post Share on other sites
DevGoD 342 Posted September 10, 2013 for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле. для 1а ставим 1 2 Share this post Link to post Share on other sites
HECKBuK 229 Posted September 10, 2013 (edited) что бы не лезть в ядро, в NP++ есть такая функция как замена во всех файлах В поле искать пишем: <set name="price" value="*.*"/> В поле заменить пишем: <set name="price" value="0"/> Готово, все значения в файлах изменены на 0. П.с. внизу нужно поставить галочку "Регулярные выражения" п.с.2 не обязательно параметр может быть price, возможно он будет sellprice следовательно заменяем его. Если не понятно пишите скайп:heckbuktomsk Edited September 10, 2013 by HECKBuK Share this post Link to post Share on other sites
DevGoD 342 Posted September 10, 2013 Ну а зачем гемороится с сотней-другой файлов, когда можно заменить всего одну строку, ну или на крайняк конфиг вывести с условием в пакете. Share this post Link to post Share on other sites
Reliable 119 Posted September 10, 2013 for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле. для 1а ставим 1 т.е можно просто поставить writeQ(item.getReferencePrice() * 0); и все будет по 0 продаваться? Share this post Link to post Share on other sites
DevGoD 342 Posted September 10, 2013 Просто writeQ(0); но можно и референс цену умножить на ноль, разницы никакой. 1 Share this post Link to post Share on other sites
r2ndom 72 Posted September 10, 2013 я же сказал, открываешь notepad++, жмешь ctrl+F, вкладка заменить, в верхнем поле пишешь <set name="price" value="500000"/> в нижнем <set name="price" value="1"/> жмешь заменить все и вуаля. Что сложного то? Зачем ядро ковырять? Share this post Link to post Share on other sites
HECKBuK 229 Posted September 10, 2013 я же сказал, открываешь notepad++, жмешь ctrl+F, вкладка заменить, в верхнем поле пишешь <set name="price" value="500000"/> в нижнем <set name="price" value="1"/> жмешь заменить все и вуаля. Что сложного то? Зачем ядро ковырять? цена разная, а в игре более 1000 предметов и у всех разная цена мой же метод 100% подходит для любых цен и да, на вопрос о том, зачем мучаться с сотней файлов, ммм ответ прост, в НПП есть функция поиска по всем файлам в определенной папке, меньше минуты понадобиться что бы изменить все значения по моему примеру... Share this post Link to post Share on other sites
DevGoD 342 Posted September 10, 2013 Ну тут еще надо учитывать вариации закупочных цен при изменении цены в статах. Share this post Link to post Share on other sites
DevGoD 342 Posted September 10, 2013 Поясню: В статах прописывается изначальная закупочная цена, которая потом превращается в цену продажи путём деления на 2. Соответственно меняя цену для продажи,вашим способом, мы меняем и цену покупки. Share this post Link to post Share on other sites
Reliable 119 Posted September 10, 2013 Просто writeQ(0); но можно и референс цену умножить на ноль, разницы никакой. спасибо ++ поставил Share this post Link to post Share on other sites
r2ndom 72 Posted September 10, 2013 цена разная, а в игре более 1000 предметов и у всех разная цена мой же метод 100% подходит для любых цен и да, на вопрос о том, зачем мучаться с сотней файлов, ммм ответ прост, в НПП есть функция поиска по всем файлам в определенной папке, меньше минуты понадобиться что бы изменить все значения по моему примеру... если разная тогда <set name="price" value="*.*"/> Share this post Link to post Share on other sites
Gaikotsu 622 Posted September 15, 2013 (edited) for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле. для 1а ставим 1 ну это просто "гениально" - изменить цену в пакете отправляющем список вещей, допустимых к продаже.а ничего что ты этим действием чисто визуально, для отображения в клиенте, изменишь стоимость вещи, а реально она останется какой была? З.Ы. автор темы, парсер данных о вещах на эту тему смотри - там просто при загрузке меняй параметру price значение на нужное. Edited September 15, 2013 by Gaikotsu Share this post Link to post Share on other sites
Remrant 0 Posted August 7, 2025 (edited) Что бы его,.... десятилетиями не могут решить эту проблему как и с кнопкой продажи напишу alt settings или Other. Но прошу так не делать... как и CB без кнопки продажи , иначе можете выбрасывать CB в помойку. Я к тому что там где есть плюс должен быть и минус иначе это бесполезный ресурс каким бы не был.. И одно дело когда можно работать с конфигами, то найти можно, а другое дело возится с ядром, а точнее ядрами если нет исходников, да и они нужны разные, а человек то явно хотел просто сервер настроить а не ядро переписать. # Продажа всех вещей по одной цене # Активация EnabledPriceAll = False/True # Цена продажи EnabledPrice = 1 Edited August 7, 2025 by Remrant Share this post Link to post Share on other sites
Gaikotsu 622 Posted August 11, 2025 (edited) Ловите некропостера! Edited August 11, 2025 by Gaikotsu 1 Share this post Link to post Share on other sites
SleepingForest 0 Posted July 16 (edited) Кто то может выложить папку buylists с заполненными файлами где цена будет не 0 при продаже у нпс (их там обычно 760 штук). А то ковыряю сейчас сборку и все цены на продажу нпс там по 1 адене) Как я понимаю в этих файлах были цены которые удалили и теперь почти на все цена 0, найти в других сборках где есть такие файлы я не смог (везде одно и то же) Если дело не в этих файлах, то какого то общего множителя который делает продажу всего по 1 адене я тоже не нашел в сборке. Нужны эти файлы для High Five part 5 Сборка была пвп на сколько я помню и из-за больших рейтов там так сделали скорее всего =( Если кто то сможет такое выложить заранее спасибо! Понимаю что это немного не в тему поста, только думаю я не 1 с такой проблемой и если получится проблему решить, возможно еще кому то поможет в будущем Извиняюсь, тупил 3 часа... нашел все таки AllSellOneAdena = True в вообще неочевидном месте ... Пост не знаю как удалить, сильно не бейте )) Edited July 16 by SleepingForest Share this post Link to post Share on other sites