Рыцарская Сага

Главная Регистрация Вход
Среда, 18.07.2018, 09:17

Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Рыцарская Сага » Список форумов » Neverwinter Nights Aurora Toolset » Скрипты для начинающих (помощь в написании скриптов)
Скрипты для начинающих
RemmДата: Среда, 26.06.2013, 22:00 | Сообщение # 1
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
Если у вас трудности со скриптами - вам сюда!

Модмейкер
Рыцарская Сага
 
VladДата: Четверг, 01.08.2013, 15:36 | Сообщение # 2
Оруженосец
Группа: Пользователи
Сообщений: 11
Репутация: 0
Статус: Offline
Всем привет. Наконец-то у меня появился выход в инет. У менятут накопилась куча вопросов по скриптам pardon  самой разной направленности и функции.1) Стандартные проверки на ветку в диалог: ибо, обычныепроверки, которые можно ставить  через
волшебник скриптов  (всем известная шляпа)
-  не срабатывают.  А) Как сделать , чтобы нпс говорил фразу если
герой или волшебник, или маг, или чародей, например, нужно дать квест только
этим классам, а не рыцарям-мошенникам-бардам. Б) какой необходим скрипт, чтобы выполнялось
два условия: у игрока есть предмет и у игрока есть уровень 10. В) Проверка на
расу и класс. 2) Кто-нибудь подскажет скрипты для головоломок. Помниться, вНВН есть головоломка с  4 бассейнами и
драгоценными камнями, которые нужно поместить в эти водоемы, (два с главным
цветом и два дополнительных)   чтобы они образовали тот цвет, который мерцает
над основным водоемом. Или может головоломка с дверью, например 4 колонны –
нужно поместить в них 4 предмета, при выполнении условия дверь открывается
автоматически (еще бы какой-нибудь эффект звуковой или визуальный приделать).
Еще, в оригинальной игре, были колонны для призыва элементаля огня. Пока их не
уничтожишь, через каждые 60 секунд, появлялся элементаль. Может быть, у кого-то
есть свои уникальные головоломки? С радостью бы их опробовал. Все варианты
приветствуются.3) Какой скрипт и куда нужно ставить, чтобы стражник открывал ворота игроку? Как проложить маршрут непися по нескольким локациям?


Сообщение отредактировал Vlad - Четверг, 01.08.2013, 15:38
 
RemmДата: Четверг, 01.08.2013, 16:05 | Сообщение # 3
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
Цитата (Vlad)
обычные проверки, которые можно ставить  через волшебник скриптов  (всем известная шляпа)
-  не срабатывают.
Это почему не работают? Все работает, правка корявый код...
Цитата (Vlad)
2) Кто-нибудь подскажет скрипты для головоломок.
Все пишут под себя.  pardon Базы как таковой я не встречал...
Цитата (Vlad)
3) Какой скрипт и куда нужно ставить, чтобы стражник открывал ворота игроку? Как проложить маршрут непися по нескольким локациям?
На этой страничке есть нужный вам скрипт http://remmgen.narod.ru/tdoor.html запускается с диалога стражника.
Остальное нужно делать в тулсете, сейчас его под рукой нет... Может вечером выложу.


Модмейкер
Рыцарская Сага
 
VladДата: Четверг, 01.08.2013, 16:10 | Сообщение # 4
Оруженосец
Группа: Пользователи
Сообщений: 11
Репутация: 0
Статус: Offline
Жаль, что о головоломках вам ничего не известно. Даже не знаю как с ними быть. Спасибо за ответ - пошел поэкспериментирую со стражей.
 
RemmДата: Четверг, 01.08.2013, 16:19 | Сообщение # 5
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
Цитата (Vlad)
Жаль, что о головоломках вам ничего не известно. Даже не знаю как с ними быть.

Делать свои или вытаскивать из мода чужие...


Модмейкер
Рыцарская Сага
 
RemmДата: Четверг, 01.08.2013, 22:04 | Сообщение # 6
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
Цитата (Vlad)
А) Как сделать , чтобы нпс говорил фразу если герой или волшебник, или маг, или чародей, например, нужно дать квест только
этим классам, а не рыцарям-мошенникам-бардам.
Код
int StartingConditional()
{
      if(GetLevelByClass(CLASS_TYPE_WIZARD, GetPCSpeaker()) >= 1 ||
         GetLevelByClass(CLASS_TYPE_SORCERER, GetPCSpeaker()) >= 1)
      return TRUE;      
      return FALSE;

Цитата (Vlad)
Б) какой необходим скрипт, чтобы выполнялось два условия: у игрока есть предмет и у игрока есть уровень 10.

Код
#include "nw_i0_tool"
int StartingConditional()
{
   object oPC = GetPCSpeaker();
   int iXP = GetXP(oPC);

     if(!HasItem(oPC, "TEG_ITEM")) //тег предмета
        return FALSE;
     if (iXP < 55000) //опыт за уровень
      return FALSE;
      return TRUE;
}

Цитата (Vlad)
В) Проверка на расу и класс.
Код
//::///////////////////////////////////////////////
//:: Проверить расу - дракон
//:: Класс - Воин
//:://////////////////////////////////////////////
int StartingConditional()
{
   if(GetRacialType(GetPCSpeaker()) == RACIAL_TYPE_DRAGON &&
      GetLevelByClass(CLASS_TYPE_FIGHTER, GetPCSpeaker()) >= 1)
      return TRUE;
      return FALSE;
}




Модмейкер
Рыцарская Сага
 
VladДата: Четверг, 01.08.2013, 22:49 | Сообщение # 7
Оруженосец
Группа: Пользователи
Сообщений: 11
Репутация: 0
Статус: Offline
Remm, большое спасибо. :)
 
RemmДата: Пятница, 25.08.2017, 08:42 | Сообщение # 8
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
Код
// New Script
// Author: Remm
// Version: 1.0 (27.06.2017)
// Разрешение экрана 1280х1024

SUB(nagrada)
//************
WAIT(1)
$dom = 0
$nomer = PXLCOUNT (500,635, 510, 655, 3325695)
WAITMS(10)
IF($nomer > 0)
$dom = 1
MOVE(505,646)
WAITMS(100)
LCLICK(505,646)//5
WAITMS(100)
END_IF
//////////////////
IF($dom = 0)
$nomer = PXLCOUNT (500,610, 510, 630, 3325695)
WAITMS(10)
IF($nomer > 0)
$dom = 1
MOVE(505,620)
WAITMS(100)
LCLICK(505,620)//4
WAITMS(100)
END_IF
END_IF
////////////////////
IF($dom = 0)
$nomer = PXLCOUNT (500,585, 510, 605, 3325695)
WAITMS(10)
IF($nomer > 0)
$dom = 1
WAITMS(100)
MOVE(505,596)
WAITMS(100)
LCLICK(505,596)//3
WAITMS(100)
END_IF
END_IF
///////////////////
IF($dom = 0)
$nomer = PXLCOUNT (500,545, 510, 565, 3325695)
WAITMS(10)
IF($nomer > 0)
$dom = 1
MOVE(505,555)
WAITMS(100)
LCLICK(505,555)//2
WAITMS(100)
END_IF
END_IF
////////////////////
IF($dom = 0)
$nomer = PXLCOUNT (500,535, 510, 555, 3325695)
WAITMS(10)
IF($nomer > 0)
$dom = 1
MOVE(505,540)
WAITMS(100)
LCLICK(505,540)//1
WAITMS(100)
END_IF
END_IF
//************
WAITMS(500)
END_SUB

//////////////////
SUB(profa)
WAIT(1)
MOVE(1090,805)
WAITMS(100)
LCLICK(1090,805)
WAIT(1)
END_SUB

///////////////////////////////////////////////
#name "Profa3"
WAIT(1)
$sum = 0
$count = PXLCOUNT (565,220, 665, 240, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(615,257) //1
WAITMS(100)
LCLICK(615,257)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT (785,220, 885, 240, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(835,257) //2
WAITMS(100)
LCLICK(835,257)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT (1000,220, 1100, 240, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(1044,257)  //3
WAITMS(100)
LCLICK(1044,257)
nagrada()
$sum = $sum+1
END_IF
//************
/////////////////
$count = PXLCOUNT (565,350, 665, 370, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(614,386) //1
WAITMS(100)
LCLICK(614,386)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT (785,350, 885, 370, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(835,386) //2
WAITMS(100)
LCLICK(835,386)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT (1000,350, 1100, 370, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(1044,386)  //3
WAITMS(100)
LCLICK(1044,386)
nagrada()
$sum = $sum+1
END_IF
//************
//////////////////
$count = PXLCOUNT (565,480, 665, 500, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(614,517) //1
WAITMS(100)
LCLICK(614,517)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT (785,480, 885, 500, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(835,517) //2
WAITMS(100)
LCLICK(835,517)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT (1000,480, 1100, 500, 2611591)
WAITMS(10)
IF($count > 0)
MOVE(1044,517)  //3
WAITMS(100)
LCLICK(1044,517)
nagrada()
$sum = $sum+1
END_IF
//************
///////////////////////////////////////////////////////////
if ($sum > 0) //1
MOVE(400,265)
WAITMS(100)
LCLICK(400,265)
WAIT(10)

MOVE(1090,320)
WAITMS(100)
LCLICK(1090,320)
profa()
$sum = $sum-1
END_IF
//**************
if ($sum > 0) //2
MOVE(400,265)
WAITMS(100)
LCLICK(400,265)
WAIT(1)

MOVE(1090,320)
WAITMS(100)
LCLICK(1090,320)
profa()
$sum = $sum-1
END_IF
//**************
if ($sum > 0) //3
MOVE(400,265)
WAITMS(100)
LCLICK(400,265)
WAIT(1)

MOVE(1090,320)
WAITMS(100)
LCLICK(1090,320)
profa()
$sum = $sum-1
END_IF
//************
WAIT(2)

кликер


Модмейкер
Рыцарская Сага
 
RemmДата: Пятница, 25.08.2017, 13:33 | Сообщение # 9
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
Код

/////////////////////////////////
// Author: RemmGen
// Version: 2.0 (05.03.2015)
////////////////////////////////

SUB(PODBOR)
$clr = RND(0,2)
IF($clr = 1)
WAITMS(100)
KEYPRESS(#f)  // подбор
WAITMS(100)
END_IF
END_SUB

///////////////////////////////////

#name "klerik"  
LDOWN(10,10)// мышь
WAIT(RND(2,3))
KEYPRESS(#q) // СИЯНИЕ
WAIT(1)
KEYPRESS(#q)
WAIT(RND(2,3))
PODBOR()
KEYPRESS(#e) // ЦЕПИ
WAIT(1)
KEYPRESS(#e)
WAITMS(300)
RCLICK(10,10)
WAIT(2)
PODBOR()  
KEYPRESS(#r) // ВСПЫШКА
WAIT(RND(3,4))
KEYPRESS(#f)  // подбор
WAIT(RND(3,4))

////////////////////////////////
// ежедневка на 2 кнопке
////////////////////////////////
DEFINE($var, 0)
INC($var,1)
IF($var=2)
LDOWN(10,10)// мышь
KEYPRESS(#2)  // ежедневка
WAIT(RND(3,4))
PODBOR()  
KEYPRESS(#2)
KEYPRESS(#3)
WAIT(RND(2,3))
KEYPRESS(#q) // СИЯНИЕ
WAIT(1)
KEYPRESS(#q)
WAIT(RND(2,3))
PODBOR()  
KEYPRESS(#e) // ЦЕПИ
WAIT(1)
KEYPRESS(#e)
WAITMS(300)
RCLICK(10,10)
WAIT(2)
PODBOR()
KEYPRESS(#r) // ВСПЫШКА
WAIT(RND(3,4))
KEYPRESS(#f)  // подбор
WAIT(RND(3,4))
UNDEFINE($var)
END_IF
/////////////////////////////////

LDOWN(10,10)// мышь
WAIT(2)
KEYPRESS(#q) // СИЯНИЕ
WAIT(1)
KEYPRESS(#q)
WAIT(3)
PODBOR()  
KEYPRESS(#e) // ЦЕПИ
WAIT(1)
KEYPRESS(#e)
WAITMS(300)
RCLICK(10,10)
WAIT(2)
PODBOR()
KEYPRESS(#r) // ВСПЫШКА
WAIT(3)
KEYPRESS(#f)  // подбор  
WAIT(RND(3,4))


Модмейкер
Рыцарская Сага
 
RemmДата: Пятница, 25.08.2017, 13:35 | Сообщение # 10
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
Код
// #name "Profa"
// Разрешение экрана 1280х1024
// Чистит все выполненные профы и ставит 3 верхних лидерки
// Author: Remm  
// Version: 1.0 (12.05.2018)

//****************  зеленая надпись выполнения профы  **************************
$nadpis = 2611591 // цвет надписи выполнения профы
$nadpisXV = 565 // левая граница 1 зеленой надписи выполнения профы 1 столбца  X - координата
$nadpisYV = 220 // верхняя граница зеленой надписи выполнения профы первого ряда Y - координата
$shagX =  213 // шаг по горизонтали X - координата
$shagY =  130 // шаг по вертикали Y - координата
//******************************************************************************

//********** координаты кнопок ***************
$battonX = 615 // 1 ряд  X - координата
$battonY = 257 // 1 ряд  Y - координата

$battonL1 = 400 // кнопка лидерства  X - координата
$battonL2 = 265 // кнопка лидерства  Y - координата
$battonStart1 = 1090 // кнопка Начать поручение равна X координате кнопки Продолжить
$battonStart2 = 805 // кнопка Начать поручение Y - координата
$battonProd = 320 // кнопка Продолжить Y - координата

SUB(nagrada)
//******************************************************************************
$nslot = 505 // X - координата курсора при взятии награды (должна находится в поле кнопки, но вне активных зон)
$color1 = $nslot - 25
$color2 = $nslot + 25
// $var   Y - координата середины кнопки взятие награды от 1 до 5
$color = 3325695 // цвет

WAIT(1.5)
//**************
for($var=535, $var < 650, 15)
$nomer = PXLCOUNT ($color1,$var-5, $color2, $var+5, $color)
IF($nomer > 10)
MOVE($nslot,$var)
WAITMS(100)
LCLICK($nslot,$var)
WAITMS(100)
$var=700
END_IF
end_cyc
//**************
WAITMS(500)
END_SUB
//************ *****************************************************************

//////////////////
SUB(profa)
WAIT(0.5)
MOVE($battonStart1,$battonStart2)
WAITMS(100)
LCLICK($battonStart1,$battonStart2)
WAIT(1)
END_SUB

///////////////////////////////////////////////
#name "Profa"
WAIT(1)
$sum = 0
$nam = 0
$nadpisY = $nadpisYV
$battonY1 = $battonY

FOR($a=1, $a < 10, 1)
$nadpisX = $nadpisXV
$battonX1 = $battonX

 if(($a = 4) | ($a = 7))
    $nadpisY = $nadpisY + $shagY
    $battonY1 = $battonY1 + $shagY
 END_IF 
 if(($a = 2) | ($a = 5) | ($a = 8))
    $nadpisX = $nadpisXV + $shagX
      $battonX1 = $battonX + $shagX
 END_IF
 if(($a = 3) | ($a = 6) | ($a = 9))
    $nadpisX = $nadpisXV + $shagX + $shagX
    $battonX1 = $battonX + $shagX + $shagX
 END_IF
  
$count = PXLCOUNT ($nadpisX, $nadpisY, $nadpisX+100, $nadpisY+20, $nadpis) // надпись
WAITMS(50)
IF($count > 50)
MOVE($battonX1,$battonY1) //1
WAITMS(100)
LCLICK($battonX1,$battonY1)
nagrada()
$sum = $sum+1
END_IF
END_CYC
WAITMS(100)
////////////////////////////////////////////////////////////////////////////////
WHILE(($sum > 0) & ($nam < 3))
$nam = $nam + 1
MOVE($battonL1,$battonL2)
WAITMS(100)
LCLICK($battonL1,$battonL2)
IF ($nam = 1)
WAIT(10) // Время для выставление верхнего ряда профы
ELSE
WAIT(1)
END_IF

MOVE($battonStart1,$battonProd)
WAITMS(100)
LCLICK($battonStart1,$battonProd)
profa()
$sum = $sum-1
END_CYC
//************
WAIT(2)


Модмейкер
Рыцарская Сага
 
RemmДата: Среда, 16.05.2018, 15:02 | Сообщение # 11
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
Код
////////////////////////////////////////////////////////////////////////////////
///////// МОЛИТВА   #name "moLitva"
////////////////////////////////////////////////////////////////////////////////
$mausX = 480 // полож мыши координата X
$mausY = 150 // полож мыши координата Y
$mSmenaX = 700 // кнопка Сменить персонажа координата X
$mSmenaY = 455 // кнопка Сменить персонажа координата Y
$shag = 80 // шаг кнопок героев координата Y
$nG = 10 // кол Героев

////////////////////////////////////////////////////////////////////////////////

SUB(molitva)
FOR($a = 1, $a < 5)
$count = PXLCOUNT(1245,25, 1400,45, 15137023)
IF($count > 10)
//LOGWRITE ("color : " $count)
$a = 10
KEYDOWN(#Ctrl)
WAIT(1)
KEYPRESS(#i)
WAIT(1)
KEYUP(#Ctrl)
WAITMS(100)
WAIT(5) // молитва
//--------------------------------
KEYPRESS(#Esc)
WAIT(1)
KEYPRESS(#Esc)
WAIT(1)
MOVE($mSmenaX,$mSmenaY)
WAITMS(50)
LCLICK($mSmenaX,$mSmenaY)
WAIT(1)
MOVE($mSmenaX+100,$mSmenaY+35)
WAITMS(50)
LCLICK($mSmenaX+100,$mSmenaY+35)
WAIT(1)
//--------------------------------
FOR($b = 1, $b < 5) // панель героев
$count = PXLCOUNT($mSmenaX-50,5, $mSmenaX+50,20, 16777215) // окно активации белый
IF($count > 10)
$b = 10
WAIT(3)
ELSE
WAIT(2)
$b = 1
END_IF
END_CYC 
//--------------------------------
ELSE
WAIT(3)
$a = 1
END_IF
END_CYC

END_SUB
////////////////////////////////////////////////////////////////////////////////
#name "moLitva"

if(($nG > $nGer-1) & ($nGer < 5)) 
$mY = $shag*$nGer + $mausY 
$nGer = $nGer +1
WAIT(1)
MOVE($mausX,$mY)
WAITMS(50)
LCLICK($mausX,$mY)
WAITMS(100)
DBLCLICK($mausX,$mY)
molitva()
WAIT(1)
LOGWRITE ("n Geroi - " $nGer)
END_IF
//--------------------------------
$mY1 = $shag*4 + $mausY

if(($nG > $nGer) & ($nGer > 4)) 
$nGer = $nGer +1
MOVE($mausX,$mY1)
WAITMS(50)
LCLICK($mausX,$mY1)
WAITMS(50)
WHEELDOWN (4)
WAIT(1)
DBLCLICK($mausX,$mY1)
molitva()
WAIT(1)
LOGWRITE ("Rol Geroi - " $nGer)
WAITMS(50)
ELSE
WAIT(2)
END_IF





Модмейкер
Рыцарская Сага
 
RemmДата: Суббота, 19.05.2018, 13:36 | Сообщение # 12
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline
////////////////////////////////////////////////////////////////////////////////
/////////  фарм мобов  #name "avstre4a"   ////////////////////////////////////// 
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
SUB(HEEL) // здоровье
 
$heel = PXLCOUNT (770,865, 795, 895, 1908114)   
IF($heel < 1)
WAITMS(10)
KEYPRESS(#6) // ячейка с зельем
WAITMS(50)
END_IF
END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
SUB(podbor)

GETSCREEN
$count = PXLCOUNT (833,340, 1000, 415, 0) // окно активации черный
$countW = PXLCOUNT (833,340, 1000, 415, 16777215) // окно активации белый
WAITMS(50)
IF(($count > 500) & ($countW > 60))
$p = $p+1
KEYPRESS(#f)
WAITMS(50)
LOGWRITE ("подбор : " $p)
END_IF
WAITMS(50)
END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
SUB(prizel)

WAITMS(500)
KEYDOWN(#Ctrl)
WAIT(1) 
LDOWN(720,450)
WAIT(2)
KEYUP(#Ctrl)
WAITMS(20)
LUP(720,450)
WAITMS(10)      
END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
SUB(maus)

KEYDOWN(#Ctrl)
WAITMS(10)
LDOWN(800,450)// мышь
WAIT(2)
WAITMS(10)
KEYUP(#Ctrl)
LUP(720,450)
END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
SUB(beg)

WAITMS(10)
LCLICK(800,455)
WAITMS(10)
KEYPRESS(#v)
WAIT(1) // время бега  /bind v follow
KEYPRESS(#w)
WAITMS(50)
END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
SUB(red) // определяем красный цвет (720-50,695, 720+50, 715, #FF0000)

GETSCREEN
$red = PXLCOUNT (790,250, 810, 550, #FF0000)
IF($red > 2)
//LOGWRITE ("red : " $red)
$c = 1000
WAITMS(200)
beg()
WAITMS(200)

//****
maus()// мышь 
WAITMS(200) 
KEYPRESS(#q) // СИЯНИЕ 
prizel() 
WAIT(RND(2,3))
PODBOR() 
KEYPRESS(#e) // ЦЕПИ
prizel()
WAITMS(100)
PODBOR()
WAITMS(300)
maus()// мышь
WAITMS(100)
PODBOR() 
WAIT(2)  
KEYPRESS(#r) // ВСПЫШКА
prizel()
WAITMS(100)
PODBOR()
WAITMS(50)
HEEL() // лечение
WAIT(RND(1,3))
//--------------------------------

if($povtor = 3)
KEYPRESS(#2)  // ежедневка 
prizel() 
WAIT(1)
PODBOR()  
KEYPRESS(#3) // артифакт
WAIT(1) 
KEYPRESS(#3) // артифакт
WAIT(RND(1,2)) 
KEYPRESS(#q) // СИЯНИЕ 
prizel())
WAITMS(100)
PODBOR() 
WAIT(RND(1,2))
PODBOR()
WAITMS(500)
maus()// мышь   
KEYPRESS(#e) // ЦЕПИ 
prizel()
WAITMS(100)
PODBOR()
WAIT(2) 
PODBOR()
KEYPRESS(#r) // ВСПЫШКА
prizel()
WAITMS(100)
PODBOR()
WAITMS(50)
HEEL() // лечение
WAIT(RND(4,6))
$povtor = 0 
END_IF 
//****
$povtor = $povtor + 1
WAITMS(100)
END_IF
END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
#name "avstre4a"    //////////////////////////////////////////////////////////// 
////////////////////////////////////////////////////////////////////////////////
wait(1)
PODBOR()
WAITMS(50)
//--------------  Отказ от группы ------------------
WAITMS(10)
KEYDOWN(#Shift)
WAITMS(50)
KEYPRESS(#2)
WAITMS(50)
KEYUP(#Shift)
WAITMS(50)
//--------------------------------

if($a < 100)
  $a = 100
END_IF
if($a > 600)
  $a = 100
END_IF
$b = $a + 100
WAITMS(50)

//**********
////////  вышли в меню
GETSCREEN
$countM = PXLCOUNT(777-50,5, 777+50,20, 16777215) // надпись версии цвет белый
IF($countM > 10)
KEYDOWN(#Alt)
WAITMS(100)
KEYPRESS(#s)
WAITMS(50)
KEYUP(#Alt)
WAITMS(50)
END_IF
///////
//**********

$poY = 455 // положение камеры по Y
HEEL() // лечение

SOUND ("data/sound/record.wav")
FOR($c = $b-100, $c < $b, 4)
MOVE($c, $poY)
WAITMS(100)

if(($c = $b-80) | ($c = $b-60) | ($c = $b-40) | ($c = $b-20))
//***
if(($b = 300) | ($b = 500) | ($b = 700))
$poY = $poY + 3
ELSE
$poY = $poY - 1
END_IF
//***
WAITMS(10)
KEYDOWN(#w)
WAITMS(20)
KEYUP(#w)
WAITMS(100)
podbor()
WAITMS(100)
END_IF

WAITMS(10)
if(($b = 200) | ($b = 400) |  ($b = 600)) 
red()
WAITMS(100)
END_IF

WAITMS(10)
if((($b = 300)&($c =200)) | (($b = 500)&($c =400)) | (($b = 700)&($c =600)))
WAITMS(10) 
KEYPRESS(#e) // ЦЕПИ
WAITMS(100)
END_IF
END_CYC
//*********

$a = $b
KEYDOWN(#w)
WAITMS(RND(1,3)*20)
KEYUP(#w)                        
WAITMS(50)
//LOGWRITE ("b : " $b)
wait(1)


Модмейкер
Рыцарская Сага
 
RemmДата: Суббота, 19.05.2018, 22:02 | Сообщение # 13
Паладин
Группа: Администраторы
Сообщений: 154
Репутация: 9
Статус: Offline

Код
////////////////////////////////////////////////////////////////////////////////
/////////            МОЛИТВА   #name "moLitvaA"                 ////////////////
////////////////////////////////////////////////////////////////////////////////
// начинаем молитву при верхнем положении кнопки первого персонажа            //
// галка скрывать задания с несоблюденными требованиями отключена             //
// выполняет молитву                    //
// делает сбор выполненных профессий                    //
// если выполнены все 9 проф, то выставляет новые                             //
// записывает в лог выполнение сбора профессий                    //
////////////////////////////////////////////////////////////////////////////////

$mausX = 480 // полож курсора мыши координата X кнопки 1 персонажа
$mausY = 150 // полож курсора мыши координата Y кнопки 1 персонажа
$mSmenaX = 700 // кнопка Сменить персонажа координата X
$mSmenaY = 455 // кнопка Сменить персонажа координата Y
$shag = 80 // шаг кнопок выбора Героев координата Y
$almaz = 0 // при значение 1 седьмая профа сбор алмазов
$nG = 10 // кол Героев
//*********************************

//****************  зеленая надпись выполнения профы  **************************
$nadpis = 2611591 // цвет надписи выполнения профы
$nadpisXV = 565 // левая граница 1 зеленой надписи выполнения профы 1 столбца  X - координата
$nadpisYV = 220 // верхняя граница зеленой надписи выполнения профы первого ряда Y - координата
$shagX =  213 // шаг по горизонтали X - координата
$shagY =  130 // шаг по вертикали Y - координата
//******************************************************************************

//********** координаты кнопок ***************
$battonX = 615 // 1 ряд  X - координата кнопки взять награду
$battonY = 257 // 1 ряд  Y - координата кнопки взять награду

$battonL1 = 400 // кнопка лидерства  X - координата
$battonL2 = 265 // кнопка лидерства  Y - координата
$battonStart1 = 1090 // кнопка Начать поручение равна X координате кнопки Продолжить
$battonStart2 = 805 // кнопка Начать поручение Y - координата
$battonProd = 755 // кнопка Продолжить Y - координата

////////////////////////////////////////////////////////////////////////////////
SUB(nagrada)  // обработка всплывающего окна взятия награды профы

$nslot = 505 // X - координата кнопки взятия награды 
$color1 = $nslot - 25
$color2 = $nslot + 25
// $var   Y - координата середины кнопки взятие награды от 1 до 5
$color = 3325695 // цвет

WAIT(1.5)
//**************
for($var=535, $var < 650, 15)
$nomer = PXLCOUNT ($color1,$var-7, $color2, $var+7, $color)
IF($nomer > 10)
MOVE($nslot,$var)
WAITMS(100)
LCLICK($nslot,$var)
WAITMS(100)
$var=700
END_IF
end_cyc
//**************
WAITMS(500)
END_SUB
//************ *****************************************************************

////////////////////////////////////////////////////////////////////////////////
SUB(rol) // выбор стартового ряда выставления профессии 

$prokX = 1148 // X координата прокрутки
$prokY = 275 // Y координата прокрутки
$prokY1 = 740 // Y координата прокрутки
$prokY2 = 348 // Y координата прокрутки 
$pravka = 760 // Y координата клика выравнивания ряда 

WAITMS(100)
MOVE($prokX,$prokY)
WAITMS(100)
LDOWN ($prokX,$prokY)
WAITMS(500)
MOVE($prokX,$prokY1)
WAITMS(100)
LUP ($prokX,$prokY1)
WAITMS(500)
LDOWN ($prokX,$prokY1)
WAITMS(100)
MOVE($prokX,$prokY2)
WAITMS(100)
LUP ($prokX,$prokY2)
WAITMS(500)
MOVE($mSmenaX,$pravka)
WAITMS(100)
LCLICK($mSmenaX,$pravka)
WAITMS(100)
END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
SUB(sbor)  // сбор выполненных профессий

$nadpisX = $nadpisXV
$battonX1 = $battonX

FOR($a=1, $a < 10, 1)
$nadpisY = $nadpisYV
$battonY1 = $battonY

 if(($a = 4) | ($a = 7))
    $nadpisX = $nadpisX + $shagX
      $battonX1 = $battonX1 + $shagX    
 END_IF 
 if(($a = 2) | ($a = 5) | ($a = 8))
    $nadpisY = $nadpisYV + $shagY
    $battonY1 = $battonY + $shagY
 END_IF 
 if(($a = 3) | ($a = 6) | ($a = 9))
    $nadpisY = $nadpisYV + $shagY + $shagY
    $battonY1 = $battonY + $shagY + $shagY
 END_IF
  
$count = PXLCOUNT ($nadpisX, $nadpisY, $nadpisX+100, $nadpisY+20, $nadpis) // надпись
WAITMS(50)
IF($count > 50)
MOVE($battonX1,$battonY1) 
WAITMS(100)
LCLICK($battonX1,$battonY1)
nagrada()
$sum = $sum+1
END_IF
END_CYC
END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
SUB(molitva)

FOR($a = 1, $a < 5)
$count = PXLCOUNT(1250,27, 1395,45, 15137023) // название области
IF($count > 10)
//LOGWRITE ("color : " $count)
$a = 10
KEYDOWN(#Ctrl)
WAIT(1)
KEYPRESS(#i)
WAIT(1)            
KEYUP(#Ctrl)
WAITMS(100)
WAIT(5) // время молитвы
KEYPRESS(#Esc)
WAIT(1)
KEYPRESS(#n)
WAIT(1)

//---------------- выставление профы -------------------------------------------
WAIT(1)
$sum = 0
$nam = 0
//********** кнопка Обзор
MOVE($battonL1,$battonL2-120)
WAITMS(50)
LCLICK($battonL1,$battonL2-120)
WAIT(1)
sbor()
WAITMS(100)
//--------------------------------
IF(($sum > 6) & ($sum < 9)) // ошибка опыта
WAITMS(50)
//********** кнопка Обзор
MOVE($battonL1,$battonL2-120)
WAITMS(50)
LCLICK($battonL1,$battonL2-120)
WAIT(1)
sbor()
WAITMS(100)
END_IF
//--------------------------------

$battonProd1 = $battonProd // кнопка Продолжить Y - координата
IF($sum < 9)  // без профы
 LOGWRITE ("чистка " $sum)
 WAITMS(100) 
 $sum = 0
END_IF

IF($sum = 9)  //  авто режим выставления профы
LOGWRITE ("профессий " $sum)
WAIT(1)
MOVE($battonL1,$battonL2)
WAITMS(100)
LCLICK($battonL1,$battonL2)
WAIT(1)

MOVE($battonL1,$battonL2+95)
WAITMS(50)
LCLICK($battonL1,$battonL2+95)
WAITMS(500)

MOVE($battonL1,$battonL2)
WAITMS(100)
LCLICK($battonL1,$battonL2)
WAIT(1)
rol() // прокрутка
END_IF
//*************

WHILE($sum > 0)
$nam = $nam + 1
WAITMS(500)

MOVE($battonL1,$battonL2)
WAITMS(100)
LCLICK($battonL1,$battonL2)
WAIT(1)
 if(($nam = 4) & ($sum > 5))
      $battonProd1 = 655 // кнопка Продолжить Y - координата
 END_IF
 if(($nam = 7) & ($sum > 2))
      $battonProd1 = 555 // кнопка Продолжить Y - координата
       if($almaz = 1) // сбор алмазов
             $battonProd1 = 455 // кнопка Продолжить Y - координата
         END_IF    
 END_IF

MOVE($battonStart1,$battonProd1)
WAITMS(100)
LCLICK($battonStart1,$battonProd1)
WAIT(0.5)

MOVE($battonStart1,$battonStart2)
WAITMS(100)
LCLICK($battonStart1,$battonStart2)
WAIT(1)

$sum = $sum-1
END_CYC
//---------------- выставление профы конец -------------------------------------

WAIT(1)
KEYPRESS(#Esc)
WAIT(1)
KEYPRESS(#Esc)
WAIT(1)

MOVE($mSmenaX,$mSmenaY)
WAITMS(50)
LCLICK($mSmenaX,$mSmenaY)
WAIT(1)

MOVE($mSmenaX+100,$mSmenaY+35)
WAITMS(50)
LCLICK($mSmenaX+100,$mSmenaY+35)
WAIT(1)
//--------------------------------
FOR($b = 1, $b < 5) // панель выбора героев
$count = PXLCOUNT($mSmenaX-50,5, $mSmenaX+50,20, 16777215) // надпись версии цвет белый
IF($count > 10)
$b = 10
WAIT(3)
ELSE
WAIT(2) // время ожидания загрузки панели выбора героев
$b = 1
END_IF
END_CYC 
//--------------------------------
ELSE
WAIT(3) // время ожидания загрузки области
$a = 1
END_IF
END_CYC

END_SUB
//******************************************************************************

////////////////////////////////////////////////////////////////////////////////
 #name "moLitvaA"    ///////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
if(($nG > $nGer-1) & ($nGer < 5)) 
$mY = $shag*$nGer + $mausY 
$nGer = $nGer +1
WAIT(1)
MOVE($mausX,$mY)
WAITMS(50)
LCLICK($mausX,$mY)
WAITMS(100)
DBLCLICK($mausX,$mY)
molitva()
WAIT(1)
LOGWRITE ("n Geroi - " $nGer)
WAITMS(50)
END_IF
//-------------------------------- прокрутка героев 
$mY1 = $shag*4 + $mausY

if(($nG > $nGer) & ($nGer > 4)) 
$nGer = $nGer +1
MOVE($mausX,$mY1)
WAITMS(50)
LCLICK($mausX,$mY1)
WAITMS(50)
WHEELDOWN (4)
WAIT(1)
DBLCLICK($mausX,$mY1)
molitva()
WAIT(1)
LOGWRITE ("Rol Geroi - " $nGer)
WAITMS(50)
ELSE
WAIT(2)
END_IF


Модмейкер
Рыцарская Сага
 
Форум Рыцарская Сага » Список форумов » Neverwinter Nights Aurora Toolset » Скрипты для начинающих (помощь в написании скриптов)
  • Страница 1 из 1
  • 1
Поиск:


Сайт создан: 24.04.2007 Rambler's Top100 Бесплатный конструктор сайтов - uCoz