Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 56 57 58 59 60 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Zirrex
сообщение Jul 27 2005, 21:35
Сообщение #1416


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



-fenix-, а ты сделай "ActionSpeakString". И внимательно проверь, верен ли объект, которого ты просишь произнести фразу.

Aiwan, я обычно такое дерево использую, чтобы не строить большое условие:

Neverwinter Script Source
void DropItemDestroy(object oItem)
{
    if (GetIsObjectValid(GetAreaFromLocation(GetLocation(oItem))))
    {
        DestroyObject(oItem);
    }
}

void ActionDropItem(object oItem, object oPC, object oPossessor)
{
    switch (GetObjectType(oPossessor))
    {
        // Передать вещь существу
        case OBJECT_TYPE_CREATURE: break;

        // Продать вещь
        case OBJECT_TYPE_STORE: SetLocalInt(oItem, "ASG_PWCLEANSTORE", TRUE); break;

        // Положить вещь в контейнер
        case OBJECT_TYPE_PLACEABLE: break;

        // Выбросить вещь на локацию
        default:
        if (GetIsObjectValid(GetAreaFromLocation(GetLocation(oItem))))
            DelayCommand(60.0, DropItemDestroy(oItem));
        break;
    }
}

void main()
{
    object oItem = GetModuleItemLost();
    object oPC = GetModuleItemLostBy();
    object oPossessor = GetItemPossessor(oItem);

    ActionDropItem(oItem, oPC, oPossessor);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 27 2005, 22:00
Сообщение #1417


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (Zirrex @ Jul 27 2005, 21:35)
-fenix-, а ты сделай "ActionSpeakString". И внимательно проверь, верен ли объект, которого ты просишь произнести фразу.

И с ней не делает И тег я раз 10 проверял!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jul 28 2005, 01:27
Сообщение #1418


Level 6
Иконки Групп

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



-fenix-
Сделай лучше так. есть ряд преимуществ. Можно добавить голос, можно добавить анимацию.
диалог заранее напиши. а тег в скрипт поставиш.
DelayCommand(3.5, AssignCommand(oNPC, ActionStartConversation(oNPC, "Тег диалога", FALSE,FALSE)));

Добавлено в [mergetime]1122503616[/mergetime]
Люди помогите позарез нужен скрипт на смерть босса.
Значит так когда босс будет присмерти пойдёт кутсцена.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 28 2005, 08:53
Сообщение #1419


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Мефистофель, самое простое, найти сценку, когда ты сражаешься в одиночной версии игры с Арибет. Помнишь момент, ты ее бьешь, у нее становится мало жизни, и тут она просит о пощаде, бой обрывается, Арибет завязывает диалог. Посмотри, как там сделано, и выполни по оригиналу, только c использованием кутсцены.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 28 2005, 13:38
Сообщение #1420


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (Мефистофель @ Jul 28 2005, 01:27)
-fenix- Сделай лучше так. есть ряд преимуществ. Можно добавить голос, можно добавить анимацию. диалог заранее напиши. а тег в скрипт поставиш. DelayCommand(3.5, AssignCommand(oNPC, ActionStartConversation(oNPC, "Тег диалога", FALSE,FALSE)));

Я же говорю, что этот чел совсем отказывается говорить, так же как и челы с его внешностью такое ощущение, что это глюк модели(но такое может быть???). Короче теперь за его спиной стоит нивидимый чел, каторый помогает немому выразить мысли.

Мефистофель использовать ActionStartConversation в кутсценах, можно только иногда. Скажем у меня есть 15 отдельныйх фраз для NPC и там звуки с движениями на них. Это мне нужно сделать 15 веток в разговоре! А если мне вдруг не понравился звук или движение или опечатка в словах - это мне надо выходить в редактор разговора и там все править! К тому же скорость и длительность анимации там установленны кажись по дефолту. Короче уж лучше я все это в коде буду писать, так оно ИМХО удобнее!!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 28 2005, 19:24
Сообщение #1421


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



-fenix- поменяй ему внешность или расу, если думаешь, что проблема в этом. Но на самом деле, это сущий бред, ибо скрипты все едины для любой модели существа, отличаться могут только настройками АИ.

з.ы. если хочешь, можешь прислать мне скрипт, все равно в конкурсе не участвую.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 28 2005, 20:57
Сообщение #1422


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (Zirrex @ Jul 28 2005, 00:35)
Aiwan, я обычно такое дерево использую, чтобы не строить большое условие:

Интересное решение ;)
QUOTE (-fenix- @ Jul 28 2005, 16:38)
Я же говорю, что этот чел совсем отказывается говорить, так же как и челы с его внешностью такое ощущение, что это глюк модели(но такое может быть???).

Ты случаем скрипты не потер у него в слотах дефолтовые?
QUOTE (-fenix- @ Jul 27 2005, 19:13)
однако она отображается в информационном окне(или как оно правельно называется).

ГЫ, а ты эти фразы не расскарсил часом? Тегами для актиона или проверок скиллов (зелененьким или красненьким)? :D Тогда так и будет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 28 2005, 20:57
Сообщение #1423


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (Zirrex @ Jul 28 2005, 19:24)
-fenix- поменяй ему внешность или расу, если думаешь, что проблема в этом. Но на самом деле, это сущий бред, ибо скрипты все едины для любой модели существа, отличаться могут только настройками АИ.

Да я сам думаю, что бред!!! Только этот бред реальный!!! Вот все челы говорят, а этот не говорит. Ставешь чела, он говорит, меняешь ему внешность на немого и этот то же не меет :xz:
Короче большой, большой ХЗ
QUOTE (Zirrex @ Jul 28 2005, 19:24)
поменяй ему внешность или расу

Мне не нужно менять ни того, ни другого.
QUOTE (Zirrex @ Jul 28 2005, 19:24)
если хочешь, можешь прислать мне скрипт, все равно в конкурсе не участвую

Пришлю, но позже.

QUOTE (Aiwan @ Jul 28 2005, 20:57)
Ты случаем скрипты не потер у него в слотах дефолтовые?

НЕТ
QUOTE (Aiwan @ Jul 28 2005, 20:57)
ГЫ, а ты эти фразы не расскарсил часом? Тегами для актиона или проверок скиллов (зелененьким или красненьким)? biggrin.gif Тогда так и будет.

ТОЖЕ НЕТ

Простая строка DelayCommand-> AssignCommand-> SpeakString.
Ни чего сложного!

Сообщение отредактировал -fenix- - Jul 28 2005, 21:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 29 2005, 08:51
Сообщение #1424


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



-fenix- так смени ему внешность, если он только при ней молчит. Это так критично? Хотя, если честно, очень уж странно, как может внешность влиять на скрипты? :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jul 30 2005, 01:06
Сообщение #1425


Level 6
Иконки Групп

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



QUOTE
Мефистофель, самое простое, найти сценку, когда ты сражаешься в одиночной версии игры с Арибет. Помнишь момент, ты ее бьешь, у нее становится мало жизни, и тут она просит о пощаде, бой обрывается, Арибет завязывает диалог. Посмотри, как там сделано, и выполни по оригиналу, только c использованием кутсцены

Да видел и в ХотУ тоже самое, я только понять немогу как туда кут-сцену внедрить, может есть функцыя активации заранее созданной кут-сцены.?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 30 2005, 18:41
Сообщение #1426


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Конечно есть.
Neverwinter Script Source
void ExecuteScript(string sScript, object oTarget)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jul 31 2005, 01:39
Сообщение #1427


Level 6
Иконки Групп

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Ха ха блин даже смешно, :lol: ну я такую парашу сделал. :crazy: .
Neverwinter Script Source
void ExecuteScript(string sScript, object oTarget)
{
object oPC = GetLastKiller();
string sSkript = GetName("Cut_Scene");
}

void main()
{
DelayCommand(3.0, ExecuteScript(oPC));
}

Помогиет мне люди добрые. :drag: :shout:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jul 31 2005, 04:46
Сообщение #1428


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



QUOTE (Мефистофель @ Jul 31 2005, 02:39)
Ха ха блин даже смешно, lol.gif ну я такую парашу сделал

мдя. :no: функции, которые тебе советуют применять, надо не писать, а использовать. если ты не собираешься завтра забросить скриптинг, советую тебе проводить больше времени не за подбором задержек в кут-сценах, а за чтением документации по любому языку программирования(лучше С) - достаточно будет самых азов.

чтобы вызвать из скрипта другой скрипт, нужно просто написать
Neverwinter Script Source
ExecuteScript("имя скрипта", oTarget);
//где oTarget - объект, который будет доступен в вызываемом скрипте под "именем" OBJECT_SELF
...
// пару вариантов использования:
// отложенный по времени вызов
DelayCommand(1.0, ExecuteScript("mymegascript", oPC));
// поставленный в очередь действий
ActionDoCommand(ExecuteScript("kill_me", oNPC));
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jul 31 2005, 07:50
Сообщение #1429


Level 6
Иконки Групп

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу




dumbo компилется не хочет. а скрипты не брошу они мне как родные. мануал об.прочитю.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 31 2005, 16:02
Сообщение #1430


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Мефистофель что у тебя не хочет компилироваться? Выше описанный скрипт, это сильно :this: Переписывать уже существующую функцию, причем с такими ошибками, нет слов просто.

Дам тебе совет, скачивай интересные скрипты, изучай их, смотри как они пишутся, а не просто копируй примеры, тогда и понимать научишься. Нельзя заниматься скриптованием, не понимая, что ты делаешь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Aug 1 2005, 00:23
Сообщение #1431


Level 6
Иконки Групп

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Скриптики я малясик понимаю, вы уж простите вчера пьяный был.
Вот это не компилется.
Neverwinter Script Source
void main()
{
    int nUser = GetUserDefinedEventNumber();
    if (nUser == 1002)
    {
        if (GetLocalInt(OBJECT_SELF,"L") ==0)
        {
            SetLocalInt(OBJECT_SELF,"L",1);
        }
    }
    else
    if(nUser == 1006)
    {
        int nMaxHP = GetMaxHitPoints();
        int nCurrHP = GetCurrentHitPoints();
        if (GetLocalInt(OBJECT_SELF,"L") == 0)
        if((nCurrHP * 3) <= nMaxHP && GetLocalInt(OBJECT_SELF,"Generic_Surrender") == 0)
        {
            SurrenderToEnemies();
            SetLocalInt(OBJECT_SELF,"Generic_Surrender",1)  ;
            SpeakOneLinerConversation();
            SetLocalInt(OBJECT_SELF,"L",1);
        }

    }

}
void Morag_Death(object oPC)
{
DelayCommand(0.0, Morag_Death(oPC));
object oPC = GetLastKiller();
object oVB = GetObjectByTag("BIG_Morag");
effect eBio = EffectVisualEffect(VFX_DUR_GHOST_SMOKE);
effect eBio2 = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBio, OBJECT_SELF);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBio2, OBJECT_SELF);


Я тут подумал мож не добовлять
Neverwinter Script Source
void Morag_Death(object oPC)

А просто продлжить скрипт как должное.
помогите Туллсета нет.
Добавлено в [mergetime]1122845354[/mergetime]
ПОМОГИТЕ!! Это очень важно для меня.
Это скрипт битвы с мораг, (с моей мораг), я проверял 100раз всё верно, и тег и фракцыя и точки.
Но на Wp_Morag_War1, войны отказываются прыгать, а на Wp_Morag_War2 всё гладко.
Вот скрипт, вы уж простите если большой.
Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Created By: NedWarN
//:: Created On: Koha
//:://////////////////////////////////////////////
#include "x2_inc_cutscene"
void main()
{
int CUTSCENE_NUMBER = 13;
object oPC = GetPCSpeaker();//Dis_is PC of Playing for Games
object oMorag = GetObjectByTag("GLAV_Morag");//Morag AND Boss for one Modules/
//----------------------------------------------
object oW1 = GetObjectByTag("MS_War1");//Wars1/
object oW2 = GetObjectByTag("MS_War2");//Wars2/
object oW3 = GetObjectByTag("MS_War3");//Wars3/
object oW4 = GetObjectByTag("MS_War4");//Wars4/
object oW5 = GetObjectByTag("MS_War5");//Wars5/
object oW6 = GetObjectByTag("MS_War6");//Wars6/
object oW7 = GetObjectByTag("MS_War7");//Wars7/
object oW8 = GetObjectByTag("MS_War8");//Wars8/ JJJo
object oWboss = GetObjectByTag("JJJo");// JJJo
//Wars13/
//---------------------------------------------
//--/////////////////////////////////////////////////////////
object oBE1 = GetObjectByTag("Wp_Morag_War1");//Object of Beam effect//
object oBE2 = GetObjectByTag("WP_Morag_War2");//Object of Beam effect//
//Object of Beam effect//
//--------------------------------------------
object oWpST1 = GetObjectByTag("MS_LU1");//Object of Beam effect//
object oWpST2 = GetObjectByTag("MS_LU2");//Object of Beam effect//
//--/////////////////////////////////////////////////////////
effect eMo1 = EffectVisualEffect(VFX_FNF_SUMMON_EPIC_UNDEAD);
effect eMo2 = EffectVisualEffect(VFX_FNF_BLINDDEAF);
effect eMo3 = EffectResurrection();
effect eMo4 = EffectDeath();
effect eMo5 = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
//-------------------------------------------
if (GetIsPC(oPC) == FALSE)//fOR PC IT IS! FOR INVISION CUT-SCENE//GetISPC(oPC)= FALSE! fun of PC!
return;
// Minu and du for Disable/ is cut-scene. Go_Morag_War1
//-------------------------------------------one partia//
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eMo5, oPC);
RemoveEffect(oPC,eMo5);
SetCutsceneMode(oPC,FALSE);
DelayCommand(3.0, AssignCommand(oW1, ActionJumpToObject(oBE1)));
DelayCommand(4.0, AssignCommand(oW2, ActionJumpToObject(oBE2)));
DelayCommand(3.5, AssignCommand(oW1, ActionJumpToObject(oBE1,TRUE)));
DelayCommand(3.5, AssignCommand(oW2, ActionJumpToObject(oBE2,TRUE)));
//------------------------------------------Spell Morag of PC
DelayCommand(20.5, AssignCommand(oMorag, ActionCastSpellAtObject(SPELL_SHADES_FIREBALL,oPC, METAMAGIC_ANY, 2)));
//-------------------------------------------two partia//
DelayCommand(71.0, AssignCommand(oW3, ActionJumpToObject(oBE1)));
DelayCommand(72.0, AssignCommand(oW4, ActionJumpToObject(oBE2)));
DelayCommand(74.5, AssignCommand(oW3, ActionJumpToObject(oBE1,TRUE)));
DelayCommand(74.5, AssignCommand(oW4, ActionJumpToObject(oBE2,TRUE)));
//------------------------------------------
DelayCommand(80.5, AssignCommand(oMorag, ActionCastSpellAtObject(SPELLABILITY_BG_CREATEDEAD,oPC, METAMAGIC_ANY, 2)));
//------------------------------------------
DelayCommand(83.0, AssignCommand(oWboss, ActionJumpToObject(oPC)));
DelayCommand(120.0, AssignCommand(oW5, ActionJumpToObject(oBE1)));
DelayCommand(121.0, AssignCommand(oW6, ActionJumpToObject(oBE2)));
DelayCommand(124.5, AssignCommand(oW5, ActionJumpToObject(oBE1,TRUE)));
DelayCommand(124.5, AssignCommand(oW6, ActionJumpToObject(oBE2,TRUE)));
//------------------------------------------
DelayCommand(140.5, AssignCommand(oMorag, ActionCastSpellAtObject(SPELL_WAIL_OF_THE_BANSHEE,oPC, METAMAGIC_ANY, 2)));
//-----------------------------------------
DelayCommand(160.9, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMo2, oWpST1));
DelayCommand(160.9, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMo2, oWpST2));
DelayCommand(164.0, AssignCommand(oW7, ActionJumpToObject(oWpST1)));
DelayCommand(164.0, AssignCommand(oW8, ActionJumpToObject(oWpST2)));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DraX
сообщение Aug 4 2005, 14:51
Сообщение #1432


Level 3
*

Класс: Паладин
Характер: Chaotic Evil
Раса: Человек



2 Мефистофель
Меф, лучше используй не объект, как цель прыжка, а место:
Neverwinter Script Source
GetLocation(GetNearestObjectByTag(oBE1))

Будеть меньше глюков, 100% ;)
Кстати, чет там у тебя за неразбор со временем. И зачем ты свои воинов доблестных по два раза заставляешь прыгаць. :) Иль так задумано? Если да, то разъясни ситуацию. :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 6 2005, 15:33
Сообщение #1433


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



Подскажите, какой скрипт делает что бы после смерти и нажатии ОЕСПАВН, мы телепортировались в нужную точку? Просто пробовал использовать простой телепорт в точку, но не получилось.... :vava:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Aug 6 2005, 17:59
Сообщение #1434


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



DEM пропиши на эвенте модуля OnPlayerRespawn такой скрипт, и тебя будет переносить туда, куда тебе нужно:

Neverwinter Script Source
void Resurrect(object oPC, object oJump)
{
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectResurrection(), oPC);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oPC)), oPC);
    AssignCommand(oPC, ActionJumpToObject(oJump));
}

void main()
{
    object oPC = GetLastRespawnButtonPresser();

    object oJump = GetObjectByTag("wp_respawn");
    Resurrect(oPC, oJump);
}

Только не забудь в нужном месте точку "wp_respawn" поставить.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DraX
сообщение Aug 8 2005, 12:52
Сообщение #1435


Level 3
*

Класс: Паладин
Характер: Chaotic Evil
Раса: Человек



2 DEM
Если хочешь, мож добавить к скрипту Zirrex'а проверку на локацию. Допустим, когда с боссом сражаесся, ты убит, а спауна ма! Или ты пришел в другой город в храм к кокому-нибудь монаху, а он дает гарантию, что если ты умрешь в ближайших лес, то твоя душонка (грешная или нет) возвратится в этот храм (возвращение не бесплатное. А как же! :D ). Придется менять локации. Вот тебе волшебнай проверка:
Neverwinter Script Source
string sArea = GetTag(GetArea(GetLastDied())); // Вот насчет GetLastDied() точно не помню
                      // чет типа того там есть
  if(sArea == "тег локации")
{
  // А дальше просто меняешь вэйпоинт регенерации
}

Так сказать, маленькое дополнение к скрипту. ГЫ!

2 Zirrex
RESPECT! :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Exectrix
сообщение Aug 12 2005, 02:21
Сообщение #1436


Level 2
*

Класс: Тайный Лучник
Характер: Chaotic Evil
Раса: Полуэльф



Всем доброго времени суток. У меня вопрос значит такой:
Я хочу шоб когда у игрока хп падает до 20% он превращался в какого-нибудь Зверьтерьера, с утроинными показателями, но нападал на всех подряд, а когда в энном радиусе никого не останется идёт задержка и обратное превращение. Да ещё сначала идёт проверка рассы игрока.

Это вообще реально?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение Aug 12 2005, 03:35
Сообщение #1437



Иконки Групп

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



Exectrix реально
Вот функции, которые тебе понадобятся (это для сингла):
Neverwinter Script Source
GetCurrentHitPoints(object oObject=OBJECT_SELF) //возращает текущее значение хитов объекта (oObject)

GetMaxHitPoints(object oObject=OBJECT_SELF) //возращает максимальное значение хитов объекта (oObject)

GetAppearanceType(object oCreature) //"вернет" текущий облик создания (oCreature). т.е. надо его "запомнить", чтобы можно было вернуть игрока к начальному виду

SetCreatureAppearanceType(object oCreature, int nAppearanceType) //изменяет внешний вид (nAppearanceType) объекта (oCreature).  (nAppearanceType = APPEARANCE_TYPE_*) - подставляешь тот тип, который тебе нужен.
пример:
SetCreatureAppearanceType (oPC, APPEARANCE_TYPE_DRAGON_GOLD); - превратит игрока (надо зявить object oPC = GetFirstPC();) в золотого дракона

GetNearestObject(int nObjectType=OBJECT_TYPE_ALL, object oTarget=OBJECT_SELF, int nNth=1) //берет ближайший к oTarget объект типа nObjectType ( соответсвенно тебе нужно: nObjectType=OBJECT_TYPE_CREATURE). если нужен не первый объект, а к примеру, третий, то nNth=3.
пример:
GetNearestObject(OBJECT_TYPE_CREATURE, oPC, 3);

GetObjectSeen(object oTarget, object oSource=OBJECT_SELF) //это видит ли объект (oSource) (oTarget)

GetDistanceToObject(object oObject) //возвращает расстояние до цели (oObject) до предмета, с которого вызыватеся функция. Т.е. здесь делаешь проверку на расстояние.
if (GetDistanceToObject(oNPC) < 5.0) { SetCreatureAppearanceType (oPC, APPEARANCE_TYPE_DRAGON_GOLD);  }

GetRacialType(object oCreature) //возвращает текущу расу
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DraX
сообщение Aug 12 2005, 12:25
Сообщение #1438


Level 3
*

Класс: Паладин
Характер: Chaotic Evil
Раса: Человек



Exectrix
Вот примерный скрипт. B OnDamage (хотя точно и не уверен) напиши:

Neverwinter Script Source
ExecuteScript("имя скрипта", GetFirstPC());

, где "имя скрипта" имя сохраненного тобой следующего скрипта. Вот он:

Neverwinter Script Source
int nMax = GetMaxHitPoints(OBJECT_SELF);
int nCur = GetCurrentHitPoints(OBJECT_SELF);
int nTwenty = (nMax / 100) * 20// 20%  от общего хит-поинта  :D

// Проверка. Тебе нужно 20% - пожалуйста
if(nCur <= nTwenty && GetRacialType(OBJECT_SELF) == НУЖНАЯ_РАССА)
{
  int nAppearance = GetAppearanceType(OBJECT_SELF); // Как сказал товарищ Tiger - запомним  // облик
  object oEnemy = GetNearestObject(OBJECT_TYPE_CREATURE, OBJECT_SELF);

  if(GetDistanceToObject(oEnemy) < 3.0 && GetIsObjectValid(oEnemy))  // Тут сам смотри какой // радиус тебе нужен
    SetLocalInt(OBJECT_SELF, "START_ATTACK", TRUE);
}


А затем в OnHeartbeat ставим следующее:
Neverwinter Script Source
if(GetLocalInt(OBJECT_SELF, "START_ATTACK") == TRUE)
  {
    object oEnemy = GetNearestObject(OBJECT_TYPE_CREATURE, OBJECT_SELF);

    if(GetDistanceToObject(oEnemy) < 3.0)
    {
          int nAppearance = GetAppearanceType(OBJECT_SELF);
          SetCreatureAppearanceType(OBJECT_SELF, НУЖНЫЙ_ВИД);

          ActionAttack(oEnemy); 
    }
    else
    {
          SetCreatureAppearanceType(OBJECT_SELF, nAppearance);
          ClearAllActions();
          SetLocalInt(OBJECT_SELF, "START_ATTACK", FALSE);
    } 
  }


ЗЫ: Если найдете ошибку, говорите или пишите на mail. Когда я это писал, ей-богу, голова болела страшно :shout:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Exectrix
сообщение Aug 12 2005, 22:25
Сообщение #1439


Level 2
*

Класс: Тайный Лучник
Характер: Chaotic Evil
Раса: Полуэльф



Очень благодарен. :yes:

Ещё одна интересная вещь. У предметов, типа меч... и т.д. есть поддержка визуального эффекта типа горение, холод и т.д. А можно к частям тела дать такой эффект?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 12 2005, 23:03
Сообщение #1440


Level 7
**

Класс: Маг
Характер: Lawful Neutral
Раса: Эльф



Exectrix, теоретически без хаков нельзя... нет, ну скорее всего можно зделать невидимый объект, его прикрепить слева от перса (или справо, взависимости от того какая рука должна гореть или что там еще делать), а оптом пишешь скрипт. Сам я это слабо представляю и скорее всего не зря :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 56 57 58 59 60 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 7th May 2025 - 06:48