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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 93 94 95 96 97 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Mandrake
сообщение Jun 16 2006, 23:54
Сообщение #2336


Level 3
*

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Нет, я в свойствах персонажа ставил "оставить труп для грабежа" =) Соответствено этот труп дестроится, а там где он был остается выше описаное.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sharklike
сообщение Jun 17 2006, 09:09
Сообщение #2337


Level 8
***

Класс: Бледный Мастер
Характер: Chaotic Neutral
Раса: Человек



Такие подсвечивающиеся точки остаются в любом тайлсете?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Neo
сообщение Jun 17 2006, 11:31
Сообщение #2338



Иконки Групп

Класс: Пьяный Мастер
Характер: Lawful Good
Раса: Тварь
MySQL, PHP, JavaScript
Порядок Времени



QUOTE(Aiwan @ Jun 16 2006, 21:01) [snapback]84922[/snapback]
Ну дык, взял бы и написал тут. Кто-то может тоже искать будет...

(IMG:style_emoticons/kolobok_light/wink3.gif)

4.4. Cost Calculation
The cost of an item is determined by the following formula:

ItemCost = [BaseCost + 1000*(Multiplier^2 - NegMultiplier^2) + SpellCosts]*MaxStack*BaseMult + AdditionalCost;

, where:
BaseMult = ItemMultiplier column value from baseitems.2da.
AdditionalCost = AddCost Field from the Item Struct.
and the other terms are as defined in the following subsections:

4.4.1. Base Cost
BaseCost = BaseCost column value from baseitems.2da for all items except armor.
For armor, BaseCost is the cost in armor.2da for the armor's base AC. The armor's base AC is the ACBONUS from parts_chest.2da, using the part number of the chest as the index into parts_chest.2da.

4.4.2. Multipliers
Multiplier is the sum of the costs of all the Item Properties whose costs are positive. That is:
NegMultiplier is the sum of the costs of all Item Properties whose costs are negative.
If an Item Property has a PropertyName of 15 (Cast Spell), then omit it from the Multiplier/NegMultiplier totals. It will be handled when calculating the SpellCosts instead.
To calculate the cost of a single Item Property, use the following formula:
ItemPropertyCost = PropertyCost + SubtypeCost + CostValue
Add the ItemProperty's cost to the Multiplier total if it is positive. Add it to the NegMultiplier total if it is negative.
Note that Item Property Params do not affect Item Property cost.
The PropertyCost, SubtypeCost, and CostValue terms are obtained as described below.
PropertyCost
In itempropdef.2da, get the floating point value in the Cost column, at the row indexed by the PropertyName Field of the ItemProperty Struct. If the Cost column value is ****, treat it as 0. This floating point value is the PropertyCost.
SubtypeCost
If the PropertyCost obtained above from itempropdef.2da was 0, then get the ResRef in the SubTypeResRef column of itempropdef.2da, at the row indexed by the 2PropertyName Field of the ItemProperty Struct. This is the resref of the subtype table 2da.
In the subtype 2da, get the floating point value in the Cost column at the row indexed by the Subtype Field of the ItemProperty Struct. This floating point value is the SubtypeCost.
Only get the SubtypeCost if the PropertyCost was 0. If the PropertyCost was greater than 0, then the SubtypeCost is automatically 0 instead.
CostValue
In iprp_costtable.2da, get the string in the Name column at the row indexed by the CostTable Field in the ItemProperty Struct. This is the ResRef of the cost table 2da.
In the cost table, get the floating point value in the Cost column in the row indexed by the CostValue Field in the ItemProperty Struct. This floating point value is the CostValue.

4.4.3. Cast Spell Costs
To calculate the cost of a single Cast Spell Item Property, use the following formula:
CastSpellCost = (PropertyCost + CostValue)* SubtypeCost
The PropertyCost, SubtypeCost, and CostValue terms are obtained in the same way as for non-CastSpell Item Properties.
After calculating all the CastSpellCost values for all the Cast Spell Item Properties, modify them as follows:
• Most expensive: multiply by 100%
• Second most expensive: multiply by 75%
• All others: multiply by 50%
After adjusting the CastSpellCosts, add them up to obtain the total SpellCosts value. Use the total SpellCosts to calculate the total ItemCost using the formula given at the very beginning of Section 4.4.

Да, забыл дописать - официальная инфа от бварей (IMG:style_emoticons/kolobok_light/pardon.gif) лежит открыто на ихнем сайте
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jun 17 2006, 11:57
Сообщение #2339


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



QUOTE(Aiwan @ Jun 17 2006, 00:16) [snapback]84945[/snapback]
На месте где лежал труп остается маленькая светящаяся точка
Это не точка, это душа погибшего существа.

Чтобы удалить труп доступный для ограбления не нужно так прямо его дестроить, достаточно убрать с него все вещи и деньги, и он сам исчезнет через время указаное в поле "Corpse Decay Time".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mandrake
сообщение Jun 17 2006, 12:24
Сообщение #2340


Level 3
*

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



QUOTE
Такие подсвечивающиеся точки остаются в любом тайлсете?


Да, в любом =)

QUOTE
Это не точка, это душа погибшего существа.

Чтобы удалить труп доступный для ограбления не нужно так прямо его дестроить, достаточно убрать с него все вещи и деньги, и он сам исчезнет через время указаное в поле "Corpse Decay Time".


Я в курсе того что он исчезает при снятии всех вещей, но допустим там есть то что мне абсолютно не нужно, конечно я могу во избежании этих точек ходить и собирать все что падает, но это ведь как "Смерть лечит от всех болезней" (IMG:style_emoticons/kolobok_light/vava.gif)

А насчет души, душа обычно к небу стремится (IMG:style_emoticons/kolobok_light/angel.gif) А не на земле лежит.


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 17 2006, 13:27
Сообщение #2341


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

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



NSS
// All clients in oArea will recompute the static lighting.
// This can be used to update the lighting after changing any tile lights or if
// placeables with lights have been added/deleted.
void RecomputeStaticLighting(object oArea)

Попробуй сделать этой функцией пересчет света. Выйди с локации и зайди заново, если это эффект света на объекте то должно пропасть.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jun 17 2006, 13:54
Сообщение #2342


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



QUOTE(Mandrake @ Jun 17 2006, 13:24) [snapback]84964[/snapback]
Я в курсе того что он исчезает при снятии всех вещей, но допустим там есть то что мне абсолютно не нужно, конечно я могу во избежании этих точек ходить и собирать все что падает, но это ведь как "Смерть лечит от всех болезней"


Я имел в виду не собирать самому, а вместо DestroyObject скриптом через DelayCommand снимать все вещи и деньги:
NSS
DelayCommand(120.0, TakeGoldFromCreature(GetGold(oCreature), oCreature, TRUE));
таким образом ты уберешь тело.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mandrake
сообщение Jun 17 2006, 14:17
Сообщение #2343


Level 3
*

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



QUOTE
Я имел в виду не собирать самому, а вместо DestroyObject скриптом через DelayCommand снимать все вещи и деньги


Потом я понял твой пост, но дело в том, что стоит через скрипт внести другие вещи для выпадения, которые не надеты на объекте, как эта схема перестает работать, поэтому я и не стал править свой предыдущий пост (IMG:style_emoticons/kolobok_light/vava.gif)
Исчезают только те вещи, которые при спавне были на обджекте, а те которые добавляются к нему после смерти, почему то остаются.Вот собствено тот скрипт.
NSS
object oPC = OBJECT_SELF;


object oItem;
oItem = GetFirstItemInInventory(oPC);

while (GetIsObjectValid(oItem))
  {
  if (GetPlotFlag(oItem))
      SetPlotFlag(oItem, FALSE);

    DelayCommand(20.0, DestroyObject(oItem));

  oItem = GetNextItemInInventory(oPC);
  }

int nInt;
for (nInt=0; nInt<NUM_INVENTORY_SLOTS; nInt++)
  {
  oItem = GetItemInSlot(nInt, oPC);

  if (GetPlotFlag(oItem))
        SetPlotFlag(oItem, FALSE);

  DelayCommand(20.0, DestroyObject(oItem));
  }

Выданный скрипт эдитором, который я подправил.(Установил задержку на дестрой)

Aiwan, спасибо попробую.

Добавил.
Попробывал, как сказал Aiwan
NSS
//Put OnExit
void main()
{
object oPC =  GetExitingObject();
object oArea = GetArea(oPC);
RecomputeStaticLighting(oArea);
}


Не помогло (IMG:style_emoticons/kolobok_light/aggressive.gif) (IMG:style_emoticons/kolobok_light/unsure.gif)

Сообщение отредактировал Mandrake - Jun 17 2006, 14:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jun 17 2006, 17:59
Сообщение #2344


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Попробуй вынести удаление вещей в отдельную функцию и ее заDelay'ить.

Твой измененный скрипт будет выглядеть примерно так:
NSS
void Clear(object oPC)
{
    object oItem = GetFirstItemInInventory(oPC);
    while (GetIsObjectValid(oItem))
    {
        SetPlotFlag(oItem, FALSE);
        DestroyObject(oItem);

        oItem = GetNextItemInInventory(oPC);
    }

    TakeGoldFromCreature(GetGold(oPC), oPC, TRUE)
}

void main()
{
    object oPC = OBJECT_SELF;
    DelayCommand(120.0, Clear(oPC));
}

P.S. К тому же в твоем варианте вещи удаляются даже если игрок заберет их.
P.P.S. Plot'овые вещи лучше не удалять, а если они не критичны, то и Plot флаг с них лучше убрать.
P.P.P.S. А вообще лежащий труп напряжет систему не больше, чем бегающий монстр, так что если у тебя монстры не появляются все время, то лучше оставлять - так реалистичнее.

Сообщение отредактировал azathoth - Jun 17 2006, 18:06
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 17 2006, 18:19
Сообщение #2345


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

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



У меня есть система удаления лута с слокаций. На OnExit локации ставь или по смыслу и своим условиям.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mandrake
сообщение Jun 17 2006, 19:27
Сообщение #2346


Level 3
*

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



NSS
//:://////////////////////////////////////////////
//:: OnExit  am_aex_random
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
    Удаление лута на локации случайных боев.
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 24.05.2005
//:://///////////////////////////////////////////
int GetIsAssociate(object oMaster, object oAssociate)
{
    object oMaster = GetMaster(oAssociate);
    if(oMaster != OBJECT_INVALID)
      {
      return TRUE;
      }
        return FALSE;
}

void main()
{
object oPC = GetExitingObject();
object oDestr = GetFirstObjectInArea(OBJECT_SELF);
if (!GetIsPC(oPC)) return;

while (oDestr!=OBJECT_INVALID)
  {
//------------------------------------------------------------------------------
    if (GetHasInventory(oDestr) && GetTag(oDestr)=="BodyBag") // Лут - сумка стандартная
    {
      object oItem = GetFirstItemInInventory(oDestr);
      while (GetIsObjectValid(oItem))
      {
        DestroyObject(oItem);
        oItem = GetNextItemInInventory(oDestr);
      }
      DestroyObject(oDestr);
    }
//------------------------------------------------------------------------------
if (GetObjectType(oDestr) == OBJECT_TYPE_PLACEABLE
//      || GetObjectType(oDestr) == OBJECT_TYPE_CREATURE
      && !GetIsAssociate(oPC, oDestr))
        {
        {
          CopyItem(oDestr, oPC, TRUE);

        }
    }
//------------------------------------------------------------------------------*/
    oDestr = GetNextObjectInArea(OBJECT_SELF);
    }
}


Aiwan! (IMG:style_emoticons/kolobok_light/good.gif) НЛО исчезло, после небольшой доработки твоего скрипта. (IMG:style_emoticons/kolobok_light/thank_you.gif) Но у меня вопрос теперь такого плана. Подставив
QUOTE
GetObjectType(oDestr) == OBJECT_TYPE_PLACEABLE
я не подверг ли опасности какие нибудь другие объекты, носящие стратегически важную цель для модуля? (IMG:style_emoticons/kolobok_light/vava.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 17 2006, 22:09
Сообщение #2347


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

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



Слушай, я правил тот скрипт и конечно же накосячил в нем, так как вырезал куски для тебя. Ща убрал тока одину локалку вверху. Так что смотри мой скрипт выше, я там пометил что я лишнее удалил. Извини.

Перечитал свой пост, это ты там у себя накосячил что-то (IMG:style_emoticons/kolobok_light/wacko.gif) Короче этот блок либо поправь либол возьми мой я пометил что там он делает.
NSS
//:://////////////////////////////////////////////
//:: OnExit  am_aex_random
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
    Удаление лута на локации случайных боев.
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 24.05.2005
//:://///////////////////////////////////////////
int GetIsAssociate(object oMaster, object oAssociate)
{
    object oMaster = GetMaster(oAssociate);
    if(oMaster != OBJECT_INVALID)
      {
      return TRUE;
      }
        return FALSE;
}

void main()
{
object oPC = GetExitingObject();
object oDestr = GetFirstObjectInArea(OBJECT_SELF);
if (!GetIsPC(oPC)) return;

while (oDestr!=OBJECT_INVALID)
  {
//------------------------------------------------------------------------------
    if (GetHasInventory(oDestr) && GetTag(oDestr)=="BodyBag")
    {
      object oItem = GetFirstItemInInventory(oDestr);
      while (GetIsObjectValid(oItem))
      {
        string sTag = GetTag(oItem); // Debag message
        SendMessageToPC(oPC, "Destroy Item - "+sTag);
        DestroyObject(oItem);
        oItem = GetNextItemInInventory(oDestr);
      }
      string sTag = GetTag(oDestr); // Debag message
      string sResRef = GetResRef(oDestr);
      SendMessageToPC(oPC, "Destroy Object - "+sTag+" Resref-"+sResRef); // Debag message
      DestroyObject(oDestr);
    }
//------------------------------------------------------------------------------
  if (GetObjectType(oDestr) == OBJECT_TYPE_ITEM        // Если это предмет
      || GetIsEncounterCreature(oDestr)                // или монстр из енкаучера
      && !GetIsAssociate(oPC, oDestr))                  // но не наш помощник
      {
      // Если это предмет плотовый, якобы мы его уронили или не подняли случайно
      if (GetPlotFlag(oDestr) == TRUE && GetObjectType(oDestr) == OBJECT_TYPE_ITEM)
      {
          CopyItem(oDestr, oPC, TRUE); // копируем его в инвентарь РС
          SendMessageToPC(oPC, "Перед тем, как идти дальше, вы вернулись и побдобрали важный предмет.");
      }
      string sTag = GetTag(oDestr); // Debag message
      string sResRef = GetResRef(oDestr);
      SendMessageToPC(oPC, "Destroy Object - "+sTag+" Resref-"+sResRef); // Debag message
      DestroyObject(oDestr); // Удаляем то что валялось или бегало и пугало нас
      }
//------------------------------------------------------------------------------*/
    oDestr = GetNextObjectInArea(OBJECT_SELF);
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mandrake
сообщение Jun 18 2006, 01:01
Сообщение #2348


Level 3
*

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Все, нашел консенсус. От трупов отказался, вернулся к мешкам лута стандартным, пусть будет так, зато все работает.

Спасибо всем за помощь.

Aiwan, вам отдельное спасибо за нахождение решения проблемы (IMG:style_emoticons/kolobok_light/thank_you.gif)

P.S. Пытался выловить этот светящийся объект путем того, что через скрипт Aiwan'a удалял все плейсиблы с локи, потом заходил в нее еще раз и после убийства мобов опять выходил. Функция сообщения указывающего что удалялось показало 2 объекта с тэгом стандартного мешочка лута... Вот так. Неразрешенная загадка осталось таковой

Сообщение отредактировал Mandrake - Jun 18 2006, 01:07
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 18 2006, 16:18
Сообщение #2349


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

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



Mandrake, это старый баг данного флажка. Удаляется этот светящийся объект только тогда, когда игрок полностью забирает все вещи с трупа, но если труп с вещами удаляется сам по истечение определенного времени, то точка остается. В свое время долго боролся с этой проблемой, но так и не получилось избавиться от этих точек. Похоже, что в месте смерти остается невидимый объект, который после удаления тела перестает быть активным, но сам не исчезает.

Кстати, ты написал
QUOTE
вернулся к мешкам лута стандартным
Каким именно? В моем модуле создается на месте смерти невидимый объект из палитры, в который сразу же копируются все выпавшие вещи с монстра. Через 1 минуту все это добро, вместе с телом монстра, удаляется. Работает хорошо, и не вызывает каких-либо проблем. И главное, что смотрится отлично. Если интересует, могу поделиться скриптом.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mandrake
сообщение Jun 19 2006, 18:53
Сообщение #2350


Level 3
*

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Мешок который по умолчанию, с тэгом "BodyBag". Именно он удаляется скриптом Aiwan'a, после того, как с локи уходит игрок. Но если я понял правильно, то он действует в сингле, а в онлайн может доставить неудобство, ибо с локации может выйти кто то другой, а игрок который убил моба останется без законно выбитого добра.

Я конечно планированием сетевых шардов заниматься не думаю, но для просвещения, не отказался бы увидеть ваш скрипт, Zirrex (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Jun 24 2006, 07:10
Сообщение #2351


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



Не начинается диалог...
NSS
void main()
{
object oPC = GetEnteringObject();
object oNPC1 = GetObjectByTag("NPC_01"); // Ãëàâàðü
object oNPC2 = GetObjectByTag("NPC_02"); // Ëó÷íèöà
object oNPC3 = GetObjectByTag("NPC_03");
object oNPC4 = GetObjectByTag("NPC_04");
object oWPpc1 = GetWaypointByTag("WP_PC_1");
object oWP1 = GetWaypointByTag("WP_NPC_01");
object oWP2 = GetWaypointByTag("WP_NPC_02");
object oWP3 = GetWaypointByTag("WP_NPC_03");
object oWP4 = GetWaypointByTag("WP_NPC_04");
object oDoor1 = GetObjectByTag("DOOR_01"); // Äâåðü Ãëàâàðÿ
object oDoor2 = GetObjectByTag("DOOR_02"); // Äâåðü ëó÷íèöû
object oDoor3 = GetObjectByTag("DOOR_03"); // Íàøà äâåðü
object oDoor4 = GetObjectByTag("DOOR_04"); // Íàøà äâåðü

if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") == 1)
    return;
  {
  SetLocalInt(OBJECT_SELF, "TRIGGER", 1);
  SetCutsceneMode(oPC);
  AssignCommand(oPC, ClearAllActions());
  AssignCommand(oNPC1, ClearAllActions());
  AssignCommand(oNPC2, ClearAllActions());
  AssignCommand(oNPC3, ClearAllActions());
  AssignCommand(oNPC4, ClearAllActions());
ActionDoCommand(AssignCommand(oPC, ActionMoveToObject(oWPpc1)));
ActionDoCommand(AssignCommand(oPC, SetCameraFacing(280.0, 7.0, 45.0, CAMERA_TRANSITION_TYPE_SLOW)));
ActionDoCommand(AssignCommand(oPC, SpeakString("Êàê-òî ñäåñü ìðà÷íî... è... ïîäîçðèòåëüíî òèõî...")));
ActionWait(9.5);
ActionDoCommand(AssignCommand(oDoor1, ActionOpenDoor(OBJECT_SELF)));
ActionDoCommand(AssignCommand(oDoor2, ActionOpenDoor(OBJECT_SELF)));
ActionDoCommand(AssignCommand(oDoor3, ActionOpenDoor(OBJECT_SELF)));
ActionDoCommand(AssignCommand(oDoor4, ActionOpenDoor(OBJECT_SELF)));
ActionWait(1.0);
ActionDoCommand(AssignCommand(oNPC1, ActionForceFollowObject(oWP1)));
ActionDoCommand(AssignCommand(oNPC2, ActionForceFollowObject(oWP2)));
ActionDoCommand(AssignCommand(oNPC3, ActionForceFollowObject(oWP3)));
ActionDoCommand(AssignCommand(oNPC4, ActionForceFollowObject(oWP4)));
ActionWait(4.5);
ActionStartConversation(GetFirstPC(), "bandit1");
}
}

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jun 24 2006, 09:27
Сообщение #2352


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Белатрис

Строка:
NSS
ActionStartConversation(GetFirstPC(), "bandit1");

Начинает диалог, с самим триггером. К тому же, зачем использовать функцию GetFirstPC() если игрок и так определен ? + Просто-напросто, может отсутствовать диалог.

PS: на будущее, копируй код с элементами русс. речи (комментариями, текстом) на русской раскладке.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Юзверь
сообщение Jun 24 2006, 18:45
Сообщение #2353


Level 1


Класс: Друид
Характер: Neutral Good
Раса: Эльф



Всем привет, Дамы и Господа.
Насколько я понимаю скрипты разбираются здесь.
Дело в том, что на просторах инета я нашел один интересный скриптик. Этот скрипт меняет свойство навыка Animal Empathy у рэйнджэра и друида (вкратце, зверье не привлекается на сторону последних, но и не атакует их). Возникла одна проблема - скрипт идет только под HotU v. 1.66, а с учетом моего соединения скачать 76 Мб нереально.
К тому же хотелось бы вставить подобное нововведение в кампанию, а не только в модули. Простой записи в Оверрайд не только основного файла (выложен файл *.erf), но даже его содержимого не достаточно.
Если кого-то как и меня заинтересует подобное, то ниже ссылка.
nwvault.ign.com

Заранее спасибо за помощь...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jun 24 2006, 19:07
Сообщение #2354


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Alaron

В HotU, и 1.66 есть новые фун-ции, и если они используются в скрипте, то тут уже ничего не поделаешь, остаеться только ставить аддон и патчить игру.

QUOTE
Простой записи в Оверрайд не только основного файла (выложен файл *.erf), но даже его содержимого не достаточно.


еrf, не нужно записывать в ovveride, они просто импортируются в модуль.
(File - Import - нужный *erf)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Юзверь
сообщение Jun 24 2006, 20:53
Сообщение #2355


Level 1


Класс: Друид
Характер: Neutral Good
Раса: Эльф



QUOTE
В HotU, и 1.66 есть новые фун-ции, и если они используются в скрипте, то тут уже ничего не поделаешь, остаеться только ставить аддон и патчить игру.

Что это меняет? Даже если пропатчить игру, то вставить скрипты в кампанию не выйдет, т.к. Тулсет просто откажется компилировать содержимое, ссылаясь на пропасть ошибок...

QUOTE
еrf, не нужно записывать в ovveride, они просто импортируются в модуль.
(File - Import - нужный *erf)

Я понимаю, тем не менее должна быть возможность вставить скрипты не в модуль, а в саму кампанию...

Сообщение отредактировал Alaron - Jun 24 2006, 20:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jun 24 2006, 20:59
Сообщение #2356


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Alaron

QUOTE
Я понимаю, тем не менее должна быть возможность вставить скрипты не в модуль, а в саму кампанию...


Модули компании, лежат в папке nwn, и имеют расширение *NWN, для того чтобы открыть их в тулсете, просто смени расширение на *MOD, перезапиши в moduls, спокойно импортируй скрипт, сохраняй мод, а потом опять меняй расширение на *NWN, и записывай в прежнею папку.

Сообщение отредактировал Dik Morris - Jun 25 2006, 12:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Юзверь
сообщение Jun 24 2006, 22:35
Сообщение #2357


Level 1


Класс: Друид
Характер: Neutral Good
Раса: Эльф



QUOTE
Модули компании, лежат в папке nwn, и имеют расширение *NWN, для того чтобы открыть их в тулсете, просто сменить расширение на *MOD, перезапиши в moduls, спокойно импортируй скрипт, сохраняй мод, а потом опять меняй расширение на *NWN, и записывай в прежнею папку.


Как я уже писал выше, Тулсет сохраняет модули с пропастью ошибок в основном в скриптах. (IMG:style_emoticons/kolobok_light/sad.gif)
К тому же придется прописывать скрипты ВО ВСЕХ МОДУЛЯХ, а это пи... в общем, крайне нежелательно. (IMG:style_emoticons/kolobok_light/suicide2.gif)
В любом случае спасибо за совет... (IMG:style_emoticons/kolobok_light/declare.gif)

Сообщение отредактировал Alaron - Jun 24 2006, 22:35
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 24 2006, 23:10
Сообщение #2358


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

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



Alaron, а что тебе мешает исправить эти ошибки? Ну если ты хочешь изменить что-то в модулях компании, то делать это лучше все же во всех модулях. Да, вот еще что, если ты обратил внимание, то все модули сделаны так, чтобы в них не было ничего от аддона, в котором компания не делалась.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Jun 24 2006, 23:41
Сообщение #2359


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



QUOTE(Dik Morris @ Jun 24 2006, 17:27) [snapback]85785[/snapback]

Белатрис

Строка:
NSS
ActionStartConversation(GetFirstPC(), "bandit1");

Начинает диалог, с самим триггером. К тому же, зачем использовать функцию GetFirstPC() если игрок и так определен ? + Просто-напросто, может отсутствовать диалог.

PS: на будущее, копируй код с элементами русс. речи (комментариями, текстом) на русской раскладке.

А написать нельзя? (IMG:style_emoticons/kolobok_light/shout.gif)

Айван: послушай меня, если тебе надо что бы КТО-ТО написал за тебя скрипт, то просить надо вежливо и низко кланяясь. ТУТ ТЕБЕ НИКТО НИЧЕГО НЕ ДОЛЖЕН. Если не умеешь, сразу и говори Я НЕ НИЧЕГО НЕ УМЕЮ. И люди не будут время тратить на объяснение и идеи.

Я уже устал говорить, что мало что знаю, но народ этого не замечает! Вон, на предыдущей странице(кажется) я написал, что вообще все забыл. Этого не достаточно? Да и к тому же, я не приказываю, просто Дик первым увидел мой пост с 10 вопросами, почему же тогда он не вспомнил, что я ни-ни в скриптах, мне-то всего нужно было написать несколько строчек. Я могу лишь, что-то делать пользуясь чужими матерьялами ("вопросы и ответы" к примеру)..

Дик, прошу прощения, если обидел, я не хотел, честно!

Сообщение отредактировал Белатрис - Jun 25 2006, 10:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jun 25 2006, 08:25
Сообщение #2360


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE(Alaron @ Jun 25 2006, 01:35) [snapback]85809[/snapback]

Как я уже писал выше, Тулсет сохраняет модули с пропастью ошибок в основном в скриптах. (IMG:style_emoticons/kolobok_light/sad.gif)
К тому же придется прописывать скрипты ВО ВСЕХ МОДУЛЯХ, а это пи... в общем, крайне нежелательно. (IMG:style_emoticons/kolobok_light/suicide2.gif)
В любом случае спасибо за совет... (IMG:style_emoticons/kolobok_light/declare.gif)


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

Белатрис

Во первых, какой вопрос - такой и ответ.
Во вторых, Aiwan уже написал, тебе тут никто ничего не должен.

По вопросу, eсли я правильно понял, то диалог игрок должен начать с одним из NPC, для этого, используй функцию: AssignCommand.
Т.е последняя строчка, будет выглядеть так:

NSS
ActionDoCommand(AssignCommand(Нужный NPC,  ActionStartConversation(oPC, "bandit1")));


Сообщение отредактировал Dik Morris - Jun 25 2006, 10:34
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 93 94 95 96 97 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th April 2025 - 20:38