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

Главная Регистрация Вход
Вторник, 16.01.2018, 23:55

Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Рыцарская Сага » Список форумов » Neverwinter Nights Aurora Toolset » Скрипты для начинающих (помощь в написании скриптов)
Скрипты для начинающих
RemmДата: Среда, 26.06.2013, 22:00 | Сообщение # 1
Паладин
Группа: Администраторы
Сообщений: 152
Репутация: 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
Паладин
Группа: Администраторы
Сообщений: 152
Репутация: 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
Паладин
Группа: Администраторы
Сообщений: 152
Репутация: 9
Статус: Offline
Цитата (Vlad)
Жаль, что о головоломках вам ничего не известно. Даже не знаю как с ними быть.

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


Модмейкер
Рыцарская Сага
 
RemmДата: Четверг, 01.08.2013, 22:04 | Сообщение # 6
Паладин
Группа: Администраторы
Сообщений: 152
Репутация: 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
Паладин
Группа: Администраторы
Сообщений: 152
Репутация: 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
Паладин
Группа: Администраторы
Сообщений: 152
Репутация: 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
Паладин
Группа: Администраторы
Сообщений: 152
Репутация: 9
Статус: Offline
Код

// Разрешение экрана 1280х1024
// Чистит все выполненые профы и ставит 3 верхних лидерки
// Author: Remm
// Version: 1.0 (11.01.2018)

//****************  зеленая надпись выполнения профы  **************************
$nadpis = 2611591 // цвет надписи выполнения профы

$nadpis1v = 220 // верхняя граница зеленой надписи выполнения профы первого ряда Y - координата
$nadpis1n = $nadpis1v + 20 // нижняя граница зеленой надписи
$nadpis2v = 350 // верхняя граница зеленой надписи выполнения профы 2 ряда  Y - координата
$nadpis2n = $nadpis2v + 20 // нижняя граница зеленой надписи
$nadpis3v = 480 // верхняя граница зеленой надписи выполнения профы 3 ряда Y - координата
$nadpis3n = $nadpis3v + 20 // нижняя граница зеленой надписи

$nadpis111 = 565 // левая граница 1 зеленой надписи выполнения профы 1 столбца  X - координата
$nadpis112 = $nadpis111 + 100 // правая граница 1 зеленой надписи
$nadpis121 = 785 // левая граница 2 зеленой надписи выполнения профы 2 столбца X - координата
$nadpis122 = $nadpis121 + 100 // правая граница 2 зеленой надписи
$nadpis131 = 1000 // левая граница 3 зеленой надписи выполнения профы 3 столбца X - координата
$nadpis132 = $nadpis131 + 100 // правая граница 3 зеленой надписи
//********************************************************************************

//********** координаты кнопок ***************
$batton1g = 257 // горизонталь 1 ряд  Y - координата
$batton2g = 386 // горизонталь 2 ряд  Y - координата
$batton3g = 517 // горизонталь 3 ряд  Y - координата
$batton1v = 615 // вертикаль 1 ряд  X - координата
$batton2v = 835 // вертикаль 2 ряд  X - координата
$batton3v = 1044 // вертикаль 3 ряд X - координата
$battonL1 = 400 // кнопка лидерства  X - координата
$battonL2 = 265 // кнопка лидерства  Y - координата
$battonStart1 = 1090 // кнопка Начать поручение равна X координате кнопки Продолжить
$battonStart2 = 805 // кнопка Начать поручение Y - координата
$battonProd = 320 // кнопка Продолжить Y - координата

SUB(nagrada)
//************
$nslot = 505 // Y - координата курсора при взятии награды (должна находится в поле кнопки, но вне активных зон)
$nslot1 = 545 // X - координата середины кнопки взятие награды с 1 слотом
$nslot2 = 555 // X - координата середины кнопки взятие награды с 2 слотами
$nslot3 = 596 // X - координата середины кнопки взятие награды с 3 слотами
$nslot4 = 620 // X - координата середины кнопки взятие награды с 4 слотами
$nslot5 = 646 // X - координата середины кнопки взятие награды с 5 слотами

WAIT(1)
MOVE($nslot,$nslot5)
WAITMS(100)
LCLICK($nslot,$nslot5)//5
WAITMS(100)
MOVE($nslot,$nslot4)
WAITMS(100)
LCLICK($nslot,$nslot4)//4
WAITMS(100)
MOVE($nslot,$nslot3)
WAITMS(100)
LCLICK($nslot,$nslot3)//3
WAITMS(100)
MOVE($nslot,$nslot2)
WAITMS(100)
LCLICK($nslot,$nslot2)//2
WAITMS(100)
MOVE($nslot,$nslot1)
WAITMS(100)
LCLICK($nslot,$nslot1)//1
WAITMS(100)
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
$count = PXLCOUNT ($nadpis111, $nadpis1v, $nadpis112, $nadpis1n, $nadpis) // первая надпись 1 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton1v,$batton1g) //1
WAITMS(100)
LCLICK($batton1v,$batton1g)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT ($nadpis121, $nadpis1v, $nadpis122, $nadpis1n, $nadpis) // вторая надпись 1 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton2v,$batton1g) //2
WAITMS(100)
LCLICK($batton2v,$batton1g)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT ($nadpis131, $nadpis1v, $nadpis132, $nadpis1n, $nadpis) // третия надпись 1 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton3v,$batton1g)  //3
WAITMS(100)
LCLICK($batton3v,$batton1g)
nagrada()
$sum = $sum+1
END_IF
//************
/////////////////
$count = PXLCOUNT ($nadpis111, $nadpis2v, $nadpis112, $nadpis2n, $nadpis) // первая надпись 2 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton1v,$batton2g) //1
WAITMS(100)
LCLICK($batton1v,$batton2g)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT ($nadpis121, $nadpis2v, $nadpis122, $nadpis2n, $nadpis) // вторая надпись 2 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton2v,$batton2g) //2
WAITMS(100)
LCLICK($batton2v,$batton2g)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT ($nadpis131, $nadpis2v, $nadpis132, $nadpis2n, $nadpis) // третия надпись 2 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton3v,$batton2g)  //3
WAITMS(100)
LCLICK($batton3v,$batton2g)
nagrada()
$sum = $sum+1
END_IF
//************
//////////////////
$count = PXLCOUNT ($nadpis111, $nadpis3v, $nadpis112, $nadpis3n, $nadpis) // первая надпись 3 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton1v,$batton3g) //1
WAITMS(100)
LCLICK($batton1v,$batton3g)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT ($nadpis121, $nadpis3v, $nadpis122, $nadpis3n, $nadpis) // вторая надпись 3 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton2v,$batton3g) //2
WAITMS(100)
LCLICK($batton2v,$batton3g)
nagrada()
$sum = $sum+1
END_IF
//************
$count = PXLCOUNT ($nadpis131, $nadpis3v, $nadpis132, $nadpis3n, $nadpis) // третия надпись 3 ряд
WAITMS(10)
IF($count > 0)
MOVE($batton3v,$batton3g)  //3
WAITMS(100)
LCLICK($batton3v,$batton3g)
nagrada()
$sum = $sum+1
END_IF
//************

///////////////////////////////////////////////////////////
if ($sum > 0) //1
MOVE($battonL1,$battonL2)
WAITMS(100)
LCLICK($battonL1,$battonL2)
WAIT(10) // Время для выставление верхнего ряда профы

MOVE($battonStart1,$battonProd)
WAITMS(100)
LCLICK($battonStart1,$battonProd)
profa()
$sum = $sum-1
END_IF
//**************
if ($sum > 0) //2
MOVE($battonL1,$battonL2)
WAITMS(100)
LCLICK($battonL1,$battonL2)
WAIT(1)

MOVE($battonStart1,$battonProd)
WAITMS(100)
LCLICK($battonStart1,$battonProd)
profa()
$sum = $sum-1
END_IF
//**************
if ($sum > 0) //3
MOVE($battonL1,$battonL2)
WAITMS(100)
LCLICK($battonL1,$battonL2)
WAIT(1)

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


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


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