Page 1 of 1

Пара вопросов.

Posted: 2008-02-29 20:50:07
by MacTepeo
итак уважаемые спецы, накопилось несколько вопросиков, нуна помосч.

итак вопрос первый:
может кто-нить написать простейший пример на взаимодействие с асмом?
я недавно откопал для себя кое что новое )

Code: Select all

sub main()
  UO.Print(UO.asmInputString("Сколько предметов переместить?","15"))
  UO.Print(STR(UO.asmInputList("Из какого металла производить броню?","'Silver';'Gold';'Rose';'Agapite'",2)))
  UO.Print(STR(UO.asmInputCombo("Какой силы зелье произвеcти?","'Слабое';'Нормальное';'Сильное';'Убойное'",4)))
  UO.asmMessageBox("Информация:","Ситуация находится под контролем! :)")
end sub


))) интересно, не правда-ли?)

так вот, не могу понять вот чего - как создать конструкцию типа

Code: Select all

while юзер выберет чото/отклонит выбор
то:
if выбор 1
делаем чото
endif

if выбор 2 или 3
делаем еще чото
endif


вот. теперь вопрос 2, каэш сильно наивный и наверно покажется идиотским, но ради примера можно..

возможно ли к асм прикрутить управление скажем винампом?
вот сюда ( control_box2.ini )

Code: Select all

box='left=0','top=33','height=73','width=264','caption= Ship Controls '

// max 20 buttons

button1='left=128','top=08','width=20','height=20','caption=\','exec=msg forward left'
button2='left=128','top=28','width=20','height=20','caption=<','exec=msg left'
button3='left=128','top=48','width=20','height=20','caption=/','exec=msg back left'

button4='left=148','top=08','width=20','height=20','caption=|','exec=msg forward'
button5='left=148','top=28','width=20','height=20','caption=O','exec=msg stop'
button6='left=148','top=48','width=20','height=20','caption=|','exec=msg back'

button7='left=168','top=08','width=20','height=20','caption=/','exec=msg forward right'
button8='left=168','top=28','width=20','height=20','caption=>','exec=msg right'
button9='left=168','top=48','width=20','height=20','caption=\','exec=msg back right'

button10='left=4','top=12','width=50','height=18','caption=Resurrect','exec=msg resurrect'
button11='left=4','top=30','width=50','height=18','caption=A Raise','exec=msg raise anchor'
button12='left=4','top=48','width=50','height=18','caption=A Drop','exec=msg drop anchor'

button13='left=73','top=29','width=55','height=18','caption=Turn Left','exec=msg turn left'

button14='left=188','top=29','width=55','height=18','caption=Turn Right','exec=msg turn right'


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

оч. надеюсь что кто-нить поможет)

Posted: 2008-02-29 21:23:07
by Grin
UO.asmInputString("Сколько предметов переместить?","15")
должна возвернутся как только пользователь сделает действие, или срубит окно или ответит на него...
так что сохраняй результат в переменую и все...

второй это надо у AGRS спрашивать чего он там в кнопки добавил... ясно одно что можно макросы писать под кнопки, в самом инжекте.

Posted: 2008-02-29 22:02:20
by Destruction
Grin wrote:второй это надо у AGRS спрашивать чего он там в кнопки добавил... ясно одно что можно макросы писать под кнопки, в самом инжекте.

Для ответа "можно" - АГРС не нужен.

Берём uo.launch() и в режиме command-line творим что хотим (незнаю как там винамп контролируется через командную строку, но на крайний случай - можно свою тулзу написать) :) Не думаю, чтобы там специально лаунч был вырезан - нет на то весомых причин :)

Posted: 2008-02-29 22:07:58
by Grin
у винампа скорей всего выдело пара оконых сообщений
можно исправить номер сообщения на винамповское и использовать команды для автомапа

Posted: 2008-02-29 22:38:05
by Edred
Я бы вместо того, чтобы думать, как запустить винамп, спросил бы: "а зачем его запускать?"

Я так понимаю, что врядли чтобы чар музыку пока копает слушал... Наверное, человек хочет какой-то звуковой сигнал типа звонка или музыкального ринга подать в случае каких-то событий. А тогда никакой винамп не нужен. Достаточно команды uo.playwav()

Posted: 2008-02-29 22:39:35
by Destruction
Edred wrote:Я бы вместо того, чтобы думать, как запустить винамп, спросил бы: "а зачем его запускать?"

Я так понимаю, что врядли чтобы чар музыку пока копает слушал... Наверное, человек хочет какой-то звуковой сигнал типа звонка или музыкального ринга подать в случае каких-то событий. А тогда никакой винамп не нужен. Достаточно команды uo.playwav()

Человек хочет управлять винампом..

PS: Полюбому нужно клуб невыспавшихся открывать, пойдём тут всем форумом :)

Posted: 2008-02-29 22:55:07
by MacTepeo
спасибо всем за ответы :)

просто я как скриптер еще не реализовался )
сейчас себе поставил техзадачу - написать универсальный автолоад для пвп альфы.. тобишь при каждом логине юзеру задается несколько вопросов, проставляются соответствующие переменные и усе :)
поэтому хочу понять принцип - как вывести в перменную ответ юзера)

насчет винампа другой замут, я просто хочу понять как ОНО работет )
тобишь как управлять программами извне уо)

Posted: 2008-02-29 23:08:57
by Grin
в зависимости от програмы...

Posted: 2008-02-29 23:12:30
by Edred
MacTepeo wrote:насчет винампа другой замут, я просто хочу понять как ОНО работет )
тобишь как управлять программами извне уо)


Напрямую - никак. Нет таких средств в инжекте. Да и не должно быть. Не напрямую - пишешь скрипт на VB, например, или еще на чем-то, его вызываешь из инжекта, а уже скриптом управляешь чем надо. Но передать какие-либо параметры напрямую тоже не удастся, придется либо через реестр, либо через файл на диске. В общем, все это изврат и не стоит того времени, которое ты на воплощение этой идеи убьешь.

Posted: 2008-02-29 23:23:58
by Grin
инжект умеет посылать оконые сообщения
вот только message_ID хардкор...

Posted: 2008-02-29 23:35:30
by MacTepeo
насчет винампа я понял :) спасибо вам))

теперь мне осталось понять как

Grin wrote:UO.asmInputString("Сколько предметов переместить?","15")
должна возвернутся как только пользователь сделает действие, или срубит окно или ответит на него...
так что сохраняй результат в переменую и все...


сделать вот это :)

Posted: 2008-02-29 23:38:29
by MacTepeo
и еще один вопрос, наверное все сталкивались с переносом биндов с одного персонажа на другого, так вот, а реально ли средствами инжекта редатировать во время работы одного клиента injection.xml ?

Posted: 2008-02-29 23:44:28
by Grin
зависет от того как инжект работает с xml а работает он скорей всего так, считывает его полность... парсит у себя в памяти.
Тоесть если ы сделаешь изменения в самом файле физически, то когда инжект вздумает сохранить xml он сотрет все твои изменения...
могут вохникнуть траблы с доступом (могут и не возникнуть)...

ну а чтобы нормально работать с xml надо хоть какойнить опыт работы со строками...

поповоду инпут стринга простой пример...
var res
uo.Print('Stat Input')
res = UO.asmInputString("Сколько предметов переместить?","15")
uo.Print('End Input')
uo.Print('res = '+res)
просветление пришло?

Posted: 2008-03-01 00:10:34
by MacTepeo
все гениальное просто (с)

спасибо грин, щас буду тестить :)