как запустить аукцион HF?

sber

Свой человек
Участник
Сообщения
136
Розыгрыши
0
Репутация
35
Реакции
27
Баллы
585
всем привет, у кого адвекс HF поделитесь как вы аукцион запускали?
есть подазрение что запускается через команды:

//auction_close agit_name
//auction_open agit_name
//create_auction
//create_auction [npc id]
//create_auction_bid
//create_auction_bid [auction_id] [price]
//set_auction_status
//set_auction_status [auction_id] [none|start|done]
//show_auction_list
//show_auction_list [auction_status]
//withdraw_auction_bid
//withdraw_auction_bid [auction_id]

но что эти команды означают хз

в общем если кто запускал поделитесь опытом плиз

аукцион не кх а общий)
 

Этот аукцион не кастом от адвекстов, а базовый на хф? Просто не сталкивался с хф никогда. Если базовый, посмотрите в классик 3.0 есть же пдб, что каждая команда обрабатывает и какие функции вызывает.
 
//create_auction [npc id] - этой командой запустил аукцион, но он продает старые предметы(которых в скрипте уже нет)

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

неужели никто HF адвекса не юзает?)
 
Аукцион там где тип стоит в гиране ? если он то он сам стартует

Где проходит аукцион?​

Населенный пунктВремя проведения аукциона
Понедельник, 17.00 - 22.00
Среда, 17.00 - 22.00
Пятница, 17.00 - 22.00
 
вы думаете не проверял?)
в указанное время их нет

после ручного старта все зависло:

1685276276416.png

т.е обычно аукционер пишет что аукцион не идет(если аукцион перестал), а тут он вроде как идет, но все по нулям и ни чего не показывает(следующие товары)
 
//create_auction [npc id] - этой командой запустил аукцион, но он продает старые предметы(которых в скрипте уже нет)

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

неужели никто HF адвекса не юзает?)
Да ёлки маталки, есть пдб, все в ваших руках, смотрите что как работает, после шары от фьюри неочем теперь гадать, берёшь и делаешь. Л2код раскрыт вплоть до 2020 года.
 
ок, что такое пдб?)
 
ок, что такое пдб?)
Ёлки палки, вам птс зачем вообще? Есть шара классика 3.0 и репозитории от всех серверов от 2018 до 2020 года, есть пдб файл, который вы загружает в ида и видите весь код, все названия функций и переменных, и ваши аукционных команды найти там и посмотреть что каждая делает, раз плюнуть, короче есть считайте исходник птс 162 протокола, используйте, после шары от фьюри по л2 недолжно остаться вопросов. По крайней мере от 162 до 287 протокола
 
можно ссылку на этот пдб файл? он же в адвексе будет работать?
 
Он от 162 протокола, причём тут хф, я вам сказал как посмотреть что делает команда ваша по аукциону, чтоб вы вопросы не задавали. Вы как понять не можете, у нас в руках считайте исходник птс сервера, какие у вас могут быть вопросы? Не используйте птс тогда! Тема классик 3.0 сервер л2 лайв тест лсервер пдб от тоталчекера
 
вопросов много и очень, вы чет очн нервничаете, успокойтесь)
давайте все по порядку
я так понимаю нада развернуть шаровый птс в которой есть некий пдб файл(хз что это такое и как его юзать), но с помощью него, наверное в самом клиенте можно будет выцепить нужную процедуру, так?
 
вопросов много и очень, вы чет очн нервничаете, успокойтесь)
давайте все по порядку
я так понимаю нада развернуть шаровый птс в которой есть некий пдб файл(хз что это такое и как его юзать), но с помощью него, наверное в самом клиенте можно будет выцепить нужную процедуру, так?
Извините, нет, не нервничаю, просто за птс надо браться хотя-бы понимая асм и с++, а по простому, берете л2 тест лсервер, открываете в ида экзешник тоталчекер, ида его проанализировал за 15 минут, потом загружает пдб от него и вуаля, у вас исходный код близкий к оригиналу на руках, ищите буилдер кмд обработчик вашей команды по аукциону и смотрите что каждая делает, все.
 
  • Мне нравится
Реакции: sber
Извиняюсь за вопрос - если у вас адвекс,вы являетесь клиентом и т.д то почему не обратиться к продавцу/разработчику или банально не задать вопрос у них на форуме?)
 
обращался, они молчат(
 
в общем докаладАю следующее:

сейчас аукцион обновился и показывает да же некую дату:
1685340344681.png
предполагаю что эта дата проведения следующего аукциона - 2023.6.2 8:51

при этом в скрипте вроде указана время же:

1685340648334.png

и 8:51 хз каким тут боком( ну ладно это не так критично, по крайне мере аукцион сам обновился!

вчера я отредактировал для теста скрипт аукциона:

Было:

npc_id=32320 // giran
auction_doing=1 // 경매 진행 여부(0:경매 안함, 1:경매 함)
auction_week_day={5}
auction_start_time=1700 // 경매가 시작되는 절대 시간
auction_duration=300 // 경매 기간(분 단위)
item_count=52


item_begin item=[incessantcore_sword] amount=1 price=100000 registration=19 item_end
item_begin item=[mamba_edge] amount=1 price=100000 registration=19 item_end
item_begin item=[expowder_mace] amount=1 price=100000 registration=19 item_end
item_begin item=[pereztear_hammer] amount=1 price=100000 registration=19 item_end
item_begin item=[lavamond_saw] amount=1 price=100000 registration=19 item_end
item_begin item=[jademice_claw] amount=1 price=100000 registration=19 item_end
item_begin item=[ghostcleaner] amount=1 price=100000 registration=19 item_end
item_begin item=[sacredumors] amount=1 price=100000 registration=19 item_end
item_begin item=[psyskilt_cane] amount=1 price=100000 registration=19 item_end
item_begin item=[archangel_sword] amount=1 price=100000 registration=19 item_end

item_begin item=[recurvethorne_bow] amount=1 price=100000 registration=20 item_end
item_begin item=[heavenstair_rapier] amount=1 price=100000 registration=20 item_end
item_begin item=[pyseal_blade] amount=1 price=100000 registration=20 item_end
item_begin item=[thorne_crossbow] amount=1 price=100000 registration=20 item_end
item_begin item=[peri_el_sword] amount=1 price=100000 registration=20 item_end
item_begin item=[skul_edge] amount=1 price=100000 registration=20 item_end
item_begin item=[vigwik_axe] amount=1 price=100000 registration=20 item_end
item_begin item=[evildeity_maul] amount=1 price=100000 registration=20 item_end

item_begin item=[feathereye_blade] amount=1 price=100000 registration=20 item_end
item_begin item=[octo_claw] amount=1 price=100000 registration=20 item_end
item_begin item=[doubletopa_spear] amount=1 price=100000 registration=20 item_end

item_begin item=[cuticle] amount=1 price=100000 registration=20 item_end
item_begin item=[blackvisage] amount=1 price=100000 registration=20 item_end
item_begin item=[veniplant_sword] amount=1 price=100000 registration=20 item_end
item_begin item=[skullcarnium_bow] amount=1 price=100000 registration=20 item_end
item_begin item=[gemtail_rapier] amount=1 price=100000 registration=20 item_end
item_begin item=[fin_invincible_blade] amount=1 price=100000 registration=20 item_end
item_begin item=[rubecutter_crossbow] amount=1 price=100000 registration=20 item_end
item_begin item=[incessantcore_sword_forgotten_blade] amount=1 price=100000 registration=20 item_end
item_begin item=[mamba_edge_angel_slayer] amount=1 price=100000 registration=20 item_end
item_begin item=[peri_el_sword_sirr_blade] amount=1 price=100000 registration=20 item_end
item_begin item=[skul_edge_naga_storm] amount=1 price=100000 registration=20 item_end

item_begin item=[elegia_helmet] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_leather_helmet] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_circlet] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_cuirass] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_houberk] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_jaket] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_gaiter] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_leather_legging] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_hose] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_gauntlet] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_leather_gloves] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_gloves] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_boots] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_leather_boots] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_shoes] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_shield] amount=1 price=100000 registration=20 item_end
item_begin item=[elegia_sigil] amount=1 price=100000 registration=20 item_end
item_begin item=[power_ring_of_baium] amount=1 price=100000 registration=10 item_end
item_begin item=[power_ring_of_queen_ant] amount=1 price=100000 registration=10 item_end
item_begin item=[power_earring_of_zaken] amount=1 price=100000 registration=10 item_end


auction_end


Стало:

auction_begin
npc_id=32320 // giran
auction_doing=1 // 경매 진행 여부(0:경매 안함, 1:경매 함)
auction_week_day={6}
auction_start_time=1700 // 경매가 시작되는 절대 시간
auction_duration=300 // 경매 기간(분 단위)
item_count=2

item_begin item=[stone_of_purity] amount=1 price=100000 registration=500 item_end
item_begin item=[oriharukon_ore] amount=1 price=100000 registration=500 item_end

auction_end


после того как я изменил количество товаров на сервере появилась ошибка: sum(registration) is not 1000!!!
и сервер крошился!
изменил - registration=20 на registration=500 и сервер запустился, но после ручного запуска аукциона он завис(скрин выше)
ночером я откатил старый скрипт(который был по дефолту) и утром после рестрата аукцион ожил и стал показывать время, я так понимаю он вошел в свое нормально русло, сейчас я правлю скрипт(не меняю количество товаров, а меняю их содержимое) посмотрим что с этого выйдет.

получается что аукцион действительно нужно заводить в ручную командой - //create_auction [npc id]
насчет доп условий хз, я проводил тесты на нпс в Гиране, у меня на сервере замок Гиран захвачен, мб нужно что бы был захвачен замок.
пока это все)
 
изменил наименование товаров, а не их количество, опять аукцион завис(
 
Запрещено публиковать исходный код без BB-кода — CODE
изменил товары на:


Код:
auction_begin                                
    npc_id=32320                                // giran
    auction_doing=1                    // 경매 진행 여부(0:경매 안함, 1:경매 함)        
    auction_week_day={5}
    auction_start_time=1700                    // 경매가 시작되는 절대 시간        
    auction_duration=300                            // 경매 기간(분 단위)
    item_count=52            

item_begin    item=[animal_bone]    amount=1000    price=100000     registration=19    item_end
item_begin    item=[oriharukon_ore]    amount=300    price=100000     registration=19    item_end
item_begin    item=[stone_of_purity]    amount=300    price=100000     registration=19    item_end
item_begin    item=[mithril_ore]    amount=300    price=100000     registration=19    item_end
item_begin    item=[steel]    amount=500    price=100000     registration=19    item_end
item_begin    item=[coarse_bone_powder]    amount=300    price=100000     registration=19    item_end
item_begin    item=[cord]    amount=500    price=100000     registration=19    item_end
item_begin    item=[varnish]    amount=800    price=100000     registration=19    item_end
item_begin    item=[suede]    amount=500    price=100000     registration=19    item_end
item_begin    item=[iron_ore]    amount=800    price=100000    registration=19    item_end

item_begin    item=[ring_of_aurakyria]    amount=1    price=100000    registration=20    item_end
item_begin    item=[sanddragon_s_earing]    amount=1    price=500000    registration=20    item_end
item_begin    item=[dragon_necklace]    amount=1    price=1000000    registration=20    item_end
item_begin    item=[ore_of_fire]    amount=50    price=500000    registration=20    item_end
item_begin    item=[ore_of_water]    amount=50    price=500000    registration=20    item_end
item_begin    item=[ore_of_earth]    amount=50    price=500000    registration=20    item_end
item_begin    item=[ore_of_wind]    amount=50    price=500000    registration=20    item_end
item_begin    item=[ore_of_unholy]    amount=50    price=500000    registration=20    item_end

item_begin    item=[ore_of_holy]    amount=50    price=500000    registration=20    item_end
item_begin    item=[high_ore_of_fire]    amount=10    price=1500000    registration=20    item_end
item_begin    item=[high_ore_of_water]    amount=10    price=1500000    registration=20    item_end

item_begin    item=[high_ore_of_earth]    amount=10    price=1500000    registration=20    item_end
item_begin    item=[high_ore_of_wind]    amount=10    price=1500000    registration=20    item_end
item_begin    item=[high_ore_of_unholy]    amount=10    price=1500000    registration=20    item_end
item_begin    item=[high_ore_of_holy]    amount=10    price=1500000    registration=20    item_end
item_begin    item=[fishing_ticket]    amount=50000    price=3000000    registration=20    item_end
item_begin    item=[transformation_scroll_zaken]    amount=1    price=8000000    registration=20    item_end
item_begin    item=[transformation_scroll_anakim]    amount=1    price=10000000    registration=20    item_end
item_begin    item=[transformation_scroll_venom]    amount=1    price=8000000    registration=20    item_end
item_begin    item=[transformation_scroll_gordon]    amount=1    price=8000000    registration=20    item_end
item_begin    item=[transformation_scroll_ranku]    amount=1    price=8000000    registration=20    item_end
item_begin    item=[transformation_scroll_kechi]    amount=1    price=8000000    registration=20    item_end

item_begin    item=[transformation_scroll_demon_prince]    amount=1    price=8000000    registration=20    item_end
item_begin    item=[red_soul_crystal_15]    amount=1    price=3000000    registration=20    item_end
item_begin    item=[blue_soul_crystal_15]    amount=1    price=3000000    registration=20    item_end
item_begin    item=[green_soul_crystal_15]    amount=1    price=300000    registration=20    item_end
item_begin    item=[gemstone_s]    amount=80    price=3000000    registration=20    item_end
item_begin    item=[scrl_of_ench_wp_s]    amount=5    price=1000000    registration=20    item_end
item_begin    item=[scrl_of_ench_am_s]    amount=10    price=500000    registration=20    item_end
item_begin    item=[blessed_scrl_of_ench_wp_s]    amount=1    price=2000000    registration=20    item_end
item_begin    item=[blessed_scrl_of_ench_am_s]    amount=3    price=800000    registration=20    item_end
item_begin    item=[elegia_gauntlet]    amount=1    price=100000    registration=20    item_end        
item_begin    item=[rare_80_s]    amount=3    price=1000000    registration=20    item_end
item_begin    item=[unique_80_s]    amount=3    price=2000000    registration=20    item_end
item_begin    item=[rare_82_s]    amount=3    price=1000000    registration=20    item_end
item_begin    item=[unique_82_s]    amount=3    price=2000000    registration=20    item_end
item_begin    item=[sb_protection_of_rune]    amount=1    price=3000000    registration=20    item_end
item_begin    item=[sb_protection_of_elemental]    amount=1    price=3000000    registration=20    item_end
item_begin    item=[sb_protection_of_alignment]    amount=1    price=3000000    registration=20    item_end
item_begin    item=[sb_fighter_will]    amount=1    price=3000000    registration=10    item_end
item_begin    item=[sb_archer_will]    amount=1    price=3000000    registration=10    item_end
item_begin    item=[sb_magicians_will1]    amount=1    price=3000000    registration=10    item_end    
auction_end


аукцион завис

при том что если бы была ошибка в скрипте, то сервер бы не стартанул уже проверено) отсюда - скрипт верный

на самом сервере следующая ошибка:

1685345726801.png

перезапустил аукцион той же командой вручную и все, нпс не открывает диалог аукциона вообще

наверное нельзя ресурсы добавлять в товары, сижу, гадаю)

Люююди, есть кто в адвексе аукцион настраивал, аууууу, отзовитесь))
 
Последнее редактирование модератором:
C++:
bool __fastcall BuilderCmd::create_auction(CUserSocket *pSocket, User *pUser, wchar_t *pBuf)
{
  int v3; // eax
  char v6; // di
  int i; // esi
  const wchar_t *v8; // r8
  CUserSocket_vtbl *v9; // rax
  CUserSocket *v10; // rcx
  int v11; // edi
  int v12; // esi
  CAuctionManager *v13; // rax
  CardUpDownGame::Script *v14; // rax
  CAuctionNPC *AuctionNPC; // rax
  bool v16; // zf
  wchar_t string[256]; // [rsp+20h] [rbp-1A08h] BYREF
  wchar_t v19[3072]; // [rsp+220h] [rbp-1808h] BYREF
  wchar_t *Source; // [rsp+1A48h] [rbp+20h] BYREF

  memset(string, 0, (unsigned int)(v3 - 32));
  if ( pBuf )
  {
    Source = 0i64;
    v6 = 1;
    for ( i = 0; i < 2; ++i )
    {
      pBuf = GetLeftString(pBuf, &Source);
      if ( !Source )
      {
        v6 = 0;
        break;
      }
      wcscpy_s(&string[256 * (__int64)i], 0x100ui64, Source);
    }
    while ( i < 2 )
    {
      if ( !v6 )
        goto LABEL_14;
      pBuf = GetLeftString(pBuf, &Source);
      if ( !Source )
      {
        v6 = 1;
        break;
      }
      wcscpy_s(&string[256 * (__int64)i++], 0x100ui64, Source);
    }
    if ( !v6 )
    {
LABEL_14:
      v8 = L"//create_auction [npc_id] [item_index]";
LABEL_15:
      v9 = pSocket->__vftable;
      v10 = pSocket;
      goto LABEL_22;
    }
    v11 = wtol(string);
    v12 = wtol(v19);
    v13 = Singleton<CAuctionManager>::inst();
    if ( CAuctionManager::GetActiveAuction(v13, v11) )
    {
      v8 = L"npc's auction is doing";
      goto LABEL_15;
    }
    v14 = (CardUpDownGame::Script *)Singleton<CAuctionNPCDB>::inst();
    AuctionNPC = (CAuctionNPC *)CAuctionNPCDB::GetAuctionNPC(v14, v11);
    if ( !AuctionNPC )
    {
      v8 = L"invalid npc";
      goto LABEL_15;
    }
    v16 = !CAuctionNPC::BuilderCMD_CreateItemAuction(AuctionNPC, v12);
    v9 = pSocket->__vftable;
    v8 = L"invalid item index range";
    v10 = pSocket;
    if ( !v16 )
      v8 = L"accepted create_auction command...";
LABEL_22:
    v9->SendSystemMessage(v10, L"SYS", v8);
  }
  return 0;
}
C++:
char __fastcall CAuctionNPC::BuilderCMD_CreateItemAuction(CAuctionNPC *this, int nItemIndex)
{
  int v4; // r9d
  int v6; // [rsp+20h] [rbp-18h]

  v4 = time32(0i64);
  if ( nItemIndex < 0
    || (int)(this->m_AuctionItemList._Mypair._Myval2._Mylast - this->m_AuctionItemList._Mypair._Myval2._Myfirst) <= nItemIndex )
  {
    return 0;
  }
  this->m_nCurrentAuctionItemIndex = nItemIndex;
  CAuctionNPC::_CreateItemAuction(this, v4, nItemIndex);
  v6 = 1722;
  CLog::Add(&Log, LOG_ERROR, (wchar_t *)aNo_0, aAuct_6, v6);
  return 1;
}
C++:
void __fastcall CAuctionNPC::_CreateItemAuction(CAuctionNPC *this, int tStartTime, int nItemIndex)
{
  __int64 m_nNextAuctionDateIndex; // r9

  m_nNextAuctionDateIndex = this->m_nNextAuctionDateIndex;
  this->m_bAuctionCreating = 1;
  CDB::RequestCreateItemAuction(
    &db,
    this->m_nNPCClassID,
    tStartTime,
    tStartTime + this->m_AuctionDateList._Mypair._Myval2._Myfirst[m_nNextAuctionDateIndex].m_nDuration,
    nItemIndex);
}

щас поищу откуда он парсит данные а дате и итемах
 
  • Мне нравится
Реакции: sber

    sber

    Баллов: 5
    спасибо
Назад
Сверху Снизу