Reliable 119 Опубликовано 10 сентября, 2013 Ребят подскажите как сделать что бы шмот ресы и т.д. игроки продавали в магазин по 1 адене, сборка сервер First-Team HF5, с меня ++ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VREDNbIi 145 Опубликовано 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 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reliable 119 Опубликовано 10 сентября, 2013 нету таких таблиц, все хранится в xml Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VREDNbIi 145 Опубликовано 10 сентября, 2013 нету таких таблиц, все хранится в xml тогда ручками в xml ? =) логично тогда уж... <set name="price" value="500000"/> на <set name="price" value="1"/> Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reliable 119 Опубликовано 10 сентября, 2013 жесть, а может есть какае то альтернатива, типо поправка в ядре или в скриптах? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
r2ndom 72 Опубликовано 10 сентября, 2013 (изменено) В notepad++ выделяешь строчку, жмешь ctrl+f, заменить, ниже дописываешь тоже самое только со значанием 0, жмешь найти. Когда находит нужную строчку жмешь заменить. Если делать через ядро тебе в любом случае придется прописывать все вещи которые продаавать по 1 адене, так что проще тут. Если нужно заменить все строки то жмешь заменить все Изменено 10 сентября, 2013 пользователем r2ndom Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
r2ndom 72 Опубликовано 10 сентября, 2013 Если что выкладывай сюда файл, поменяю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reliable 119 Опубликовано 10 сентября, 2013 надо все итымы переписать, это ппц сколько времени. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DevGoD 342 Опубликовано 10 сентября, 2013 Как вариант пакет ExBuySellList поковырять. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reliable 119 Опубликовано 10 сентября, 2013 (изменено) Как вариант пакет 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); } } Изменено 10 сентября, 2013 пользователем Reliable Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DevGoD 342 Опубликовано 10 сентября, 2013 for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле. для 1а ставим 1 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HECKBuK 229 Опубликовано 10 сентября, 2013 (изменено) что бы не лезть в ядро, в NP++ есть такая функция как замена во всех файлах В поле искать пишем: <set name="price" value="*.*"/> В поле заменить пишем: <set name="price" value="0"/> Готово, все значения в файлах изменены на 0. П.с. внизу нужно поставить галочку "Регулярные выражения" п.с.2 не обязательно параметр может быть price, возможно он будет sellprice следовательно заменяем его. Если не понятно пишите скайп:heckbuktomsk Изменено 10 сентября, 2013 пользователем HECKBuK Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DevGoD 342 Опубликовано 10 сентября, 2013 Ну а зачем гемороится с сотней-другой файлов, когда можно заменить всего одну строку, ну или на крайняк конфиг вывести с условием в пакете. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reliable 119 Опубликовано 10 сентября, 2013 for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле. для 1а ставим 1 т.е можно просто поставить writeQ(item.getReferencePrice() * 0); и все будет по 0 продаваться? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DevGoD 342 Опубликовано 10 сентября, 2013 Просто writeQ(0); но можно и референс цену умножить на ноль, разницы никакой. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
r2ndom 72 Опубликовано 10 сентября, 2013 я же сказал, открываешь notepad++, жмешь ctrl+F, вкладка заменить, в верхнем поле пишешь <set name="price" value="500000"/> в нижнем <set name="price" value="1"/> жмешь заменить все и вуаля. Что сложного то? Зачем ядро ковырять? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HECKBuK 229 Опубликовано 10 сентября, 2013 я же сказал, открываешь notepad++, жмешь ctrl+F, вкладка заменить, в верхнем поле пишешь <set name="price" value="500000"/> в нижнем <set name="price" value="1"/> жмешь заменить все и вуаля. Что сложного то? Зачем ядро ковырять? цена разная, а в игре более 1000 предметов и у всех разная цена мой же метод 100% подходит для любых цен и да, на вопрос о том, зачем мучаться с сотней файлов, ммм ответ прост, в НПП есть функция поиска по всем файлам в определенной папке, меньше минуты понадобиться что бы изменить все значения по моему примеру... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DevGoD 342 Опубликовано 10 сентября, 2013 Ну тут еще надо учитывать вариации закупочных цен при изменении цены в статах. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DevGoD 342 Опубликовано 10 сентября, 2013 Поясню: В статах прописывается изначальная закупочная цена, которая потом превращается в цену продажи путём деления на 2. Соответственно меняя цену для продажи,вашим способом, мы меняем и цену покупки. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reliable 119 Опубликовано 10 сентября, 2013 Просто writeQ(0); но можно и референс цену умножить на ноль, разницы никакой. спасибо ++ поставил Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
r2ndom 72 Опубликовано 10 сентября, 2013 цена разная, а в игре более 1000 предметов и у всех разная цена мой же метод 100% подходит для любых цен и да, на вопрос о том, зачем мучаться с сотней файлов, ммм ответ прост, в НПП есть функция поиска по всем файлам в определенной папке, меньше минуты понадобиться что бы изменить все значения по моему примеру... если разная тогда <set name="price" value="*.*"/> Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 15 сентября, 2013 (изменено) for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле. для 1а ставим 1 ну это просто "гениально" - изменить цену в пакете отправляющем список вещей, допустимых к продаже.а ничего что ты этим действием чисто визуально, для отображения в клиенте, изменишь стоимость вещи, а реально она останется какой была? З.Ы. автор темы, парсер данных о вещах на эту тему смотри - там просто при загрузке меняй параметру price значение на нужное. Изменено 15 сентября, 2013 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты