Page 1 of 1
каст с книги
Posted: 2010-07-06 00:34:54
by lavdenis
Надо чтоб показывал реги которых не хватает. Подскажите уравнение или комманду
Code: Select all
Sub gh()
var i=0
var a='UO.GA'
var b='UO.GS'
var c='UO.MR'
var d='UO.SS'
while not uo.Dead()
If a==i AND b==i AND c==i AND d==i then
UO.Print('Нет'+' '+....) ### Вот тут что ввести чтоб он их выводил на экран по названиям вообщем ПРИМЕР: Нет гарлика гинсенга и т. д?
return
wend
Endif
castBook('Greater Heal',11,'self')
Endsub
Re: каст с книги
Posted: 2010-07-06 08:53:16
by Mirage
Ну во первых такие хитросплетения я понимаю для win7 делаются? Отключи там тему аэро и будет тебе панелька с регами вверху.
А так если ты задумал всетаки скрипт ради скрипта то как то так надо:
Code: Select all
Sub gh()
var i=0
while not uo.Dead()
If uo.counta(UO.GA)==i then
UO.Print('Нет реагента 1)
return
Endif
If uo.counta(UO.GS)==i then
UO.Print('Нет реагента 2)
return
Endif
castBook('Greater Heal',11,'self')
wend
endsub
либо короче будет через цикл for next
Re: каст с книги
Posted: 2010-07-07 04:40:26
by lavdenis
нееее это вата мож как нить через массив че типо этого. Но как реги которые надо из Sub gh()>>> передать в >>> sub castBook и сделать поиск в массиве только по ним а остальные которые не нужны для каста игнорить ????
Code: Select all
#############################
Sub gh()
If (NOT (UO.Dead())) Then
castBook('Greater Heal',11,'self',a,b,c,d) ##### где a b c и d это реги которые нужны
Endif
Endsub
##############################
sub castBook(Spell,ManaNeed,Target,a,b,c,d)
Var i
DIM Text[8]
Text[0] = 'гарлика'
Text[1] = 'найтшайда'
Text[2] = 'гинсенга'
Text[3] = 'блэкерла'
Text[4] = 'блудмоса'
Text[5] = 'спайдкрсилка'
Text[6] = 'мандрэйка'
Text[7] = 'сульфураш'
DIM Vars[8]
Vars[0] = uo.count('Тут тип регов') ##### или мож лучше сделать UO.GA?????
Vars[1] = uo.count(' ') ##### или мож лучше сделать UO.NS?????
Vars[2] = uo.count(' ') ##### или мож лучше сделать UO.GS?????
Vars[3] = uo.count(' ') ##### или мож лучше сделать UO.BP?????
Vars[4] = uo.count(' ') ##### или мож лучше сделать UO.BM?????
Vars[5] = uo.count(' ') ##### или мож лучше сделать UO.SS?????
Vars[6] = uo.count(' ') ##### или мож лучше сделать UO.MR?????
Vars[7] = uo.count(' ') ##### или мож лучше сделать UO.SA?????
while not uo.Dead()
for i=0 to 7
repeat
if Vars[i]==0 then
uo.print('Нет'+' '+'Text[i]')###### вот тут будет показыватькаких не хватает
return
wend
Endif
If UO.Mana<ManaNeed then
UO.Print("Маны нет лол!")
drink('тотлов маны','0x0F08')
UO.Cast(Spell,Target)
Endif
Endsub
Re: каст с книги
Posted: 2010-07-07 08:49:21
by lavdenis
ну дак что где знатоки то?
Re: каст с книги
Posted: 2010-07-07 10:06:13
by Mirage
игры под рукой нет так что тесть. У тебя очень много не нужных циклов было.
Code: Select all
#############################
sub gh()
If (NOT (UO.Dead())) Then
castBook('Greater Heal',11,'self',a,b,c,d)
Endif
Endsub
##############################
Sub castBook(Spell,ManaNeed,Target,a,b,c,d)
Var i
DIM Text[8]
Text[0] = 'гарлика'
Text[1] = 'найтшайда'
Text[2] = 'гинсенга'
Text[3] = 'блэкерла'
Text[4] = 'блудмоса'
Text[5] = 'спайдкрсилка'
Text[6] = 'мандрэйка'
Text[7] = 'сульфураш'
DIM Vars[8]
Vars[0] = UO.GA
Vars[1] = UO.NS
Vars[2] = UO.GS
Vars[3] = UO.BP
Vars[4] = UO.BM
Vars[5] = UO.SS
Vars[6] = UO.MA
Vars[7] = UO.SA
for i=0 to 7
if Vars[i]==0 then
uo.print('Нет '+'Text[i]')
return
Endif
next
If UO.Mana<ManaNeed then
UO.Print("Маны нет лол!")
drink('тотлов маны','0x0F08')
wait(100)
Endif
UO.Cast(Spell,Target)
Endsub
Re: каст с книги
Posted: 2010-07-07 11:43:07
by lavdenis
Нее не покатит он мне покажет только один рег которого не хватает и остановится. к тому же не понятно нужен он для этого каста или нет.А надо чтоб все показал которых нет именно для этого каста. Нужно из предыдущего скрипта передать реги которые нужны и делать поиск в массиве только по ним но как мне a b c d cопоставить с массивом а потом uo.ignore() игнорить те которые не нужны????
там ошибка
...вместо
...и
без кавычек
Re: каст с книги
Posted: 2010-07-08 15:53:03
by Mirage
Ответил в ту тему тебе.
PS можно и крафт сделать в 1 строку которая будет шириной в 3 экрана.
kraft(предмет,меню, на предмет или просто юз инструмента, скидывать или нет продукты, если скидывать то куда, брать или не брать сырье, если брать то откуда, цвет сырья, цвет предмета крафта, есть или не есть, прятаться или не прятаться, атаковать или нет нападающего, логировать или нет производство...) и так далее. У меня даже есть чтото подобное. Поверь это изврат.
Re: каст с книги
Posted: 2010-07-09 02:30:27
by lavdenis
Для начала объясню причину зачем. Зачем мне чтоб скрипт на каст работал полностью до последнего шага если у меня нет регов, нафига нагружать то-незачем. А чтоб показывало каких нет регов это чтоб видно лучше было а то клиентский видно плохо
Mirage wrote:Правда я не совсем понимаю зачем все настолько усложнять - любые рюшечки рано или позно приведут в падению скрипта и клиента. Они используются только при отладке скрипта. Дальнейшее заморачивание скрипта сломает моск. Можно конечно включить считывание с журнала наименование реагентов, добавить проверку на пустой regN номер или не пустой. Но возникает закономерный вопрос ЗАЧЕМ?
То что ты пытаешь скрафтить из достаточно простого скрипта универсальную автоматокрафтокастилку это понятно... Ну флаг в руки.
мне проще пользоваться 1-2 строковыми кастами забиндеными на хоткей
+) Дак я тогда на ассисте посижу с тем же успехом. Если у меня инжект падать будет из за скриптов для которых он сбсно и сделан дак нафига он тогда нужен
Mirage wrote:PS можно и крафт сделать в 1 строку которая будет шириной в 3 экрана.
kraft(предмет,меню, на предмет или просто юз инструмента, скидывать или нет продукты, если скидывать то куда, брать или не брать сырье, если брать то откуда, цвет сырья, цвет предмета крафта, есть или не есть, прятаться или не прятаться, атаковать или нет нападающего, логировать или нет производство...) и так далее. У меня даже есть чтото подобное. Поверь это изврат.
Это удобно!Я ж для себя делаю. Тогда нафиг инжа, PILOT и вперед?
Mirage wrote:Правда я не совсем понимаю зачем все настолько усложнять - любые рюшечки рано или позно приведут в падению скрипта и клиента.
Почему скрипт упадет то если он верный? Не понял может вообще тада с инжой не стоит связываться?
Re: каст с книги
Posted: 2010-07-09 03:47:24
by lavdenis
сделал так,но
Code: Select all
Sub gh()
If (NOT (UO.Dead())) Then
castBook('Greater Heal',11,'self',UO.GA,-1,UO.GS,-1,-1,UO.SS,UO.MR,-1)
Endif
Endsub
Sub castBook(Spell,ManaNeed,Target,reg1,reg2,reg3,reg4,reg5,reg6,reg7,reg8)
if reg1==0 then
UO.Print("нет гарлика!")
endif
if reg2==0 then
UO.Print("нет найтшайда!")
endif
if reg3==0 then
UO.Print("нет гинсенга!")
endif
if reg4==0 then
UO.Print("нет блэкперла!")
endif
if reg5==0 then
UO.Print("нет блудмоса!")
endif
if reg6==0 then
UO.Print("нет спайдерсилка!")
endif
if reg7==0 then
UO.Print("нет мандрэйка!")
endif
if reg8==0 then
UO.Print("нет сульфураш!")
return
endif
If UO.Mana<ManaNeed then
UO.Print("Маны нет лол!")
drink('тотлов маны','0x0F08')
wait(1)
Endif
UO.Cast(Spell,Target)
Endsub
Но менее удобно чем через массив т.к. везде приходиться прописывать реги которые нужны и которые не нужны
Re: каст с книги
Posted: 2010-07-09 04:14:50
by lavdenis
чет мне не нравится
Re: каст с книги
Posted: 2010-07-09 06:00:18
by lavdenis
Вообщем я сделал так все таки получилось через массив +) Проблема решена
Code: Select all
sub gh()
IF (NOT (UO.Dead()) AND (NOT (uo.waiting()))) THEN
castBook('Greater Heal',11,'self',0,1,0,1,1,0,0,1)
ENDIF
Endsub
Code: Select all
Sub castBook(Spell,ManaNeed,Target,a,b,c,d,e,f,g,h)
Var i,nullReg=0
DIM Reg[8]
Reg[0] = a
Reg[1] = b
Reg[2] = c
Reg[3] = d
Reg[4] = e
Reg[5] = f
Reg[6] = g
Reg[7] = h
DIM Text[8]
Text[0] = 'гарлика'
Text[1] = 'найтшайда'
Text[2] = 'гинсенга'
Text[3] = 'блэкперла'
Text[4] = 'блудмоса'
Text[5] = 'спайдкрсилка'
Text[6] = 'мандрэйка'
Text[7] = 'сульфураш'
DIM Vars[8]
Vars[0] = UO.GA
Vars[1] = UO.NS
Vars[2] = UO.GS
Vars[3] = UO.BP
Vars[4] = UO.BM
Vars[5] = UO.SS
Vars[6] = UO.MR
Vars[7] = UO.SA
for i=0 to 7
IF reg[i]==0 AND Vars[i]==0 THEN
UO.concolor(0x002B)
UO.print('Нет'+' '+Text[i])
UO.concolor(1088)
nullReg=nullReg+1
ENDIF
NEXT
IF nullReg>0 THEN
Return
ENDIF
IF UO.Mana<ManaNeed THEN
UO.concolor(0x002B)
UO.Print("Маны нет лол!")
UO.concolor(1088)
drink('тотлов маны','0x0F08')
wait(1)
ENDIF
UO.Cast(Spell,Target)
Endsub
Re: каст с книги
Posted: 2010-07-10 10:06:47
by Beyonder
Во первых, Mirage - ты не прав. Такого рода универсальные функции очень даже полезные для скриптов. Я сам регулярно использую функции вроде той что пишет автор. Т.к. в будущем - если вдруг какая проблема - ты сразу знаешь где её искать. Плюс к этому, если тебе нужна еще какая-то дополнительная проверка - нужно править только одно место а не 40+ функций которые делают то-же самое.
Во вторых, насчёт самой проблемы. Я бы сделал функцию именно как предложил Mirage. Правда у него ошибка в скрипте была, вот исправленная версия:
Code: Select all
#############################
sub gh()
If (NOT (UO.Dead())) Then
castBook('Greater Heal',11,'self',a,b,c,d)
Endif
Endsub
##############################
Sub castBook(Spell,ManaNeed,Target,a,b,c,d)
Var i
DIM Text[8]
Text[0] = 'гарлика'
Text[1] = 'найтшайда'
Text[2] = 'гинсенга'
Text[3] = 'блэкерла'
Text[4] = 'блудмоса'
Text[5] = 'спайдкрсилка'
Text[6] = 'мандрэйка'
Text[7] = 'сульфураш'
DIM Vars[8]
Vars[0] = UO.GA
Vars[1] = UO.NS
Vars[2] = UO.GS
Vars[3] = UO.BP
Vars[4] = UO.BM
Vars[5] = UO.SS
Vars[6] = UO.MA
Vars[7] = UO.SA
var status = 1
for i=0 to 7
if (Vars[i] == a) OR (Vars[i] == b) OR (Vars[i] == c) OR (Vars[i] == d) then
if UO.Count(Vars[i])==0 then
uo.print('Нет '+'Text[i]')
status = 0
Endif
endif
next
if (status == 0) then
return
endif
If UO.Mana<ManaNeed then
UO.Print("Маны нет лол!")
drink('тотлов маны','0x0F08')
wait(100)
Endif
UO.Cast(Spell,Target)
Endsub
Вот так будет и нормально проверять реги, и выводить все которых не хватает.
Не проверял код, нет игры. Но вероятно должно работать (чтобы точно работал - запускай в новолуние).
Re: каст с книги
Posted: 2010-07-10 10:13:24
by lavdenis
Code: Select all
if (Vars[i] == a) OR (Vars[i] == b) OR (Vars[i] == c) OR (Vars[i] == d) then
+) Сенки чет сразу не допер не знал как с массивом подругому связать
Re: каст с книги
Posted: 2010-07-10 10:26:33
by lavdenis
Финал испарвил там чуток
на
и
без кавычек
Code: Select all
sub gh()
If (NOT (UO.Dead())AND (NOT (uo.waiting()))) Then
castBook('Greater Heal',11,'self',0,1,0,1,1,0,0,1)
Endif
Endsub
Code: Select all
Sub castBook(Spell,ManaNeed,Target,a,b,c,d,e,f,g,h)
Var i
DIM Text[8]
Text[0] = 'гарлика'
Text[1] = 'найтшайда'
Text[2] = 'гинсенга'
Text[3] = 'блэкерла'
Text[4] = 'блудмоса'
Text[5] = 'спайдкрсилка'
Text[6] = 'мандрэйка'
Text[7] = 'сульфураш'
DIM Vars[8]
Vars[0] = UO.GA
Vars[1] = UO.NS
Vars[2] = UO.GS
Vars[3] = UO.BP
Vars[4] = UO.BM
Vars[5] = UO.SS
Vars[6] = UO.MR
Vars[7] = UO.SA
var status = 1
for i=0 to 7
if (Vars[i] == a) OR (Vars[i] == b) OR (Vars[i] == c) OR (Vars[i] == d) OR (Vars[i] == e)OR (Vars[i] == f)OR (Vars[i] == g)OR (Vars[i] == h) then
if UO.Count(Vars[i])==0 then
uo.print('Нет '+Text[i])
status = 0
Endif
endif
next
if (status == 0) then
return
endif
If UO.Mana<ManaNeed then
UO.Print("Маны нет лол!")
drink('тотлов маны','0x0F08')
wait(100)
Endif
UO.Cast(Spell,Target)
Endsub
Re: каст с книги
Posted: 2010-07-11 03:45:36
by Mirage
тогда последние 10 копеек. Вот так визуально красивей.
Code: Select all
var printcolour = '1069'
sub gh()
If NOT UO.Dead() Then ; uo.waiting() в такой конструкции не работает.
castBook('Greater Heal',11,'self',0,1,0,1,1,0,0,1)
Endif
endsub
Sub castBook(Spell,ManaNeed,Target,a,b,c,d,e,f,g,h)
Var i
DIM Text[8]
Text[0] = 'гарлика'
Text[1] = 'найтшайда'
Text[2] = 'гинсенга'
Text[3] = 'блэкерла'
Text[4] = 'блудмоса'
Text[5] = 'спайдкрсилка'
Text[6] = 'мандрэйка'
Text[7] = 'сульфураш'
DIM Vars[8]
Vars[0] = UO.GA
Vars[1] = UO.NS
Vars[2] = UO.GS
Vars[3] = UO.BP
Vars[4] = UO.BM
Vars[5] = UO.SS
Vars[6] = UO.MR
Vars[7] = UO.SA
var status = 1
for i=0 to 7
if (Vars[i] == a) OR (Vars[i] == b) OR (Vars[i] == c) OR (Vars[i] == d) OR (Vars[i] == e) OR (Vars[i] == f) OR (Vars[i] == g) OR (Vars[i] == h) then
if UO.Count(Vars[i])==0 then
uo.charprint(printcolour,'Нет '+Text[i])
status = 0
endif
endif
next
if (status == 0) then
return
endif
If UO.Mana<ManaNeed then
uo.charprint(printcolour,'Маны нет, лол!')
drink('тотлов маны','0x0F08')
wait(100)
Endif
UO.Cast(Spell,Target)
Endsub
Beyonder спасибо за замечание и доработку.
PS чето я с утра не соображу как оно вообще работает ну да ладно...
Re: каст с книги
Posted: 2010-07-12 09:57:39
by Beyonder
Чего-то господа Вы как-то мой скрипт изуродовали.
Вот это - неверно:
Code: Select all
sub gh()
If (NOT (UO.Dead())AND (NOT (uo.waiting()))) Then
castBook('Greater Heal',11,'self',0,1,0,1,1,0,0,1)
Endif
Endsub
А вот это, верно:
Code: Select all
sub gh()
If (NOT (UO.Dead())AND (NOT (uo.waiting()))) Then
castBook('Greater Heal',11,'self',UO.MR,UO.BM,UO.NS,UO.GA,0,0,0,0)
Endif
Endsub
Тоесть не еденички и нолики, а просто указываешь все ресурсы необходимые а скрипт сам их проверяет. Намного понятнее чем набор еденичек и ноликов. И потому у меня и было всего 4 параметра - я не видел серверов где для каста заклинания нужно больше 4-ех ингридиентов.
Re: каст с книги
Posted: 2010-07-12 10:25:42
by Mirage
вот я и пишу - сижу и втыкаю почему оно рабдотает (а оно работает). Видимо какието тайности недоступные мне...
ЗЫ про 10010100 он сам придумая. Тут я не причем.

Я имел ввиду перечисление регов как у Beyonder
Re: каст с книги
Posted: 2010-07-15 12:22:02
by lavdenis
Beyonder wrote:Чего-то господа Вы как-то мой скрипт изуродовали.
Вот это - неверно:
Code: Select all
sub gh()
If (NOT (UO.Dead())AND (NOT (uo.waiting()))) Then
castBook('Greater Heal',11,'self',0,1,0,1,1,0,0,1)
Endif
Endsub
А вот это, верно:
Code: Select all
sub gh()
If (NOT (UO.Dead())AND (NOT (uo.waiting()))) Then
castBook('Greater Heal',11,'self',UO.MR,UO.BM,UO.NS,UO.GA,0,0,0,0)
Endif
Endsub
Тоесть не еденички и нолики, а просто указываешь все ресурсы необходимые а скрипт сам их проверяет. Намного понятнее чем набор еденичек и ноликов. И потому у меня и было всего 4 параметра - я не видел серверов где для каста заклинания нужно больше 4-ех ингридиентов.
Нет это не работает. Мое работает
Re: каст с книги
Posted: 2010-07-16 11:39:16
by Beyonder
Изумительно.
Re: каст с книги
Posted: 2010-07-16 19:03:48
by lavdenis
+))))))))))