Page 3 of 6

Re: Не заводится.

Posted: 22.12.2011 13:55
by nah nah
раньше код был такого вида

Code: Select all

if newMoveXY(.......):
  Smelt()
Была та же проблемма - ходил к плавилки через раз, но каждый раз пытался плавить

Re: Не заводится.

Posted: 22.12.2011 14:01
by Vizit0r
так не бывает :)
ну в конце концов добавь одну строку проверки на нужные координаты.

а вообще такого быть не должно как бы.

Re: Не заводится.

Posted: 22.12.2011 14:17
by nah nah
Ещё если в клиенте пытаться куда-либо бежать во время работы newMoveXY, то тоже сбивается, и стелс переходит на следующую строку в скрипте.

Re: Не заводится.

Posted: 22.12.2011 15:17
by CFA
nah nah wrote:Ещё если в клиенте пытаться куда-либо бежать во время работы newMoveXY, то тоже сбивается, и стелс переходит на следующую строку в скрипте.
newMove прекращает попытки дойти, если чар внезапно оказался больше чем в 5 тайлах от той точки, куда должен был быть сделан шаг, тк считает что произошел телепорт, или еще что-то такое случилось. Но в таком случае он возращает False. True возвращается только если чар находится на нужном расстоянии от заданной точки.
Попробуй включить в настройках стелса сообщения от ходилки, и посмотри что он пишет, в тех случаях когда не доходит до плавилки.

Re: Не заводится.

Posted: 22.12.2011 17:50
by nah nah
Сейчас не получится проверить что она там пишет (банк забит айроном), да и не совсем понял как. Может включить какое-нибудь логирование?

В интерпритаторе (наверное это так называется) питона, по умолчанию стоит кодировка юникода, не поддерживающая кирилицу. У меня с сервера приходят мессаги на русском. Как переключить кодировку?

Re: Не заводится.

Posted: 22.12.2011 20:38
by nah nah
Есть у меня ещё вопрос.
Как мне определить, что перед чаром кочка(с которой можно копать руду)?
Image
инфотайл пишет, что номер тайла 0.

Re: Не заводится.

Posted: 22.12.2011 21:08
by MuDaCk
Мне тоже интересно, как определить копабельную точку без рытья в статике))) а заодну ещё и определить точку для рыбалки :roll:

Re: Не заводится.

Posted: 22.12.2011 21:11
by Vizit0r
рыться. сам же прекрасно понимаешь, что иначе никак - но все равно "интересно".

Re: Не заводится.

Posted: 22.12.2011 21:27
by nah nah
чем и где рыться? Реализовать можно?

Re: Не заводится.

Posted: 22.12.2011 21:30
by Vizit0r
http://stealth.od.ua/wiki/doku.php?id=tile_working
примеры на форуме. статьи в вики умерли после смерти сервера :(

Re: Не заводится.

Posted: 22.12.2011 23:49
by Alex
с помощью GetMapCell можно выяснить номер тайла кочки такой.
а потом этот номер передавать в GetLandTilesArray. эта функция вернет координаты всех кочек в указанных рамках координат.

Re: Не заводится.

Posted: 22.12.2011 23:56
by nah nah
Спасибо, нашёл то, что мне нужно в поиске по GetMapCell

Есть ли в питоне аналог инжектового UO.Timer() Перерыл кучу документации к модулям datetime и time, но ни чего дельного не нашёл кроме каких-то эр и таймеров с высоким разрешением. Ни то ни другое мне не походит. Мне нужно что бы функция возвращала числовой тип данных, чтобы потом без лишнего гемора заносить в глобалку в виде строки, потом вытаскивать и проводить математические операции 8)

Re: Не заводится.

Posted: 23.12.2011 0:10
by Alex
можно так

Code: Select all

import time
print(time.time()) #число в секундах

Re: Не заводится.

Posted: 23.12.2011 0:14
by nah nah
Ещё раз благодарен

Re: Не заводится.

Posted: 23.12.2011 3:16
by nah nah
В вот такой конструкции

Code: Select all

import time

Resources = []

def FindResources():
  Cache = []
  Match = 0
  for i in [3274, 3275, 3276, 3277, 3280, 3283, 3286, 3289, 3291, 3292, 3294, 3295, 3296, 3299, 3302, 3394, 3395, 3417, 3440, 3461, 4792, 4793, 4794, 4795]:
    for t, x, y, z in GetStaticTilesArray(GetX(Self()) - 50, GetY(Self()) - 50, GetX(Self()) + 50, GetY(Self()) + 50, WorldNum(), i):
      Cache += [(t, x, y, z, 'Tree')]
  for i in [240, 241, 242, 243]:
    for t, x, y, z in GetLandTilesArray(GetX(Self()) - 50, GetY(Self()) - 50, GetX(Self()) + 50, GetY(Self()) + 50, WorldNum(), i):
      Cache += [(t, x, y, z, 'Rock')]
  for i in Cache:
    for j in Resources:
      if i == j:
        Match = 1
        break
    if not Match:
      Resources += i
выдаёт такую вот ошибку

Code: Select all

25:94:64:666 [#Character Name#]:   File "S:\Stealth\Scripts\Test.py", line 15, in FindResources
UnboundLocalError: local variable 'Resources' referenced before assignment
в этой строке

Code: Select all

for j in Resources:
Не могу понять, почему переменная инициировалась как локальная, ведь ей был присвоет пустой список в самом начале.