Всем привет. Хочу представить вам небольшой, но удобный скрипт для комплексной прокачки боевых навыков.
Пока скрипт очень беден. Нет массы нужных функций, но умеет сверять навык персонажа с указанным, Вами, количеством. Если есть необходимость, скрипт докачивает навык, до необходимого Вам.
Скрипт , по-мере сил и свободного времени, будет дополняться и расширять границы функциональности.
Из-за отсутствия дома на сервере, пока приходится таскать в паке бинты и оружие для прокачки.
Как работает скрипт? Берем двух чаров, один будет качаться, второй стоя с луком в руках(в паке не должно быть стрел), будет терпеть издевательства и унижения)). Первому чару кидаем в пак оружие и бинты. Запускаем SkillCheck(). Скрипт начнет проверять скилы. Если какой-то из скилов меньше 100%, скрипт начнет его докачивать. Как накачает, перейдет к проверке следующего скила и т.д. Либо можно запустить скрипт без проверки навыков, через: FencingTraining(), SwordsmanshipTraining(), MaceFightingTraining(), убрав перед оператором uo.addobject решетку, либо вручную добавив персонажа куклу в список объектов. Когда у куклы остается 1\3 здоровья, основной персонаж начинает его лечить.
В FencingTraining(), SwordsmanshipTraining(), MaceFightingTraining(), вы должны указать тип используемого оружия.
Code:
sub SkillCheck()
uo.addobject('opponent','0x01E86458') ; <--- Вписать id чара, на котором будем тренироваться.
uo.print('Запускаем проверку боевых скриптов')
wait(3000)
###################
##### Fencing #####
###################
uo.print('Проверяем Fencing')
wait(3000)
if uo.skillval('Fencing') < 1000 then
uo.print('Будем качать Fencing!')
wait(3000)
FencingTraining()
else
uo.print('Количество навыка Fencing удовлетворяет нашему условию')
wait(3000)
uo.print('Переходим к следующему навыку')
wait(3000)
endif
########################
##### Swordmanship #####
########################
uo.print('Проверяем Swordsmanship')
wait(3000)
if uo.skillval('Swordsmanship') < 1000 then
uo.print('Будем качать Swordsmanship!')
wait(3000)
SwordsmanshipTraining()
else
uo.print('Количество навыка Swordsmanship удовлетворяет нашему условию')
wait(3000)
uo.print('Переходим к следующему навыку')
wait(3000)
endif
#########################
##### Mace Fighting #####
#########################
uo.print('Проверяем Mace Fighting')
wait(3000)
if uo.skillval('Mace Fighting') < 1000 then
uo.print('Будем качать Mace Fighting!')
wait(3000)
MaceFightingTraining()
else
uo.print('Количество навыка Mace Fighting удовлетворяет нашему условию')
wait(3000)
uo.print('Все навыки удовлетворяют нашим условиям!!!')
wait(3000)
endif
endsub
sub FencingTraining() #снимает и кидает вар мод, если хп менше заданого (своего или напарника; кол. ХП указываем; таргет на ПРОТИВНИКА )
Var f_weapon = '0x0F51' ; <--- Тип оружия, которым будем бить.
#uo.addobject('opponent','0x01E86458') ; <--- Вписать id чара, на котором будем тренироваться.
uo.disarm()
wait(1000)
uo.warmode(true)
uo.attack('opponent')
repeat
if UO.objatlayer("Rhand")=="" then ; На случай, если сломается оружие.
UO.equipt("Rhand",f_weapon)
wait(600)
end if
if uo.getHP('opponent') < uo.getMaxHP('opponent')/3 then #Указываем со скольки ХП(мах)/x НАПАРНИКА мы будем снимать вар(x переменная)
uo.warmode(false)
uo.disarm()
repeat
uo.deletejournal()
uo.waittargetobject('opponent')
uo.usetype('0x0E21')
repeat
wait(300)
until uo.injournal('You could not') or uo.injournal('you have healed')
until uo.getHP('opponent') == uo.getMaxHP('opponent')
if UO.objatlayer("Rhand")=="" then
UO.equipt("Rhand",f_weapon)
end if
uo.warmode(true)
uo.attack('opponent')
endif
wait(700)
until uo.dead() or uo.skillval('Fencing') == 1000
uo.warmode(false)
endsub
sub SwordsmanshipTraining() #снимает и кидает вар мод, если хп менше заданого (своего или напарника; кол. ХП указываем; таргет на ПРОТИВНИКА )
Var s_weapon = '0x1440' ; <--- Тип оружия, которым будем бить.
#uo.addobject('opponent','0x01E86458') ; <--- Вписать id чара, на котором будем тренироваться.
uo.disarm()
wait(1000)
uo.warmode(true)
uo.attack('opponent')
repeat
if UO.objatlayer("Rhand")=="" then ; На случай, если сломается оружие.
UO.equipt("Rhand",s_weapon)
wait(600)
end if
if uo.getHP('opponent') < uo.getMaxHP('opponent')/3 then #Указываем со скольки ХП(мах)/x НАПАРНИКА мы будем снимать вар(x переменная)
uo.warmode(false)
uo.disarm()
repeat
uo.deletejournal()
uo.waittargetobject('opponent')
uo.usetype('0x0E21')
repeat
wait(300)
until uo.injournal('You could not') or uo.injournal('you have healed')
until uo.getHP('opponent') == uo.getMaxHP('opponent')
if UO.objatlayer("Rhand")=="" then
UO.equipt("Rhand",s_weapon)
end if
uo.warmode(true)
uo.attack('opponent')
endif
wait(700)
until uo.dead() or uo.skillval('Swordsmanship') == 1000
uo.warmode(false)
endsub
sub MaceFightingTraining() #снимает и кидает вар мод, если хп менше заданого (своего или напарника; кол. ХП указываем; таргет на ПРОТИВНИКА )
Var m_weapon = '0x13E3' ; <--- Тип оружия, которым будем бить.
#uo.addobject('opponent','0x01E86458') ; <--- Вписать id чара, на котором будем тренироваться.
uo.disarm()
wait(1000)
uo.warmode(true)
uo.attack('opponent')
repeat
if UO.objatlayer("Rhand")=="" then ; На случай, если сломается оружие.
UO.equipt("Rhand",m_weapon)
wait(600)
end if
if uo.getHP('opponent') < uo.getMaxHP('opponent')/3 then #Указываем со скольки ХП(мах)/x НАПАРНИКА мы будем снимать вар(x переменная)
uo.warmode(false)
uo.disarm()
repeat
uo.deletejournal()
uo.waittargetobject('opponent')
uo.usetype('0x0E21')
repeat
wait(300)
until uo.injournal('You could not') or uo.injournal('you have healed')
until uo.getHP('opponent') == uo.getMaxHP('opponent')
if UO.objatlayer("Rhand")=="" then
UO.equipt("Rhand",m_weapon)
end if
uo.warmode(true)
uo.attack('opponent')
endif
wait(700)
until uo.dead() or uo.skillval('Mace Fighting') == 1000
uo.warmode(false)
endsub
Основой для скрипта, стал найденный мной скрипт на прокачку хилинга. Автор скрипта мне не известен ((
В ближайших планах, добавить в скрипт прокачку анатомии. А так же есть мысли о реорганизации структуры.
Как только у меня появится дом, сражу допишу добор оружия и бинтов из сундуков. А также, в планах крафт оружия и прочие мелочи, типа еды и т.д.
Скрипт пишется для сервера New Dream World (старейший Одесский сервер). Тестовые персонажи kernel panic и Antares (Анта́рес (α Sco / Альфа Скорпиона) — ярчайшая звезда в созвездии Скорпиона и одна из ярчайших звезд на ночном небе, красный сверхгигант. А то подумаете еще, что у умирающего сервера ник украл
).
Очень надеюсь на критику и указывание недочетов в скрипте.
З.Ы. Если нужно добавить реслинг и арчери, то пишите - добавлю.
З.Ы.Ы Все обновления и исправления будут вноситься в первый пост и датироваться.
Bug Fix:21.08.111)Пофиксил баг с добавлением объекта (противника).