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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
135 страниц V  « < 27 28 29 30 31 > »   
Ответить в эту темуОткрыть новую тему
> ОДИНОЧНЫЙ ВОПРОС, на любую тулсетовскую тему
Batkom
сообщение Jul 23 2005, 04:35
Сообщение #686


Level 4
**

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



Эмм....может я чего то не до конца понимаю, везде, где я использую локальные переменные или "базы данных" а ля SetCampaigin[впиши недостающее], они прилично проглюкивают, гдето не считываются, или не записываются... хз, я логически размышляя пришел к выводу, что эти функции должны сохранять то, что тебе нужно, вроде сохраняют, но далеко не всегда.
Расскажите пожалуйста об этом как можно поподробнее и как могут себя повести вункции установки переменных и работы с базами данных с тех или иных случаях.

З.Ы. у меня он лайн модуль, потому нужно какое то сохранение некоторых данных.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wolverine
сообщение Jul 23 2005, 10:30
Сообщение #687


Level 1


Класс: Бард
Характер: Neutral Evil
Раса: Полуэльф



Многоуважаемое комьюнити :) Возник на досуге вопрос животрепещущий. Как отключить меню крафта (изменения вида вещей) в кастомном модуле ? Т.к. хочется все таки уникальность вида вещей сделать, а то иначе все будут либо в мантия бегать , либо доспехи рыцарские одевать.
Зарание большое сенкс.

С уважением , Wolv
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 23 2005, 14:37
Сообщение #688


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

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



wolverine очень просто, находишь диалог "x0_skill_ctrap", и либо удаляешь его, оставляя пустым, либо добавляешь новый раздел диалога, например "Крафт отключен". Теперь при попытке активации всегда будет выводиться эта фраза.

Batkom ты их постоянно что ли используешь? Дело в том, что эти функции нужны 1 раз. Они создают запись в файл базы, а дальше ты уже просто изменяешь ее содержимое. Т.е., тебе надо создать уникальный файл, куда записать переменную, а потом ее изменять, но не создавать каждый раз файл заново.

Например, входит на шард первый раз игрок, ему присуждается номер, который сохраняется в уже существующий файл базы данных. Далее, когда он перезайдет, этот номер просто считается, а не создастся новый номер на одного и того же персонажа.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jul 23 2005, 14:55
Сообщение #689


Level 4
**

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



ну допустим крафт
сначала считывается навык игрока
а = GetCampaignInt("craft", "Weapon" + GetName(oPC))
если ничего такого нет, то помоему а = 0
а далее при удачных обстоятельствах навык может прокачаться тогда

SetCampaignInt("craft", "Weapon" + GetName(oPC), a+1)

Zirrex
я тебя не совсем понял, у меня не получилось с установкой флажка смерти игроку и дальнейшей телепортации в фугу при заходе
игрок либо все время варпалсяв фугу при любом положении флажка, либо вообще оставался стоять на месте
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 23 2005, 15:24
Сообщение #690


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

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



Batkom это лишь говорит о том, что у тебя флажок не изменяется. Т.е., если у тебя персонаж воскрес, то флажок должен стать равным нулю, и не иначе. Если у тебя он не записался при этом в базу, значит что-то не так делаешь.

Например, как у меня, при входе серия скриптов, там идет проверка, был ли воскрешен персонаж, определенные цифры одной переменной, если нет, то дальше идет проверка, если персонаж жив, соответствующая цифра переменной равная нулю, то дополнительная проверка, а верно ли, что он жив, и тут вступает в силу еще одна переменная, если она равна 1, то персонаж умирает и переносится в фугу, а его труп размещается на кладбище, чтобы могли воскресить другие игроки. Переменная, которая отвечает за проверку, жив или мертв персонаж, у меня сохраняется на предмет, который постоянно носит с собой каждый из персонажей, и соответственно не затирается с рестартом.

Функция SetCampaignInt у меня сработала 1 раз, когда только персонаж создавался, потом она уже не используется, а все значения берутся с предмета. Конечно, если ты не хочешь смешивать переменные в одном месте, то создавай разные базы.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jul 23 2005, 17:38
Сообщение #691


Level 4
**

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



то есть SetCampaign лучге не пользоваться?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 23 2005, 20:13
Сообщение #692


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

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



Batkom нет, его использовать можно, но верно, а не работать как с переменной, которую надо часто перезаписывать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Larrel
сообщение Jul 24 2005, 21:47
Сообщение #693


Level 1


Класс: Убийца
Характер: Neutral Evil
Раса: Человек



Какой скрипт нужно юзать, чтобы переместить НПС по окончании диалога к конкретному вэйпоинту и обратно?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nick Parker
сообщение Jul 25 2005, 02:49
Сообщение #694


Level 5
**

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



Меня стал мучить один вопрос. Можно сделать так, чтобы играть в модуле можно было только за одну рассу? В ПЛ, если уровень больше был, то Game Over, тут наверное также: если не человек, то GoodBye. Но как это сделать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение Jul 25 2005, 04:21
Сообщение #695



Иконки Групп

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



QUOTE (Larrel @ Jul 24 2005, 22:47)
Какой скрипт нужно юзать, чтобы переместить НПС по окончании диалога к конкретному вэйпоинту и обратно?

Это обсуждалось по отдельности уже немерено раз. Смотри FAQ по Aurora Toolset Вопросы и ответы и читай темы "Скрипты" и "Вопросов новичков"
На последней ветке диалога, во вкладке "Action Taken" (Совершены действия) пишешь скрипт:
Neverwinter Script Source
void main()
{
object oPC=GetPCSpeaker();
object oWP=GetObjectByTag("TAG_WP");
location lCurrent=GetLocation(oPC);
AssignCommand(oPC, ActionJumpToObject(oWP));
AssignCommand(oPC, ActionWait(5.0));
AssignCommand(oPC, ActionJumpToLocation(lCurrent));
}

Это к вейпу и через пять сек обратно. Естественно, должен существовать вейп с тагом: TAG_WP

QUOTE (Nick Parker @ Jul 25 2005, 03:49)
Меня стал мучить один вопрос. Можно сделать так, чтобы играть в модуле можно было только за одну рассу? В ПЛ, если уровень больше был, то Game Over, тут наверное также: если не человек, то GoodBye. Но как это сделать?

Дык, на OnClientEnter ставишь проверку на расу...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Jul 26 2005, 09:03
Сообщение #696


Level 7
**

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



Помогите, если это возможно!! :shout: Можно ли свернуть окно скрипта... Я понимаю это глупый вопрос, но просто так мешает когда не можешь свернуть окно скрипта и разместить что нить в локе, посмотреть тег и т.д. :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Jul 26 2005, 13:02
Сообщение #697


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Дракон



Здрасьте, это снова Я! Посидел я пару деньков, (ВЫРЕЗАНО ЦЕНЗУРОЙ), и возникла у меня вопросов куча немеряная:

1. У меня установлены Тени и Орды. Как можно сделать, чтобы в моем модуле перс не мог создавать оружие, броню, зелья и свитки из материалов?

2. Как сделать, чтобы непись утром выходил из дома, а но ночь возвращался в дом и закрывал дверь?

3. Как предмету присваивается уникальная сила?
НАПРИМЕР:
а) нужно, чтобы при использовании уникальной силы предмета игрок получал один из трех предметов случайным образом? (Сила используется 1 раз в день)
Пусть тег предмета с уникальной силой: UN, Рес реф : un

теги получаемых предметов: ITEM1 , ITEM2, ITEM3
Рес реф-ы :item1, item2 ,item3



б) нужно, чтобы три раза можно было вызвать существо. (после чего предмет исчезает)

Пусть тег предмета с уникальной силой : UN , рес реф: un

тег существа : CREATURE

ОЧЕНЬ ПРОШУ, ОБЪЯСНИТЕ ПОДРОБНО. :crazy:
Добавлено в [mergetime]1122372681[/mergetime]
ишо пара глупостей: как сделать, чтобы при наличии в инвентаре перса определённого предмета время от времени происходило что - то?

ПОЯСНЯЮ: например, если у перса в инвентаре есть предмет с ТЕГОМ: ITEM и рес реф-ом :item , ето каждый день в его инвентаре появляется один предмет с тегом: PREDMRT и рес реф-ом :predmet

это еще не всё!

как сделать, чтобы предмет, если он экиперован, нельзя было снять, пока lokal int A=1
пример: кольцо имеет тег :RING и рес реф ring
Добавлено в [mergetime]1122383052[/mergetime]
Аваддону

QUOTE
zmey надо править baseitems.2da там есть столбец отвечающий за кол-во иконок.


уже нашёл. Но за помощь - спасибо! :crazy:
Добавлено в [mergetime]1122387559[/mergetime]
..............
нужон скрипт, при котором если НЕПИСЬ отойдет от объекта на определённое расстояние, то подохнет. Поделитесь, ежели не жалко! :crazy:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vitalist
сообщение Jul 26 2005, 21:04
Сообщение #698


Level 4
**

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



Обьясните, плиз, шаг за шагом, как создать триггер, при прохождение которого перс скажет нужную мне фразу?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 26 2005, 22:43
Сообщение #699


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

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



zmey краткие ответы:

1. Самое простое, запретить все. С крафтом просто, удаляется диалог "x0_skill_ctrap" или дописывается еще одна ветка диалога, где пишется, что "крафт выключен", чтобы избежать вопросов. Не создавать материалы при убийстве монстров, убрав строчку " craft_drop_items(oKiller);". Посмотреть файл "nw_o2_coninclude" и убрать из генерации вещей пустые листки для заклинаний.

2. Посмотри скрипт "nw_c2_default9", там все написано.

3. На модульном эвенте "OnActivateItem" делаешь такой скрипт:

а)
Neverwinter Script Source
void main()
{
    object oItem = GetItemActivated();
    object oPC = GetItemActivator();
    string sItemTag = GetTag(oItem);

    if ((sItemTag == "un"))
    {
        if (GetLocalInt(oPC, "UnDay") == FALSE)
        {
            int iRandom = d2() + 1;
            float fHour = HoursToSeconds(24);

            switch (iRandom)
            {
                case 1: CreateItemOnObject("item_1", oPC); break;
                case 2: CreateItemOnObject("item_2", oPC); break;
                case 3: CreateItemOnObject("item_3", oPC); break;
            }
            SetLocalInt(oPC, "UnDay", TRUE);
            DelayCommand(fHour, SetLocalInt(oPC, "UnDay", FALSE));
        }
    }
}

Уникальную силу надо делать на себя.

б) В свойствах каждой вещи добавляешь требуемое заклинание, и устанавливаешь, сколько раз можно использовать вещь. Ставишь не больше 3-х раз.

4. Ставишь на эвент модуля "OnHeartbeat" сей скрипт:

Neverwinter Script Source
void main()
{
    object oPlayer = GetFirstPC();

    while (GetIsObjectValid(oPlayer))
    {
        if (GetLocalInt(oPlayer, "ItemDay") == FALSE)
        {
            if (GetItemPossessedBy(oPlayer, "item1") != OBJECT_INVALID &&
                GetItemPossessedBy(oPlayer, "item2") == OBJECT_INVALID)
            {
                CreateItemOnObject("item2", oPlayer);
                SetLocalInt(oPlayer, "ItemDay", TRUE);
                DelayCommand(fHour, SetLocalInt(oPlayer, "ItemDay", FALSE));
            }
        }
        oPlayer = GetNextPC();
    }
}


5. На эвентах модуля "OnPlayerUnEquipItem" и "OnUnAcquireItem" делаешь такие скрипты:

На эвент "OnUnAcquireItem":

Neverwinter Script Source
void main()
{
    object oItem = GetModuleItemLost();
    object oPC = GetModuleItemLostBy();

    if (GetTag(oItem) == "ring")
    {
        CopyObject(oItem, GetLocation(oPC), oPC);
        DestroyObject(oItem);
        AssignCommand(oPC, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTRING));
    }
}

На эвент "OnPlayerUnEquipItem":

Neverwinter Script Source
void main()
{
    object oPC = GetPCItemLastUnequippedBy();
    object oItem = GetPCItemLastUnequipped();

    if (GetTag(oItem) == "ring")
    {
        AssignCommand(oPC, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTRING));
    }
}


6. На хартбите НПС делаешь проверку:

Neverwinter Script Source
void main()
{
    object oPlace = GetNearestObjectByTag("place");

    if (GetDistanceBetween(OBJECT_SELF, oPlace) > 1.0)
    {
        effect eDeath = EffectDeath(FALSE, FALSE);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, OBJECT_SELF);
    }
}

Надеюсь, не ошибся. Сам не проверял, но по идее должно работать. Требует проверки.

Vitalist, самое простое, создать триггер, на его эвенте "OnEnter" повесить такой скрипт:

Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();

    if (GetIsPC()
    {
        if (GetLocalInt(oMod, "Trigger") == FALSE)
        {
            SetLocalInt(oMod, "Trigger", TRUE);
        }
    }
}

Далее, на хартбите НПС сделать такой скрипт:

Neverwinter Script Source
void main()
{
    if (GetLocalInt(oMod, "Trigger") == TRUE)
    {
        AssignCommand(OBJECT_SELF, ActionSpeakString("Сообщение НПС", TALKVOLUME_TALK));
        SetLocalInt(oMod, "Trigger", FALSE);
    }
}


Сообщение отредактировал Zirrex - Jul 26 2005, 22:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vitalist
сообщение Jul 27 2005, 09:16
Сообщение #700


Level 4
**

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



Zirrex, как я понял, эту фразу скажет NPC, да? А мне хотелось бы что бы это вякнул игрок, типа мысли вслух...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 27 2005, 14:22
Сообщение #701


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

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



Vitalist!
Вот скорее всего то что ты хотел: игрок наступает на триггер и говорит фразу.
Рисуешь триггер
На onEnter ставишь этот скриптик:
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();

if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") == 1)
return;
SetLocalInt(OBJECT_SELF,"TRIGGER",1);

AssignCommand(oPC, ActionSpeakString("Фраза Игрока"));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 27 2005, 14:38
Сообщение #702


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

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



QUOTE (DEM @ Jul 26 2005, 09:03)
Помогите, если это возможно!! shout.gif Можно ли свернуть окно скрипта... Я понимаю это глупый вопрос, но просто так мешает когда не можешь свернуть окно скрипта и разместить что нить в локе, посмотреть тег и т.д. swoon.gif

Сделать такое с окнами можно будет во втором Тулсете!

QUOTE (Vitalist @ Jul 27 2005, 09:16)
Zirrex, как я понял, эту фразу скажет NPC, да? А мне хотелось бы что бы это вякнул игрок, типа мысли вслух...

Тут и говорит игрок.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 27 2005, 15:22
Сообщение #703


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

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



Vitalist вот простой скрипт не в ХоТУ скриптинге. Типа работает со старыми аддонами. Начерти на земле и имя триггера - фраза.
Neverwinter Script Source
//:://////////////////////////////////////////////
//:: OnEnter  am_ten_speak_pc
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
  Текст над РС  KeyTag - Количество раз
            Если 0, то бесконечно
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Original idea By: DBColl
//:: Created On: 21.04.2005
//:://////////////////////////////////////////////
void main()
{
object oPC = GetEnteringObject();
object oTrig = OBJECT_SELF;
string sSpeak = GetName(OBJECT_SELF);
int i = StringToInt(GetLockKeyTag(oTrig));
int iSp = GetLocalInt(oTrig, "SPEAK");
  if (!GetIsPC(oPC) || iSp >= i && i!=0)
    {
    return;
      }
      AssignCommand(oPC, SpeakString(sSpeak));
      if (i!=0)
      {
      SetLocalInt(oTrig, "SPEAK", (iSp+1));
      }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vitalist
сообщение Jul 27 2005, 18:15
Сообщение #704


Level 4
**

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



Спасибо всем! А скажите пожалуйста, у меня у одного тулсет в пиратке глючит: скрипты на русском идут (например, вместо Give the speaker some gold - дать говорящему денег)?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 27 2005, 18:24
Сообщение #705


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

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



Ты хотел сказать что скрипты НЕ идут, сделанные в визарде? Если да тогда удали русские комментарии все заработает :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vitalist
сообщение Jul 27 2005, 19:38
Сообщение #706


Level 4
**

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



А как это сделать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 27 2005, 19:43
Сообщение #707


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

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



Блин ты, что совсем нечего не понял, или шутишь?! :crazy:
Ну а если серьезно то комментариями в скрипте считаются, вот такой знак // и все что стоит за ним ( Это выделяется зеленым цветом) Удали и все должно заработать...
З.Ы: ОБЯЗАТЕЛЬНО качай мануал Айвана, для новичков КЛАД!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jul 27 2005, 21:11
Сообщение #708


Level 4
**

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



или поставь патч dumbo, замечательная вещь, и как я без нее работал :rolleyes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 27 2005, 21:56
Сообщение #709


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

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



Ребят, вы издеваетесь над ним что ли? Вообще-то все комментарии в скриптах исходят прямиком из файла dialog.tlk. Как я понял, он переведенный полностью, поэтому редактор и все комментарии, а также все остальное на русском языке. Даю совет, не используйте русскую версию игры.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jul 28 2005, 02:06
Сообщение #710


Level 4
**

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



я использую и никаких проблем, все замечательно работает, только вот версия перевода старая и для кнопочки RunTest(помоему эта фича в 1.66 добавилась) ничего не написано)
Добавлено в [mergetime]1122505794[/mergetime]
Вопрс, можно ли открыть диалог от одного игрока другому?, допустим игрок на игрока-цель итем юзает, а зетм цели открывается диалог как бы от имени активатора, и как это примерно будет выглядеть? Если убого, придется от этого отказаться и открывать для таргета как всегда диалог сам с собой
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

135 страниц V  « < 27 28 29 30 31 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 9th July 2025 - 19:24