Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ Sphere Server 0.56 - Sphere X _ console error

Автор: Famous 1.12.2017, 1:24

С этим скриптом в сфере иногда появляется

Код

ERROR:GetDist::InvalidPoint -> '-1,-1'


Код

sub avto()
   VAR i,Exit
   DIM Loot[8]
  
  
   Loot[0]=0x0F7A;  LUKI
   Loot[1]=0x14EF; kredi
   Loot[2]=0x0F7E; KOSTI
   Loot[3]=0x1F14; KOLCA
   Loot[4]=0x09A8; SUNDUCKI
   Loot[5]=0x0E76; PAKI
   Loot[6]=0x1F03 ;ROBI
   Loot[7]=0x1B78 ;WITI
   Loot[8]=0x0EFB ;kraski                  
   UO.SetReceivingContainer('0x4000C313');ID backpacka
  
   For i=0 to 8
      Exit=0
      repeat
         UO.FindType(Loot[i],-1,'lastcontainer')          
         if UO.GetQuantity('finditem') then
            UO.Grab('0','finditem')
            CheckLag()
            wait(100)
         Else
            UO.UseType('0x0E76','0x0445')
            UO.UseType('0x14EF')
            Exit=1
         endif
      until Exit==1 OR uo.injournal("loot")
   Next
   UO.UnSetReceivingContainer()
end sub


как пофиксить это ?

Автор: Atheist 1.12.2017, 2:07

дело уж точно не в скрипте инжекта smile.gif
используется при этом какая либо из функций сферы?
либо это проблема инжекта а не сферы

Автор: Famous 1.12.2017, 11:47

руками когда двигаешь все оке, как через скрипт, вот такая байда.

на монстров прописана функция дроп вещей.

Код

on=@death
droptresh

on=@deathcorpse
if ( 50 >= <r1,100> )
serv.newitem i_reptile_bone
new.cont = <argo.uid>
endif

[function droptresh]
serv.newitem i_gold_ingot_bag
new.bounce

if ( 50 >= <r1,100> )
serv.newitem i_scroll_blank
new.bounce
endif

как пример

Автор: Famous 4.12.2017, 18:57

Вечрия 2013 сфера
Никто не знает в чем проблема или не хотят помочь ?smile.gif)))

Автор: Zergushka 5.12.2017, 18:12

Вопрос к версии инжекта у того, кто это делает.
Была какая-то одна версия инжектовской дллки кривая, которая приводила к такой ошибке при moveitem и grab. Попробуй для начала попросить того, от кого идут такие проблемы - заменить injection.dll/script.dll на более новый.

Автор: Atheist 5.12.2017, 18:59

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

Автор: Mirage 5.12.2017, 21:27

Ну так то в скрипте тоже ошибка. Объявлено 8 элементов а двигаем 9. Притом дистанция не уитывается, lastcontainer может открыться дальше чем инжект пытается выхватить. Если кривая сфера то инжект может и двинуть предмет на что сфера среагирует.

Автор: Famous 5.12.2017, 23:04

ух, спасибо вам за это smile.gif думаю вы помогли хех smile.gif

Автор: Aimed 6.12.2017, 4:49

Ну вы даете ))))

Автор: Aimed 8.12.2017, 17:46

Скрипт то нормальный и элементов там 9, а не 8.
А вот такое сообщение Сфера кидает когда это ночной билд и идёт попытка обработки кривой 3д координаты на карте, но при этом не указана карта и Z координата и в итоге Сфера выплевывает в консоль дебаг меседж и указывает x и y координаты. Которые в этом случае -1 и -1. А как дистанцию вернет максимальное значение шорта равное 32767. При таком раскладе клиенту будет выслано сообщение что он находится слишком далеко и все.

Я выкачал Сферу и сделал чекаут релиза 56б 2008 года и вот такой вот там код:

Код
int CPointBase::GetDist( const CPointBase & pt ) const // Distance between points
{
    ADDTOCALLSTACK("CPointBase::GetDist");
    // Get the basic 2d distance.
    if ( !pt.IsValidPoint() )
    {
#ifndef _NIGHTLYBUILD
        DEBUG_ERR(("GetDist::InvalidPoint -> '%s'\n", pt.WriteUsed()));
#endif
        return( SHRT_MAX );
    }

    if ( ! IsSameMap( pt.m_map ))    // as far apart as possible
        return( SHRT_MAX );
    return( GetDistBase( pt ));
}




Код
TCHAR * CPointBase::WriteUsed( TCHAR * pszBuffer ) const
{
    if ( m_map )
    {
        sprintf(pszBuffer, "%d,%d,%d,%d", m_x, m_y, m_z, m_map);
    }
    else if ( m_z )
    {
        sprintf(pszBuffer, "%d,%d,%d", m_x, m_y, m_z);
    }
    else
    {
        sprintf(pszBuffer, "%d,%d", m_x, m_y);
    }
    return pszBuffer;
}


Ничего плохого в этом нет и на сервер оно никак не влияет. Что-бы до конца понять откуда эта координата берется надо смотреть что инжа шлет и если это не она кривую координату посылает, то тогда уже сервак дебажить.
Но я не вижу смысла так упарываться ради одного только любопытства.

Автор: ЖаК 13.12.2017, 15:38

UO.SetReceivingContainer('0x4000C313');ID backpacka

Кто то забыл поменять уникальный ай-ди, вот и получается что инжа виновата, тк пытается заинуть итэм к госсподу богу

Скорее всего smile.gif

Автор: Sirocco 14.12.2017, 10:06

Там не написано, что скрипт не работает. Там написано, что иногда появляется ошибка.

Я гляжу ты не сильно поумнел за все это время.
Скорее всего.

P.S. https://forum.uokit.com/index.php?showtopic=23937&hl=

Автор: ЖаК 14.12.2017, 13:14

Как скажешь широта. Про консольную ошибку же речь идет, и слово присутствует интересное "иногда"

А эта тема тут причем? Ты спамер какой то негативный ))

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)