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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 9 10 11 12 13 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Lex
сообщение Oct 1 2004, 09:25
Сообщение #251


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Ты вешаень на НПС команду с зедержкой на 20 сек. А если через 20 сек нет этого НПС, то все. Твоя команда потерялась, так как нет объекта, к которому была привязка..все логично
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 1 2004, 10:33
Сообщение #252


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Лекс, абсолютно прав в своем ответе. И все действительно ЛОГИЧНО.
QUOTE (Twin @ Oct 1 2004, 04:47)
Проблема в том, что у меня "debug2" не пишет, если понизить время в DelayCommand до 5.0f то напишет, но мне то нужно таймер больше чем минуты делать. Почему так происходит я не знаю, еще очень мало работаю с тулсетом. Может кто подскажет как мне реализовать таймер после убийства НПС, причем я должен иметь доступ к свойствам убиваемого НПС (только для чтения, не для записи).

А вот в этом случае я бы тебе советовал делать перед смертью
SetDestroyable(OBJECT_SELF, ...); - чтобы не пропадал труп!
Весь инвентарь выкидывал в какой-то лут-контейнер рядом... И уже на этот контейнер можно повесить конструкцию:

AssignCommand(oLoot, DelayCommand(30.0, действие));

Затем сразу можно Destroy'ить тело ;).
<small>Добавлено в 10:38</small>
QUOTE
DelayCommand( 20.0f, DoSpawn2());

QUOTE (Twin @ Oct 1 2004, 07:24)
Опять же, выходит такой кривой движок, если DelayCommand перестает работать после уничтожения объякта, вызвавшего его? Ведь DoSpawn2() никакого отношения к OBJECT_SELF'у не имеет. Не приятно, что через такую жопу всё...

Это как это НЕ ИМЕЕТ??? :swoon: ИМЕЕТ! :yes:
Замени свою конструкцию на
Neverwinter Script Source
AssignCommand(oKiller, DelayCommand(20.0, ExecuteScript("скрипт с DoSpawn2()")));

...и увидишь разницу. ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 1 2004, 11:31
Сообщение #253


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

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



QUOTE (Twin @ Oct 1 2004, 10:24)
Я это допускал. Но объясни мне, как может DelayCommand зависить от существования OBJECT_SELF'а? Это же бред.

Ты не прав. Посмотри, твоя команда
Neverwinter Script Source
DelayCommand( 20.0f, DoSpawn2());

Вызывает функцию, которая прописана в скрипте объекта OBJECT_SELF.
ТЫ ВЫЗЫВАЕШЬ эту функцию через 10 секунд, например, а функции УЖЕ НЕТ! Так как она была прописана на НПС а он дестроился. Все это будет работать так скрипт с именем DoSpawn2:
Neverwinter Script Source
void DoSpawn2()
{
    SendMessageToPC(GetFirstPC(), "debug2");
}


Будет запускаться таким образом:

Neverwinter Script Source
#include "x2_inc_compon"
#include "x0_i0_spawncond"

void DoSpawn2();

void main()
{
    int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
    int nAlign = GetAlignmentGoodEvil(OBJECT_SELF);
    object oKiller = GetLastKiller();

    // If we're a good/neutral commoner,
    // adjust the killer's alignment evil
    if ( nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL) )
    {
        AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
    }

    // Call to allies to let them know we're dead
    SpeakString("NW_I_AM_DEAD", TALKVOLUME_SILENT_TALK);

    //Shout Attack my target, only works with the On Spawn In setup
    SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);

    DelayCommand( 20.0f,  ExecuteScript("DoSpawn2", GetFirstPC()));
    SendMessageToPC(GetFirstPC(), "debug 1");

    // NOTE: the OnDeath user-defined event does not
    // trigger reliably and should probably be removed
    if ( GetSpawnInCondition(NW_FLAG_DEATH_EVENT) )
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(1007));
    }

    craft_drop_items(oKiller);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 1 2004, 18:59
Сообщение #254


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



на такую халаву все горазды отвечать (и я в том числе).
А вот на 5 вопросов Shadа никто ответить даже не пытался..признаюсь, что некоторые (вопросы) ставят меня в тупик.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Twin
сообщение Oct 2 2004, 01:43
Сообщение #255


Level 5
**

Класс: Некромант
Характер: Neutral Evil
Раса: Нежить
NWN: Скриптинг [PW]



Ох, сорри. ;) Просто мне очень хотелось верить в то что DelayCommand работает на низком уровне и уж априори не является свойством объекта. Ну нет так нет. :) Я в тулсете ноль, хотя после ваших ответов уже с палочкой. :yes: Спасибо.

2 DBColl:
Я писал авто-респаун НПСей для PW не через энкаунтеры, а по событию смерти. Лут их мне не был нужен, лиш resref и тэг. В итоге так и реализовал, как ты советывал, вешая DelayCommand на "системный" плэйс (чтоб ДМ мог его разломать и все респауны прекратились :lol:).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 2 2004, 08:30
Сообщение #256


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

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



Shad Пропустил твой пост... тока нашел...
QUOTE (Shad @ Sep 24 2004, 04:32)
3. Как сделать, чтобы Item свободно левитировал в воздухе, и чтобы его из воздуха можно было взять?//Редакторе висит, в игре падает вниз.

Никак. Вся инфа об итемах и простых предметах на арене находится в вайлах локации. А изменение координаты Z можно лишь через тулсет. Но можно сделать невидимый объект на уровне тайлов, с возможностью ходить по нему. Тогда это будет невидимый объект - пъедестал, который будет тормозом для игрока. Есть еще способ, он проще но есть но. Делаешь в Махе два предмета с разными координатами и размерами. Например как картины в НВН. Основание далеко внизу а макушка видимая вверху, в виде pls объекта. Затем дестрой-крет в инвентаре твой итем. Но Объект будет активным скорее всего весь, так что тут свои изъяны.
А вообще, сделать что то в НВН красиво и без изврата не возможно.
QUOTE (Shad @ Sep 24 2004, 04:32)
4. Как сделать, чтобы работали фиты на Creature Weapon - Improved Critical, Overwhelming Critical, например. У меня не работают.
5. Как сделать, чтобы Creature Weapon наносил одновременно разные типы физического урона (Режущий и колющий и дробящий сразу).// Когда ставлю такие свойства на оружме, или эффект на существо - урон растет но остаетья того же типа, что на базовом предмете оружии.

Это все редактирование 2Да. Что именно и возможно ли все что ты просишь я не знаю. Но из логики работы с редактором могу сказать только одно. Любое действие, то бишь тот же урон, есть такой же Action как и многое другое. Следовательно он становится в очередь при механике боя, при расчете кубиков. И поэтому он возможен только один, а не вся куча критикалов. Ведь правила ДнД вшиты круто в движок и многое не выдрать.

И скажу на последок вот что. Многие вопросы твои сложны, но для модуля они не нужны. можешь спорить со мной можешь не спорить. Это вопросы человека залезшего в тулсет и решившего поковырять его круто для себя. Но реально они игроку будут до жопы. Ему наплвать на все критикалы и прочее, ему подавай атмосферу, сюжет, красивости и прочее. Те вещи что ты ковыряешь съедают львиную долю возможностей твоих как изготовоителя модуля. В итоге не останется сил на завершение и ты можешь погрязнуть в неосуществимых мечтах и планов. Подумай десять раз, стоит ли твой гемморой стольких свечь или нет?

п.с. Не обижайся, если я резковато ответил :yes: А вообще, чем занят? ;) Может поделишься инфой?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elven king
сообщение Oct 4 2004, 17:53
Сообщение #257


Level 12
****

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Эльф
NWN: Маппинг



Такая прозьбы, для опытных мастеров:
Кто исправит мой скрипт для отдыха, а то я уже голову сломал и так, и эдак пробовал, но нифига не выходит :( Помогите!
Вот собстна сам скрипт:
rest
CODE
void DestroyFirecamp(object oCampFire=OBJECT_SELF)
{
// Создаем обгорелое пятно на месте костра и гасим костер
 object oLandMark=CreateObject(OBJECT_TYPE_PLACEABLE,"plc_weathmark",GetLocation(oCampFire));
// Пятно исчезает через 120 секунд (2 реальных минуты, 1 игровой час). Менять по вкусу
 AssignCommand(oLandMark,DelayCommand(120.0,DestroyObject(oLandMark)));
 DestroyObject(oCampFire);
}

void ApplyRestEffect(object oTarget=OBJECT_SELF)
{
// Создаем эффекты сна. Функцию править по вкусу.
 effect eSleep=EffectBlindness();

 if (GetRacialType(oTarget)==RACIAL_TYPE_ELF)
 {
// Эльфы едят и пьют другое
object FindFood(object oTarget=OBJECT_SELF)
{
 object oEnum=GetFirstItemInInventory(oTarget);
 while (GetIsObjectValid(oEnum) && (GetTag(oELEnum)!="FOODELVEN"))
     oEnum=GetNextItemInInventory(oTarget);
 return oEnum;
}
object FindWater(object oTarget=OBJECT_SELF)
{
 object oELWATER=GetFirstItemInInventory(oTarget);
 while (GetIsObjectValid(oELWATER) && (GetTag(oELWATER)!="WATERELVEN"))
     oEnum=GetNextItemInInventory(oTarget);
 return oELWATER;
}


     // Эффект сна на 30 секунд. Менять по желанию.
 ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eSleep,oTarget,30.0);
}

object FindFood(object oTarget=OBJECT_SELF)
{
 object oEnum=GetFirstItemInInventory(oTarget);
 while (GetIsObjectValid(oEnum) && (GetTag(oEnum)!="FOOD"))
     oEnum=GetNextItemInInventory(oTarget);
 return oEnum;
}
object FindWater(object oTarget=OBJECT_SELF)
{
 object oWATER=GetFirstItemInInventory(oTarget);
 while (GetIsObjectValid(oEnum) && (GetTag(oEnum)!="WATER"))
     oWATER=GetNextItemInInventory(oTarget);
 return oEnum;
}


makecamp (вешать на OnUsed дров)
CODE
#include "rest"

void main()
{
 object oPC=GetLastUsedBy();
 if (!GetIsPC(oPC)) return;
 object oTorch=GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC);
 if (GetIsObjectValid(oTorch) &&
        (GetTag(oTorch) == "NW_IT_TORCH001") &&
// Флаг, висящий на области (например в таверне) и позволяющий отдыхать бесплатно
        (GetLocalInt(GetArea(oPC),"NoCampArea") != TRUE)) {
     object oFire=CreateObject(OBJECT_TYPE_PLACEABLE,"campfire",GetLocation(OBJECT_SELF));
     DestroyObject(OBJECT_SELF);
// Огонь гаснет через 900 секунд (15 реальных минут или 7,5 игровых часов)
// Менять по желаю
     AssignCommand(oFire,DelayCommand(900.0,DestroyFirecamp(oFire)));
 } else {
     CreateItemOnObject("wood",oPC);
     DestroyObject(OBJECT_SELF);
 }
}


dropwood (вешать OnUnAquiredItem модуля)
CODE
void main()
{
 object oPC=GetModuleItemLostBy();
 if (!GetIsPC(oPC)) return;
 object oItem=GetModuleItemLost();
 if (!GetIsObjectValid(oItem)) return;
 string sResRef=GetTag(oItem);
 if (sResRef=="WOOD")
 {
     if (GetIsObjectValid(GetAreaFromLocation(GetLocation(oItem)))) {
         CreateObject(OBJECT_TYPE_PLACEABLE,"woodpile",GetLocation(oItem));
         DestroyObject(oItem);
     }
 }
}

resteffect (вешать на OnRested модуля)

CODE
#include "rest"

void main()
{
 object oPC=GetLastPCRested();
 if (GetCurrentAction(oPC)!=ACTION_REST) return;
 int iFreeRest=GetLocalInt(GetArea(oPC),"FreeRestArea");
 if (iFreeRest) ApplyRestEffect(oPC);
 else {
     object oCampFire=GetNearestObjectByTag("campfire",oPC);
// нельзя отдыхать дальше 3 метров от костра (расстояние менять по вкусу)
     if (GetIsObjectValid(oCampFire) && (GetDistanceBetween(oPC,oCampFire)<=3.0))
{
         object oFood=FindFood(oPC);
         if (GetIsObjectValid(oFood)) {
             DestroyObject(oFood);
             ApplyRestEffect(oPC);
         } else {
             FloatingTextStringOnCreature("Мне надо перекусить",oPC,FALSE);
             AssignCommand(oPC,ClearAllActions());
         }
     } else {
         FloatingTextStringOnCreature("Я не могу отдыхать далеко от костра",oPC,FALSE);
         AssignCommand(oPC,ClearAllActions());
     }
 }
object oWATER=FindWater(oPC);
         if (GetIsObjectValid(oWATER)) {
             DestroyObject(oWATER);
             ApplyRestEffect(oPC);
         } else {
             FloatingTextStringOnCreature("Мне надо попить",oPC,FALSE);
             AssignCommand(oPC,ClearAllActions());
         }
     } else {
         FloatingTextStringOnCreature("Я не могу отдыхать далеко от костра",oPC,FALSE);
         AssignCommand(oPC,ClearAllActions());
     }
 }
}
object oELFood=FindFood(oPC);
         if (GetIsObjectValid(oFood)) {
             DestroyObject(oELFood);
             ApplyRestEffect(oPC);
         } else {
             FloatingTextStringOnCreature("Мне надо перекусить",oPC,FALSE);
             AssignCommand(oPC,ClearAllActions());
         }
     } else {
         FloatingTextStringOnCreature("Я не могу отдыхать далеко от костра",oPC,FALSE);
         AssignCommand(oPC,ClearAllActions());
     }
 }
object oELWATER=FindELWater(oPC);
         if (GetIsObjectValid(oELWATER)) {
             DestroyObject(oELWATER);
             ApplyRestEffect(oPC);
         } else {
             FloatingTextStringOnCreature("Мне надо попить",oPC,FALSE);
             AssignCommand(oPC,ClearAllActions());
         }
     } else {
         FloatingTextStringOnCreature("Я не могу отдыхать далеко от костра",oPC,FALSE);
         AssignCommand(oPC,ClearAllActions());
     }
 }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 4 2004, 21:06
Сообщение #258


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Хех, ты бы хоть написал, что ты от него хочешь... Хехехе... Во дал! А то, "кто исправит"! Я балдю! :lol: :lol: :crazy:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 4 2004, 21:23
Сообщение #259


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

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



Алучше сделай тестовый модуль и выложи его. С итемами и скриптами. :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elven king
сообщение Oct 4 2004, 22:55
Сообщение #260


Level 12
****

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Эльф
NWN: Маппинг



Вобщем скрип на отдых...
Смысл скрипта вот в чем: игрок кладет из инвентаря дрова, на землю потом поджигает их факелом - появляется модель костра, потом возле костра игрок нажимает rest и тогда скрипт проверяет есть ли у PC еда и вода, если PC эльф, то скрипт проверяет есть ли эльфийская вода или эльфийский паек...
ЗЫ. Выложить модуль пока времени нету... Но постараюсь найти его. :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 4 2004, 23:02
Сообщение #261


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



нужен не весль модуль, а только кусочек, где это все вставлено.

Похоже на стандартный отдых. На Эксисе такой точно был (кроме эльфийской части)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Oct 9 2004, 00:14
Сообщение #262


Level 10
***

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



Няяя... У меня такой вопрос. В локе City Exterior можно на стенах на махрячить факелов. Когда мы включаем освещение локации clear - факелы не горят, и ночью тожа. А когда Torch Only - горят. Мутил мутил, сравнивал, да так и не понял. Как бы сделать так, чтобы днем было светло, а когда наступала ночь - темнело а на стенах загорались факелы? Тайловые факелы:)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 9 2004, 07:03
Сообщение #263


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

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



Аваддон это можно в ХоТУ скриптовыми командами. Какими точно и как я не знаю, не сталкивался.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 9 2004, 08:47
Сообщение #264


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



QUOTE (Аваддон @ Oct 9 2004, 00:14)
Няяя... У меня такой вопрос. В локе City Exterior можно на стенах на махрячить факелов. Когда мы включаем освещение локации clear - факелы не горят, и ночью тожа. А когда Torch Only - горят. Мутил мутил, сравнивал, да так и не понял. Как бы сделать так, чтобы днем было светло, а когда наступала ночь - темнело а на стенах загорались факелы? Тайловые факелы:)

В фильтре функций (правое окно редактора скриптов) вводишь light, это основные функции инклуды не нужны. Надо будет пробежать по всем тийлам, на нужных SetTileSourceLightColor(location lTileLocation, int nSourceLight1Color, int nSourceLight2Color). По-моему, просто по координатам, преобразовываем вектор в location... Вообще то я тоже с этим не сталкивался, но, наверно, можно ставить SourceLightColor даже не на нужных, а на всех (не уверен что легко выделить нужные) - там где нет SourceLight (светильников, факелов) это просто даст нулевой эффект, наверное.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 9 2004, 08:58
Сообщение #265


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Привет, Aiwan. А я уже почти и перестал надеятся.(вру)

QUOTE (Aiwan @ Oct 2 2004, 08:30)
Shad Пропустил твой пост... тока нашел...

Никак. Вся инфа об итемах и простых предметах на арене находится в вайлах локации. А изменение координаты Z можно лишь через тулсет. Но можно сделать невидимый объект на уровне тайлов, с возможностью ходить по нему. Тогда это будет невидимый объект - пъедестал, который будет тормозом для игрока. Есть еще способ, он проще но есть но. Делаешь в Махе два предмета с разными координатами и размерами. Например как картины в НВН. Основание далеко внизу а макушка видимая вверху, в виде pls объекта. Затем дестрой-крет в инвентаре твой итем. Но Объект будет активным скорее всего весь, так что тут свои изъяны.

Спс. Я сам не догадался перейти на уровень редактирования моделей. Мне больше второй способ понравился, но, ты прав, новые модели в хак я ещё пять раз подумаю прежде чем добавлять. :yes:
QUOTE (Aiwan @ Oct 2 2004, 08:30)
А вообще, сделать что то в НВН красиво и без изврата не возможно.

Иногда, да. Это ключевой момент, так удивительно когда вроде бы простая и хорошая идея требует какой-то, мм.. , очень затейливой:swoon: реализации.

QUOTE (Aiwan @ Oct 2 2004, 08:30)
Это все редактирование 2Да. Что именно и возможно ли все что ты просишь я не знаю. Но из логики работы с редактором могу сказать только одно. Любое действие, то бишь тот же урон, есть такой же Action как и многое другое. Следовательно он становится в очередь при механике боя, при расчете кубиков. И поэтому он возможен только один, а не вся куча критикалов. Ведь правила ДнД вшиты круто в движок и многое не выдрать.


Мм. Фиты связанные с критическими ударами работяют нормально с оружием которое берётся в руку/руки, какая то странная дискриминация для оружия существ... Что подозрительно, что стандартные (!) Elder * Elemental-ы, например, имеют этот самый фит Creature Weapon - Improved Critical (что кстати соответствует и AD&D 3rd Ed MM), но он, определённо, не действует.
Про Action... Действительно ли для разных типов физ. урона невозможны отдельные "действия"? Ведь для стихийных судя по всему существуют. Мм. Если я правильно ли понимаю...: тут для всех типов физического урона есть одна на всех "ячейка", и при расчёте только идентификатор одного из них проходит как параметр этого "действия"?

QUOTE (Aiwan @ Oct 2 2004, 08:30)
И скажу на последок вот что. Многие вопросы твои сложны, но для модуля они не нужны. можешь спорить со мной можешь не спорить. Это вопросы человека залезшего в тулсет и решившего поковырять его круто для себя. Но реально они игроку будут до жопы. Ему наплвать на все критикалы и прочее, ему подавай атмосферу, сюжет, красивости и прочее. Те вещи что ты ковыряешь съедают львиную долю возможностей твоих как изготовоителя модуля. В итоге не останется сил на завершение и ты можешь погрязнуть в неосуществимых мечтах и планов. Подумай десять раз, стоит ли твой гемморой стольких свечь или нет?


Чем дальше, тем больше убеждаюсь что ты прав. Началось всё месяца два (уже три) назад с уверенности, что для участия в чём-то надо хоть мало-мальски разобраться в тулсете. Надумал, взялся изучать. Повторюсь, так удивительно когда вроде бы простая и хорошая идея требует какой-то, мм.. , очень затейливой:swoon: реализации. А от идеи отказываться как-то не хосется. Вот и думаю, и спрашиваю. В итоге наверно это никому не будет нужно.

QUOTE (Aiwan @ Oct 2 2004, 08:30)
п.с. Не обижайся, если я резковато ответил  :yes:

Нп. Молчание горазду хуже. :yes:

QUOTE (Aiwan @ Oct 2 2004, 08:30)
А вообще, чем занят? ;)

Рисовал спелл один... был такой в BG2:ToB - Вызов элементалей, с ним в комплекте Великий вызов их же. Ждал его а IWD2, ждал в NWN... Эхх... Вот, думаю, заодно и разберусь как и что.

QUOTE (Aiwan @ Oct 2 2004, 08:30)
Может поделишься инфой?

У меня всё что есть, это в основном:
туториалы по ссылкам на www.wrg.ru и Realms.ru, в том числе и статьи
"В ПОМОЩЬ СОЗДАТЕЛЮ ПРИКЛЮЧЕНИЙ" ... хорошая последовательная и структурированная штука.
+ NWN Lexicon April2004
+ Eligio Sacateca Custom Content v3.0
+ CEPBuilders Guide&Standards
...хотя учился я в основном на комментариях от Bioware.
Вот и всё. То что намутил с заклинанием (вместо 2х получилось 3, но это не важно) - наверно скоро выложу где-то здесь. Хотя вот нашел одну совсем простую вроде ошибку... это наверно единственное без чего работа просо не будет применима - это не обойти и не обойтись без него:

6. Как заставить отображаться SubRad-спеллы, если они относятся к спеллу взятому через фит?//Когда мастер-спелл повешен на посохе (том самом, что упорно не хочет летать), всё работает норм. Когда взят Epic Spell - нет. Привязка SubRad-спеллов к фиту судя по всему осуществляется в spells.2da столбец FeatID, используя формулу FeatID_для_мастер-спелла + k*65536. Вот это k мне и не даётся так сразу - SubRad-спеллы в радиальном меню не появляются.

Да, спс ещё раз, Aiwan. Пока ElemLab.rar (щас найду где тут Upload) не вполне работает. Но, ты прав, :yes: я уже устал исправлять, пока не узнаю что работка кому-то интересна. ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 9 2004, 10:02
Сообщение #266


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

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



2 Shad я уж думал ты пропал :D

QUOTE (Shad @ Oct 9 2004, 11:58)
Если я правильно ли понимаю...: тут для всех типов физического урона есть одна на всех "ячейка", и при расчёте только идентификатор одного из них проходит как параметр этого "действия"?

:xz: :D

Я думал ты делаешь проект. Или делаешь? Жаль, что много людей интересуются разными вещами и очень мало, а точнее почти никто :( , не доделал свой проект. Это связано не с трудностями тулсета, а с переоценкой возможностей или пропажей интереса.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 10 2004, 08:17
Сообщение #267


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



QUOTE (Aiwan @ Oct 9 2004, 10:02)
2 Shad  я уж думал ты пропал  :D


:xz:   :D

Я думал ты делаешь проект. Или делаешь? Жаль, что много людей интересуются разными вещами и очень мало, а точнее почти никто :( , не доделал свой проект. Это связано не с трудностями тулсета, а с переоценкой возможностей или пропажей интереса.

Нет, Aiwan, я толко начал редактор изучать. Хочу поработать с командой шарда Siala - мне нравится их жёстко маниакальный подход.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Oct 14 2004, 17:49
Сообщение #268


Level 10
***

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



Хотелось бы реализовать системку чтобы чар уставал со временем. Удачно ли будет это делать на Hearbeat? Или есть предложения по реализации?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 14 2004, 18:37
Сообщение #269


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Аваддон @ Oct 14 2004, 17:49)
Хотелось бы реализовать системку чтобы чар уставал со временем. Удачно ли будет это делать на Hearbeat? Или есть предложения по реализации?

В Проклятье Левора эта система живет в хертбите модуля. Однако это:
1. Сингл. По сему не приходится перебирать чаров.
2. Для создания несильной загруженности, проверки снижены до односложных-вложенных условий (без && и ||). Типа
Neverwinter Script Source
if (GetFormatTimeLastRest(oPC)+15часов > GetFormatTime())
{
   if (!GetHasWakeEffect(oPC))
   {
       ............. и т.д.
   }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 17 2004, 00:47
Сообщение #270


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



QUOTE (Shad @ Oct 9 2004, 08:58)
Пока ElemLab.rar (щас найду где тут Upload) не вполне работает. Но, ты прав, я уже устал исправлять, пока не узнаю что работка кому-то интересна.

Адрес изменился:
ftp://81.176.64.171/upload/NWN/ElemLab_Demo01.rar

Сообщение отредактировал Shad - Oct 22 2004, 03:29
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 17 2004, 08:22
Сообщение #271


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

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



Shad щас, гляну :yes:
Ой блин! :oh: У меня ж нету Тулсета... :swoon: Но солью все равно :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 19 2004, 00:36
Сообщение #272


Level 3
*

Класс: Обыватель
Характер: Lawful Good
Раса: Человек



QUOTE (Aiwan @ Oct 17 2004, 08:22)
Shad  щас, гляну  :yes: 
Ой блин! :oh: У меня ж нету Тулсета...  :swoon:  Но солью все равно  :D

Напиши, как оно. Интересно... :rolleyes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Черный Ярл
сообщение Oct 19 2004, 01:40
Сообщение #273


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

Класс: Теневой Танцор
Характер: Lawful Evil
Раса: Человек
NWN: Маппинг
Сиала



Мир вам!

Не получается отследить нанесение чаром или мобом "критического удара" для последующего запуска собственной процедуры.
Вообще это реализуемо? Если да, то как?
Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
baskan
сообщение Oct 23 2004, 14:37
Сообщение #274


Level 7
**

Класс: Бард
Характер: Lawful Good
Раса: Фея



Ай нид хелп..
Вот скрипт и тут есть фича с регистрацией аккаунта на шарде..так вот как ее отсечь без вреда скрипту?(ка я понял там еще есть некоторые действия)

CODE
void main()
{
PGSModuleClientEnterEvent (GetEnteringObject());
object oPC = GetEnteringObject();
object oEmote = GetItemPossessedBy(oPC, ITEM_TYPE_EMOTEWAND);
object oDMring = GetItemPossessedBy(oPC, "dmfi_onering");
object oObject = GetItemPossessedBy(oPC, sSTR_013);
object pl;
string sName = GetPCPlayerName(oPC);
string sFName = GetName(oPC);
string sDMName = GetPCPlayerName(oPC);
string sKey = GetCampaignString(SECURITY, sName);
string sPL1 = GetCampaignString(SECURITY, sName+"player1");
string sPL2 = GetCampaignString(SECURITY, sName+"player2");
string sPL3 = GetCampaignString(SECURITY, sName+"player3");
int iAlignment = GetAlignmentGoodEvil(oPC);
int a;
int b;
int d;
int iDHP;
int iMHP = GetMaxHitPoints(oPC);
int nomer=StringToInt(GetDeity(oPC));
int prenomer=0;
if (GetIsPC(oPC) && !GetIsDM(oPC))
{
 SetPlotFlag(oPC, FALSE);
 SendMessageToPC(oPC, sSTR_005);
 //
 if (sPL1==sFName) {prenomer=1;}
 else if (sPL2==sFName) {prenomer=2;}
 else if (sPL3==sFName) {prenomer=3;};
 //
 if ((nomer==0)&&(prenomer!=0)&&(GetCampaignString(CHAR_DATA,sName+"player"+IntToString(prenomer)+"VISIT")==""))
 {
 SetCampaignString(CHAR_DATA,sName+"player"+IntToString(prenomer)+"VISIT","TRUE");
 SetDeity(oPC,IntToString(prenomer));
 nomer=prenomer;
 a=0;
 for (d = 1; d <=GetCampaignInt("player_list","count"); d++)
 {
 if (a==1) continue;
 if (GetCampaignString("player_list",IntToString(GetCampaignInt("player_list","count")))!=sName){}
 else {a=1;};
 };

 if (a!=1)
 {
 SetCampaignInt("player_list","count",(GetCampaignInt("player_list","count")+1));
 SetCampaignString("player_list",IntToString(GetCampaignInt("player_list","count")),sName);
 };
 };
 //
 if ( (GetPCPublicCDKey(oPC) == sKey)&&(nomer==prenomer)&&(nomer!=0))
 {
  if (oEmote == OBJECT_INVALID) CreateItemOnObject(ITEM_TYPE_EMOTEWAND, oPC, 1);

   switch (iAlignment)
   {
   case ALIGNMENT_GOOD:
   if (GetCampaignInt(GOOD_EVIL,sFName+sName) != 1) SetCampaignInt(GOOD_EVIL,sFName+sName,1);
   break;
   case ALIGNMENT_EVIL:
   if (GetCampaignInt(GOOD_EVIL,sFName+sName) != 2) SetCampaignInt(GOOD_EVIL,sFName+sName,2);
   break;
   default:
   if (GetCampaignInt(GOOD_EVIL,sFName+sName) != 3) SetCampaignInt(GOOD_EVIL,sFName+sName,3);
   break;
   }


   pl = GetFirstPC();
   b = GetCampaignInt(GOOD_EVIL,sFName+sName);
   while ( pl != OBJECT_INVALID)
   {
   if ((!GetIsDM(pl))&&(pl!=oPC))
   {
   a = GetCampaignInt(GOOD_EVIL,GetName(pl)+GetPCPlayerName(pl));
   if ((a!=b)&&(a!=2)&&(b!=2)) ActionDoCommand(SetPCDislike(oPC,pl));
   };
   pl=GetNextPC();
   }
  //ExecuteScript ("ats_client_enter",oPC);

 SetLocalString(oPC,"acc",GetPCPlayerName(oPC));

 int iHP = StringToInt(GetCampaignString(CHAR_DATA,GetPCPlayerName(oPC)+"player"+IntToString(nomer)+"HP"));
 if (iHP != 0)
 {
 if (iHP<iMHP){iDHP=iMHP-iHP;ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(iDHP), oPC);}
 else if (iHP>iMHP) {iDHP=iHP-iMHP; ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectTemporaryHitpoints(iDHP), oPC,30.0);}
 };

 if (GetIsDead(oPC))
 {
 SetLocalInt(oPC,"autokill",1);
 location lLoc = GetCampaignLocation("bd_locations",sFName+sName);
 AssignCommand(oPC,ActionJumpToLocation(lLoc));
 };

 /*Vnesenie akkauntov v spisok player_list
 a=0;
 for (d = 1; d <=GetCampaignInt("player_list","count"); d++)
 {
 if (a==1) continue;
 if (GetCampaignString("player_list",IntToString(GetCampaignInt("player_list","count")))!=sName){}
 else {a=1;};
 };

 if (a!=1)
 {
 SetCampaignInt("player_list","count",(GetCampaignInt("player_list","count")+1));
 SetCampaignString("player_list",IntToString(GetCampaignInt("player_list","count")),sName);
 };
 */

 }
 else{BootPC(oPC); SetLocalInt(oPC,"bootexit",1);}
}
else if (GetIsDM(oPC))
 {
  if (GetCampaignString(DM_VAULT, sDMName) == GetPCPublicCDKey(oPC))
  {
   SendMessageToPC(oPC, sSTR_038);
   if (oDMring == OBJECT_INVALID) { CreateItemOnObject("dmfi_onering", oPC, 1); }
  }

  else
  {
  BootPC(oPC);
  PrintString("Someone with IP: " + GetPCIPAddress(oPC) + " tryed to enter as a DM '" + GetPCPlayerName(oPC) + "'!");
  }
 }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 23 2004, 15:01
Сообщение #275


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Черный Ярл
QUOTE (Черный Ярл @ Oct 19 2004, 01:40)
Не получается отследить нанесение чаром или мобом "критического удара" для последующего запуска собственной процедуры. Вообще это реализуемо? Если да, то как?

Мне кажется, что это нельзя отследить... Хотя... есть идейка хитренькая...
У моба надо скрипт на OnDamage вешать. При каждом полученном неписем повреждении скрипт на нем анализирует максимальный "некритический" удар damager'а. Сравнивает с полученным повреждением и если оно больше, чем максимальный "некритический" удар, значит это КРИТ. Запускаем кастом функцию. :drag:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 9 10 11 12 13 > » 
Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 10th November 2024 - 20:56