Перейти к содержанию
Авторизация  
Reliable

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

Рекомендуемые сообщения

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SET @Iteam_price = 0;

UPDATE `armor` SET `price` = @Iteam_price;
UPDATE `etcitem` SET `price` = @Iteam_price;
UPDATE `weapon` SET `price` = @Iteam_price;

 

как-то так.... хотя там вроде значение делится на 2 еще...

если хочешь не ноль, поставь 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

на

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем r2ndom

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вариант пакет 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);
}
}

Изменено пользователем Reliable

Поделиться сообщением


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

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

Изменено пользователем HECKBuK

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

т.е можно просто поставить

writeQ(item.getReferencePrice() * 0); и все будет по 0 продаваться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

в нижнем

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

в нижнем

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

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

Изменено пользователем Gaikotsu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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