Yoko
http://forum.yoko.com.ua/

Buy/Sell на RunUO
http://forum.yoko.com.ua/viewtopic.php?f=3&t=7654
Page 1 of 1

Author:  omi4 [ 2006-05-12 00:03:38 ]
Post subject:  Buy/Sell на RunUO

Сфере еще как-то можно понять, как этим пользоваться, то на RunUO это не так просто. В отличии от Сферы клиент передает серверу не текст, а ключ. Естественно инжа ключи передавать не умеет, по этому нужно изогнутся с тем что есть…

Code:
sub buy()
   var ID_Vendor = 0x00000000
   UO.Say(',buy regi')
   UO.Say(',vendormenu ID_Vendor 2')
endsub


Code:
sub sell()
   var ID_Vendor = 0x00000000
   repeat
      UO.Say(',sell poison')
      UO.Say(',vendormenu ID_Vendor 3')
      wait(1500)
   until not UO.Count(0x0F0A)
endsub

Конструкции не претендуют на шедевр, но работают.

Но это еще не самое ужасное, названия предметов для продажи или покупки на RunUO закодированы. Вот пример листа.

Code:
   <shoplist name="regi">
      <shopitem name="1023976" want="-1"/>
      <shopitem name="1023973" want="-1"/>
      <shopitem name="1023974" want="-1"/>
      <shopitem name="1023980" want="-1"/>
      <shopitem name="1023963" want="-1"/>
      <shopitem name="1023962" want="-1"/>
      <shopitem name="1023972" want="-1"/>
      <shopitem name="1023981" want="-1"/>
   </shoplist>

Вот как их вычисляет сервер

Code:
      public override int LabelNumber
      {
         get
         {
            MultiComponentList mcl = this.Components;

            if ( mcl.List.Length > 0 )
               return 1020000 + (mcl.List[0].m_ItemID & 0x3FFF);

            return base.LabelNumber;
         }
      }

А теперь на русском, как его вычислить простым смертным.

Берем тип предмета, например NS 0x0F88
Переводим 0F88 в десятичный вид и получаем 3976
1020000 + 3976 = <shopitem name="1023976" ……/>

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/