Shadow-Worlds Classic

Здравствуйте, гость ( Вход | Регистрация )

 
Тема закрытаНачать новую тему
> FAQ по написанию скиптов для SW Manager., Описание и примеры скриптов.
Ratibor
сообщение 15.5.2008, 13:18
Сообщение #1


Тургаз
*******

Группа: Game Masters
Сообщений: 240
Регистрация: 27.2.2008
Из: Москва
Пользователь №: 5



Так как тема по скриптам расползлась, попытаюсь обобщить в одном месте все.
И так! Для начала справочник скрипт-команд для "SWManager"
Источник: http://www.dkirpichov.narod.ru/scriptcommands.html

Жирным шрифтом выделены значения параметров (например, координаты), которые необходимо определять самостоятельно.
В квадратных скобках "[" и "]" заключены необязательные параметры команд, их допустимо пропускать.
Многоточие "..." подразумевает наличие блока команд, такой блок может быть многострочным.
Под этапом скрипта подразумевается разовое выполнение всех команд скрипта.

left x, y [[not] color color] - нажатие левой клавиши мыши в указанных координатах x и y в окне игры при условии совпадения/несовпадения цвета точки в данных координатах с указанным значением (в данном случае [[not] color color] - необязательные параметры, т.е. допустима команда left 10, 15, при которой клавиша будет нажата независимо от цвета); параметры последующих команд нажатия клавиш мыши аналогичны;

right x, y [[not] color color] - нажатие правой клавиши мыши;

dblleft x, y [[not] color color] - двойное нажатие левой клавиши мыши;

dblright x, y [[not] color color] - двойное нажатие правой клавиши мыши;

ctrlleft x, y [[not] color color] - нажатие левой клавиши мыши при нажатой клавише Ctrl;

ctrlright x, y [[not] color color] - нажатие правой клавиши мыши при нажатой клавише Ctrl;

ctrldblleft x, y [[not] color color] - двойное нажатие левой клавиши мыши при нажатой клавише Ctrl;

shiftdblright x, y [[not] color color] - двойное нажатие правой клавиши мыши при нажатой клавише Ctrl;

shiftleft x, y [[not] color color] - нажатие левой клавиши мыши при нажатой клавише Shift;

shiftright x, y [[not] color color] - нажатие правой клавиши мыши при нажатой клавише Shift;

shiftdblleft x, y [[not] color color] - двойное нажатие левой клавиши мыши при нажатой клавише Shift;

shiftdblright x, y [[not] color color] - двойное нажатие правой клавиши мыши при нажатой клавише Shift;

if x, y [not] color color ... end if - проверка условия на соответствие цвета color в указанных координатах x, y окна игры, при совпадении цвета выполняется блок команд, начиная со следующей строки, иначе выполнение переходит к ближайшей снизу команде elseif, else, либо end if;

if rand num ... end if - проверка условия со случайным числом, num должно быть в диапазоне от 0 до 1, при этом 0 соответствует 0%, а 1 - 100% верности условия, при верном условии выполняется блок команд, начиная со следующей строки, иначе выполнение переходит к ближайшей снизу команде elseif, else, либо end if;

elseif x, y [not] color color ... end if - дополнительная проверка условия на соответствие цвета color в указанных координатах x, y окна игры, при совпадении цвета выполняется блок команд, начиная со следующей строки, иначе выполнение переходит к ближайшей снизу команде elseif, else, либо end if, используется при невыполнении исходного условия if, либо if rand;

else - начало блока, содержащего строки команд для альтернативных действий при невыполнении предыдущих условий if, if rand и elseif;

do [count] ... loop - цикл, выполняющийся count раз, при отсутствии значения выполняется единожды;

break - завершение текущего цикла;

continue - возвращение к началу цикла, счетчик цикла увеличивается, как и при переходе к команде loop;

goto label | line_num - переход на метку label, либо на конкретную строку line_num скрипта;

:label - метка, используется совместно с командой goto;

restart - начало выполнения скрипта заново, таймер возвращается в исходное положение;

end script - завершение текущего этапа скрипта, таймер не останавливается;

stop script - завершение выполнения скрипта, таймер возвращается в исходное положение и останавливается;

stop timer - остановка таймера, выполнение текущего этапа скрипта продолжается;

wait msec - пауза в миллисекундах перед выполнением следующей строки скрипта;

interval msec - изменение интервала между строками в миллисекундах, начиная с данной строки скрипта;

alert [text] - текстовое оповещение в отдельном окне с содержанием text, при отсутствии значения используется стандартное сообщение;

beep [1-3] - звуковое оповещение, в котором 1, 2 и 3 означают различные звуки;

playwav filename.wav - проигрывание звукового wav-файла, допустимо указывать с учетом пути к файлу;

sendkey F1-9 - нажатие указанной клавиши с F1 по F9 в окне игры;

send text - отправка набора символов в окно игры, например, для общения, либо использования заклинаний, символ "~" означает клавишу Enter, а символ "&" - нажатие Alt одновременно со следующим символом;

scrleft [count] - прокрутка инвентаря на count ячеек влево, при отсутствии значения подразумевается 1 ячейка;

scrright [count] - прокрутка инвентаря на count ячеек вправо, при отсутствии значения подразумевается 1 ячейка;

sit - отправка персонажу команды присесть;

stand - отправка персонажу команды встать, на самом деле это нажатие на клетку текущего положения персонажа, приводящее к вставанию, бой после такого "вставания" будет менее эффективным и без анимации удара;

self - выбор себя для магического воздействия;

target [keypad#] - выбор цели для атаки, keypad# означает цифру на дополнительной цифровой клавиатуре, каждая цифра определяет конкретное положение цели (например, 6 - цель справа), при отсутствии значения целью является сам персонаж;

magictarget [keypad#] - выбор цели для магического воздействия, keypad# означает цифру на дополнительной цифровой клавиатуре, каждая цифра определяет конкретное положение цели (например, 6 - цель справа), при отсутствии значения целью является сам персонаж.


--------------------
Со мной моя нежность, да что с нею делать.
Унять свою гордость, душа б не болела.
Меня гложет зависть, а с ней моя злоба.
Желанье быть первым, и чтоб высшей пробы.
В одной руке бритва, в другой моя смелость.
К вечеру битва, с утра опять серость.

Здесь Вам всегда рады http://ratibor.clan.su/

P.S. Славься МИСТ !!!
Перейти в начало страницы
 
+Цитировать сообщение
Ratibor
сообщение 15.5.2008, 13:18
Сообщение #2


Тургаз
*******

Группа: Game Masters
Сообщений: 240
Регистрация: 27.2.2008
Из: Москва
Пользователь №: 5



Как запустить макрос «SWManager».
Открываем вкладку "?"
Ищем слово «Miner». Оно находится в следующей строке после названия макроса.
Зажимаем одновременно клавиши Shift+Alt и кликаем на слово «Miner» правой кнопкой мыши.
Всё! Кнопка «START» на вкладке «SCRIPT» становится активной!
Далее. После того как вы открыли «SWManager», в трэе появится значек программы. Кликаем на значок правой кнопкой мыши. Наводим курсор на "Options", откроется новая вкладка. В ней убираем галочку с надписи "Autofoсus SW". Эта процедура позволит безболезненно перекрывать клиент игры и макрос другими окнами.

При определении координат скрипта окно программы ««SWManager»», должно быть активно. Не забывайте об этом!
Подводим курсор к точке над окном игры, где собираемся выполнять какое либо действие и нажимаем [Ctrl+A]. В окне утилиты появятся координаты нужной вам точки. Например для ловли рыбы курсор подводим на воду, а для копания руды, курсор на стену шахты, и т.д. и т.п.

Далее примеры скриптов написанных мной. Что бы вы, используя скрипты не мучались с установкой интервала в самом макросе (что в принципе проще), добавил в каждый скрипт строку с интервалом. Но вам все равно нужно будет менять числовое значение.

Простейший скрипт для ловли любой рыбы и поедания ее. Использовать для прокачки умения «рыбалка» и «лечение». Скорость ловли и поедания может быть очень высока. Все зависит от вашего компьютера и скорости интернета. Я использовал такой скрипт с интервалом в 10. Скрипт работал отлично.

right 489, 229
left 136, 283
right 520, 231
right 559, 231
interval 10
restart

Расшифровка:

right (координаты правой кнопки мыши. Клик на сетку.)
left (координаты левой кнопки мыши. Клик на воду.)
right (координаты левой кнопки мыши. Клик на первую ячейку мешка. Ест первую пойманную рыбу.)
right (координаты левой кнопки мыши. Клик на вторую ячейку мешка. Ест вторую пойманную рыбу.)
interval 10 (скорость выполнения команд. Числовое значение меняем на то, которое вам нужно)
restart (повтор действий скрипта)

Простейший скрипт для прокачки умений «магия», «щит» и «защита от магии», с одноврименным лечением у НПС - доктора.

left 269, 154
left 59, 361
left 354, 385
send esani gre olam~
interval 200
restart

Расшифровка:

Left (координаты лекаря)
left (координаты надписи у лекаря "полечи меня")
left (координаты "закрыть" окно диалога с лекарем)
send (Любое заклинание, или без (~) любая фраза)
interval 200 (скорость выполнения команд. Числовое значение меняем на то, которое вам нужно)
restart (повтор действий скрипта)

Простейший скрипт для лечения у НПС - лекаря. Используется для прокачки умения «щит», «защита от магии».
Используется у НПС доктора, у которого в диалоге есть слово «назад/вернутся». Окно диалога закрывать не надо, по этому скрипт короткий.

left 249, 137
interval 200
restart

Расшифровка:

left 249, 137 (Координаты надписи «полечи меня» и «назад/вернутся» в окне диалога с доктором)
interval 200 (Скорость выполнения команд. Числовое значение, меняем на то, которое вам нужно).
restart (повтор всех действий)

Если у НПС - лекаря нет в диалоге слова «назад/вернутся», необходимо добавлять строки открытия и закрытия диалогового окна. В таком случае скрипт будет выглядеть так:

left 269, 154
left 59, 361
left 354, 385
interval 200
restart

Расшифровка:

Left (координаты лекаря)
left (координаты надписи у лекаря "полечи меня")
left (координаты "закрыть" окно диалога с лекарем)
interval 200 (скорость выполнения команд. Числовое значение меняем на то, которое вам нужно)
restart (повтор действий скрипта)

Простейший скрипт для выполнения нужного вам действия необходимое количества раз. Можно использовать для ловли магической рыбы. Необходимо только добавить строки с координатами ячеек мешка и командами позволяющими есть обычную рыбу и не есть магическую. Соответственно добавляем строку interval, для определения скорости работы скрипта и заканчиваем этот и любой другой скрипт командой restart.

do 30
right 483, 234
left 216, 94
loop

Расшифровка:

Do (количество повторов нужное вам)
right (координаты действия 1 нужное вам)
left (координаты действия 2 нужное вам)
loop (конец выполнения действий)


Для того, что бы написать скрипт на ловлю магической рыбы необходимо определить цвет объекта (магическая рыба), и дать команду программе, что бы это цвет игнорировался.

Определение цвета:
Окно утилиты должно быть активно, подводим курсор к точке над окном игры, где необходимо определить цвет, и нажимаем [Ctrl+A], в окне утилиты на кнопке координат появляются координаты точки;
Нажимаем кнопку треугольника слева от кнопки со значением цвета, по нажатию определится цвет в координатах,
указанных в кнопке координат;
Нажимаем на кнопку со значением цвета и значение цвета вместе с командой color добавляется в скрипт
(можно не нажимать, а просто набрать значение цвета вручную).
Сразу определить цвет не удается из-за мышиного курсора в окне игры, который изменяет цвет точки под самим собой.

Вариант строки команды скрипта для поедания обычной и большой рыбы и игнорирования магической рыбы.

right (координаты ячейки мешка) not color (цвет объекта)

В принципе команду interval можно исключать из скрипта и выставлять скорость в самой программе.
Вот вроде и все! ))) Желаю удачи )

Сообщение отредактировал Ratibor - 27.8.2008, 19:47


--------------------
Со мной моя нежность, да что с нею делать.
Унять свою гордость, душа б не болела.
Меня гложет зависть, а с ней моя злоба.
Желанье быть первым, и чтоб высшей пробы.
В одной руке бритва, в другой моя смелость.
К вечеру битва, с утра опять серость.

Здесь Вам всегда рады http://ratibor.clan.su/

P.S. Славься МИСТ !!!
Перейти в начало страницы
 
+Цитировать сообщение

Тема закрытаНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 5.5.2024, 17:04