Jump to content
Reliable

Продажа В Магазин По 1 Адене

Recommended Posts

Ребят подскажите как сделать что бы шмот ресы и т.д. игроки продавали в магазин по 1 адене, сборка сервер First-Team HF5, с меня ++

Share this post


Link to post
Share on other sites

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

нету таких таблиц, все хранится в xml

тогда ручками в xml ? =) логично тогда уж...

 

<set name="price" value="500000"/>

на

<set name="price" value="1"/>

Share this post


Link to post
Share on other sites

жесть, а может есть какае то альтернатива, типо поправка в ядре или в скриптах?

Share this post


Link to post
Share on other sites

В notepad++ выделяешь строчку, жмешь ctrl+f, заменить, ниже дописываешь тоже самое только со значанием 0, жмешь найти. Когда находит нужную строчку жмешь заменить. Если делать через ядро тебе в любом случае придется прописывать все вещи которые продаавать по 1 адене, так что проще тут. Если нужно заменить все строки то жмешь заменить все

Edited by r2ndom

Share this post


Link to post
Share on other sites

Если что выкладывай сюда файл, поменяю

Share this post


Link to post
Share on other sites

надо все итымы переписать, это ппц сколько времени.

Share this post


Link to post
Share on other sites

Как вариант пакет 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 by Reliable

Share this post


Link to post
Share on other sites
for(TradeItem item : _sellList)
{
writeItemInfo(item);
writeQ(item.getReferencePrice() / 2);
}
где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле.
для 1а ставим 1

  • Upvote 2

Share this post


Link to post
Share on other sites

что бы не лезть в ядро, в NP++ есть такая функция как замена во всех файлах

В поле искать пишем: <set name="price" value="*.*"/>

В поле заменить пишем: <set name="price" value="0"/>

Готово, все значения в файлах изменены на 0.

П.с. внизу нужно поставить галочку "Регулярные выражения"

п.с.2 не обязательно параметр может быть price, возможно он будет sellprice следовательно заменяем его.

Если не понятно пишите скайп:heckbuktomsk

Edited by HECKBuK

Share this post


Link to post
Share on other sites

Ну а зачем гемороится с сотней-другой файлов, когда можно заменить всего одну строку, ну или на крайняк конфиг вывести с условием в пакете.

Share this post


Link to post
Share on other sites

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

Просто writeQ(0); но можно и референс цену умножить на ноль, разницы никакой.

  • Upvote 1

Share this post


Link to post
Share on other sites

я же сказал, открываешь notepad++, жмешь ctrl+F, вкладка заменить, в верхнем поле пишешь

<set name="price" value="500000"/>

в нижнем

<set name="price" value="1"/> жмешь заменить все и вуаля. Что сложного то? Зачем ядро ковырять?

Share this post


Link to post
Share on other sites

я же сказал, открываешь 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

Ну тут еще надо учитывать вариации закупочных цен при изменении цены в статах.

Share this post


Link to post
Share on other sites

Поясню: В статах прописывается изначальная закупочная цена, которая потом превращается в цену продажи путём деления на 2. Соответственно меняя цену для продажи,вашим способом, мы меняем и цену покупки.

Share this post


Link to post
Share on other sites

Просто writeQ(0); но можно и референс цену умножить на ноль, разницы никакой.

спасибо ++ поставил

Share this post


Link to post
Share on other sites

цена разная, а в игре более 1000 предметов и у всех разная цена

мой же метод 100% подходит для любых цен

и да, на вопрос о том, зачем мучаться с сотней файлов, ммм ответ прост, в НПП есть функция поиска по всем файлам в определенной папке, меньше минуты понадобиться что бы изменить все значения по моему примеру...

если разная тогда <set name="price" value="*.*"/>

Share this post


Link to post
Share on other sites

for(TradeItem item : _sellList)
{
writeItemInfo(item);
writeQ(item.getReferencePrice() / 2);
}
где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле.
для 1а ставим 1

ну это просто "гениально" - изменить цену в пакете отправляющем список вещей, допустимых к продаже.

а ничего что ты этим действием чисто визуально, для отображения в клиенте, изменишь стоимость вещи, а реально она останется какой была?

 

З.Ы. автор темы, парсер данных о вещах на эту тему смотри - там просто при загрузке меняй параметру price значение на нужное.

Edited by Gaikotsu

Share this post


Link to post
Share on other sites

Что бы его,.... десятилетиями не могут решить эту проблему как и с кнопкой продажи напишу alt settings или Other. Но прошу так не делать... как и CB без кнопки продажи ,  иначе можете выбрасывать CB  в помойку. Я к тому что там где есть плюс должен быть и минус иначе это бесполезный ресурс каким бы не был..   И одно дело когда можно работать с конфигами, то найти можно, а другое дело возится с ядром, а точнее ядрами если нет исходников, да и они нужны разные, а человек то явно хотел просто сервер настроить а не ядро переписать. 

# Продажа всех вещей по одной цене
# Активация
EnabledPriceAll = False/True
# Цена продажи
EnabledPrice = 1

Edited by Remrant

Share this post


Link to post
Share on other sites
Posted (edited)

Кто то может выложить папку buylists с заполненными файлами где цена будет не 0 при продаже у нпс (их там обычно 760 штук). А то ковыряю сейчас сборку и все цены на продажу нпс там по 1 адене)
Как я понимаю в этих файлах были цены которые удалили и теперь почти на все цена 0, найти в других сборках где есть такие файлы я не смог (везде одно и то же)
Если дело не в этих файлах, то какого то общего множителя который делает продажу всего по 1 адене я тоже не нашел в сборке.
Нужны эти файлы для High Five part 5
Сборка была пвп на сколько я помню и из-за больших рейтов там так сделали скорее всего =(
Если кто то сможет такое выложить заранее спасибо!
Понимаю что это немного не в тему поста, только думаю я не 1 с такой проблемой и если получится проблему решить, возможно еще кому то поможет в будущем

Извиняюсь, тупил 3 часа... нашел все таки AllSellOneAdena = True в вообще неочевидном месте ...
Пост не знаю как удалить, сильно не бейте ))

Edited by SleepingForest

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...