From Stealth Client

Jump to: navigation, search

Python

Для того что бы запустить скрипт написанный на питоне нужно что бы он находился в файле с расширением .py, к примеру test.py. В ином случае запускается интерпретатор Pascal.

Стелс для исполнения питон-скриптов использует обыкновенный интерпретатор, который нужно скачать с официального сайта: [[1]]. Работает и 2.7 и 3.2 версии интерпретаторов. Желательно использовать версию 3.2. После установки нужно перезапустить стелс.

Все функции стелса находятся в модуле stealth. Перед запуском скрипта всегда автоматически выполняется такая команда(нет нужды её повторять):

from stealth import *

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

Простой скрипт может состоять из одного файла, к примеру:

while True:
  UseSkill ('Hiding')
  Wait (11000)

В супер сложных и навороченных скриптах или в целях повторного использования кода может пригодится использование такой команды как **import**

import mycode
 
while True:
  mycode.myfunc ()
  Wait (11000)

Команда import действует по схожему принципу с {$Include 'hungry.inc'} Что бы иметь доступ к функциям стелса внутри импортируемого модуля нужно там выполнить команду "from stealth import *"

from stealth import *
 
while True:
  UseSkill ('Hiding')
  Wait (11000)

По синтаксису языка советую почитать книгу [2]

или эту [3]

Примеры кода есть тут [4]

Практически все функции по взаимодействию со стелсом остались в таком же виде как были в скриптах на паскале. Исключение составляют функции типа Doc:Api/GetPathArray, которым нужно было передавать переменную массива которую они заполняли, в случае с питоном - такие функции возвращают массив данных.

У всех функций заполнен __doc__ блок. по этому с помощью

print (GetPathArray.__doc__)

можно посмотреть какие параметры ожидает та или иная функция

вывод: GetPathArray( DestX : Integer, DestY : Integer, Optimized : Boolean, Accuracy : Integer ) -> List of Tuple(X, Y, Z : Integer)

так же можно пользоватся справочником тут в вики: Справочник или Stealth API

Русский язык в скриптах

что бы в скриптах можно было выводить сообщения на русском, нужно первой строкой в скрипте поставить вот это:

# -*- coding: mbcs -*-
print('привет')

Отличия от Pascal Script

В паскале можно функции без параметров(процедуры) вызывать без скобок, к примеру **Ground**

В питоне такая фишка не работает, нужно явно добавлять пустые скобки: **Ground()**

В паскале шестнадцатеричные числа обозначаются как **$AAAAAAAA**

В питоне чуть иначе: **0xAAAAAAAA**

Переменные типа moveOpenDoor и остальные такие реализованы в виде функций

SetMoveOpenDoor(True) GetMoveOpenDoor()

Питон - регистро-зависимый язык(в отличии от PascalScript). Это значит что UseObject и useobject - это разные функции. По-этому нужно учитывать, что функции все начинаются с большой буквы(как в документации).

Пример скрипта

from datetime import datetime
 
def PrepareKindling ():
    WaitTargetTile (3296, 1700, 1626, 5) # tree
    UseObject (ObjAtLayer (RhandLayer ())) # skid dagger
    if not WaitJournalLine (datetime.now (), 'You chip off some kindling', 60000):
        return False
    MoveItem (FindType (0x0DE1, Backpack ()), 1, Ground (), 0,0,0)
    Wait (1000)
    return True
 
while True:
    if FindType (0x0DE1, Ground ()) or PrepareKindling ():
        UseObject (FindType (0x0DE1, Ground ())) # skid sawdust
        Wait (5000)