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

Главная Регистрация Вход
Понедельник, 25.09.2017, 02:00

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

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


Модмейкер
Рыцарская Сага
 
RemmДата: Четверг, 01.08.2013, 22:04 | Сообщение # 6
Рыцарь
Группа: Администраторы
Сообщений: 149
Репутация: 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
Рыцарь
Группа: Администраторы
Сообщений: 149
Репутация: 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
Рыцарь
Группа: Администраторы
Сообщений: 149
Репутация: 9
Статус: Offline
Код
////////////////////////////////
// Author: RemmGen
// Version: 3 (19.02.2015)
////////////////////////////////
SUB(Never)

//****** первый блок *******
RCLICK(730,410)
WAIT(2)
KEYPRESS(#q) // цепи
WAIT(RND(1,2))
KEYPRESS(#q)
WAIT(RND(3,4))
KEYPRESS(#e) // сияние
WAIT(1)
KEYPRESS(#e)
WAIT(RND(3,4))
KEYPRESS(#r) // вспышка
WAIT(1)
KEYPRESS(#f) // подбор
WAIT(RND(2,4))
LCLICK(730,410)
WAIT(RND(2,3))

////////////////////////////////
// ежедневка на 2 кнопке
////////////////////////////////
DEFINE($var, 0)
INC($var,1)
IF($var=3)
KEYPRESS(#2) // ежедневка вулкан
WAIT(2)
KEYPRESS(#2)
WAIT(RND(2,3))
KEYPRESS(#3) // артифакт
WAIT(3)
UNDEFINE($var)
KEYPRESS(#e) // сияние
WAIT(1)
KEYPRESS(#e)
WAIT(RND(2,3))
KEYPRESS(#r) // вспышка
WAIT(RND(1,2))
KEYPRESS(#f) // подбор
RCLICK(730,410)
WAIT(RND(2,3))
END_IF

//****** второй блок *******
LCLICK(730,410)
WAIT(2)
KEYPRESS(#q) // цепи
WAIT(RND(1,2))
KEYPRESS(#q)
WAIT(RND(3,4))
KEYPRESS(#e) // сияние
WAIT(1)
KEYPRESS(#f) // подбор
WAIT(1)
KEYPRESS(#e)
WAIT(RND(3,4))
KEYPRESS(#r) // вспышка
WAIT(RND(2,4))
RCLICK(730,410)
WAIT(RND(2,3))

//****** третий блок *******
WAIT(RND(1,2))
IF(RND(1,2)=2)
KEYPRESS(#q) // цепи
WAIT(RND(1,2))
KEYPRESS(#q)
RCLICK(730,410)
WAIT(2)
WAIT(RND(4,5))
KEYPRESS(#r) // вспышка
WAIT(RND(4,5))
KEYPRESS(#e) // сияние
WAIT(1)
KEYPRESS(#e)
WAIT(RND(2,3))
KEYPRESS(#f) // подбор
RCLICK(730,410)
WAIT(RND(4,5))
KEYPRESS(#r) // вспышка
WAIT(RND(2,4))
RCLICK(730,410)
WAIT(RND(2,3))
END_IF
////////////////////////////////
END_SUB

#name "klerik"
$clr = PXLXOR (823,867, 870, 882)
WAITMS(100)
IF($clr > 500000)
Never()
ELSE
WAIT(5)
$num = $num + 1
IF($num = 20)
$num =0
IF(RND(1,2)=2)
KEYPRESS(#r) // вспышка
ELSE
KEYPRESS(#e) // сияние
WAIT(1)
KEYPRESS(#e)
END_IF
END_IF
END_IF


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

// New Script
// Author: Remm
// Version: 1.0 (27.06.2017)

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 "ProfaM"
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,755)
WAITMS(100)
LCLICK(1090,755)
profa()
$sum = $sum-1
END_IF
//**************
if ($sum > 0) //2
MOVE(400,265)
WAITMS(100)
LCLICK(400,265)
WAIT(1)

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

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

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

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

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

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


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


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