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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 37 38 39 40 41 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Элендор
сообщение Feb 4 2005, 21:39
Сообщение #951


Level 8
***

Класс: Убийца
Характер: Chaotic Evil
Раса: Эльф
NWN: Маппинг



Доброе време суток вощем у меня к вам 1 прозьба...
Даите плз сылку на скрипт магазина( там где через некоторое време во време игры когда туда будет положена вещ она пропадает)... :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 4 2005, 23:30
Сообщение #952


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

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



QUOTE (Bregolas @ Feb 4 2005, 22:46)
я то как раз заметил, и спрашиваю, как поправить x0_i0_anims и в нем ли дело!

Править? Ручками... Либо взять старый и сделать импорт к себе. Думаешь все тебе расскажут что исправили? Ага... Они как то исправили работу с OBJECT_SELF в скриптах, так у нас рухнули все катсцены разом и прочие скрипты с задержкой на исполнение с OBJECT_SELF. Мы ж не идиоты, год все работало и вдруг сломалось :D Так то...
QUOTE (Bregolas @ Feb 4 2005, 22:46)
Я просто задал вопрос "можно ли". Я не спрашивал "править ли мне"

В вашх словах слышится раздрожение... Никоем образом не хотел задеть и прочее. И рекомендую с этим не баловать, народ тут вежливый и самолюбивый. Пара постов и ответы никто не напишет :drag:
Ну, я скажу так. Сделать мод на левел 3-5 и потом подобрать баланс на 9-14 переделав не меньше чем ты описываешь тоже не два байта перекачать. Я это все делал сам у себя и по несколько раз. То фракцию не ту, то скрипты не так расставлю, ДБ исправит и говорит, в те слоты то в те это... и такого я делал сто раз. Поэтому я знаю что такое переделать (ненавижу) посему и говорю.
QUOTE (Oksivarus @ Feb 5 2005, 00:11)
скажу что хочю, возможно я просто не могу пояснить (все проблемы людей в непонимании друг друга)

Вы совершенно правы мусье.
QUOTE (Oksivarus @ Feb 5 2005, 00:11)
Нужен скрипт для отдыха игрока (почьти стандартный) в котором проверяется наличие таких необходимых предметов - 1-бедрол, 2-дрова, 3-еда (причем еды может быть 10 видов и соответственно 10 различных тегов начинающихся на food.)
бедрол после сна возвращяется, дрова и найденная еда уничьтажаются

Так. Все просто как теория относительности.
Neverwinter Script Source
ExecuteScript("script_rest", oPC);

Но ты не уточняешь, сколько еды уничтожается и какой? У тебя полные сумки жратвы, нужна одного вида или нет? Можно три одинаковые? Логика хромает. Какая еда у тебя и как она уничтожается. Сколько ее надо и имся скрипта на отдых. И все.

Элендор поищи в базе скриптов. Был такой...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Oksivarus
сообщение Feb 5 2005, 00:30
Сообщение #953


Level 4
**

Класс: Волшебник
Характер: True Neutral
Раса: Полуэльф



возможно и просто но вот строчьку ExecuteScript("script_rest", oPC); я вообще не понимаю прост с такой функцие вообще не стыкался ниразу.

Еды 10 видов и соответственно 10 тегов. Уничьтожается сразу после соответствия на все проверки наличия предметов. По правилу вес съединой пищи должен быть 1/20 от жизни героя (вес прямо связан с тегом тобиш это можно отбросить из того что мне не понятно) но не меньше 1 шт. еды.
(вродеб правильно написал, хотя может и заблуждаюсь как это должно выглядет в конечьном виде).

Огромное спасибо кто удили мне свое внимание.
Добавлено в [mergetime]1107553110[/mergetime]
Количество еды в сумке определяется самим игроком тобиш может быть как 1 вида так и всех 10. Все 10 видов можно спокойно есть (условия на на проверку наличие пистицедов не требуется, и наложение дополнителльных побочьных эффектов как плохих так и хороших)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 5 2005, 01:42
Сообщение #954


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

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



QUOTE (Oksivarus @ Feb 5 2005, 03:30)
возможно и просто но вот строчьку ExecuteScript("script_rest", oPC); я вообще не понимаю прост с такой функцие вообще не стыкался ниразу.

Эта функция просто запускает скрипт с именем "script_rest" на объект РС. Тоесть, у тебя сработали все условия по проверке еды и дров, запускай скрипт отдыха. И усе, радуйся.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение Feb 5 2005, 04:07
Сообщение #955



Иконки Групп

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



QUOTE (Oksivarus @ Feb 5 2005, 00:30)
Еды 10 видов и соответственно 10 тегов

А кроме как кушать это еда нужна еще где-то? Почему не сделать одинаковые тэги? А вес проверять функцией
Neverwinter Script Source
int GetWeight(object oTarget=OBJECT_SELF)
Это решение данного вопроса. Если ты хочешь разобраться с самой сутью перебора вещей в по части тэга инвентори, то извини, что я ввязался.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Oksivarus
сообщение Feb 5 2005, 11:26
Сообщение #956


Level 4
**

Класс: Волшебник
Характер: True Neutral
Раса: Полуэльф



я извиняюсь (просто я немец так сказать :) ) и насколько я понял функцию GetWeight возвращяет вес предметов но это мне НЕ НУЖНО,я вес просто привязал к номеру (№1 - 1 кг .... №10 50 кг).
одинаковые теги нельзя так как на магазин я повесил удалитель одинаковых вещей в соответствии с чем при одинаковых тегах останется только 1 вид еды.
Еда используется 2 путями:
1- когда игрок просто отдыхает с востановлением всех сил (простое удаление из инвентаря)
2- использует как предмет и в соответстви с тем что скушал получяет некий бонус.

Так вот
QUOTE (Aiwan @ Feb 5 2005, 01:42)
Эта функция просто запускает скрипт с именем "script_rest" на объект РС. Тоесть, у тебя сработали все условия по проверке еды и дров, запускай скрипт отдыха. И усе, радуйся.


Как я уже говорил с этим вродеб разобрался за что вам огромное спасибо, НО как после перебора всех вещей в инвентаре и ненахождения необходимого застаивть сделать конкретное действие - сказать "у вас нет этого предмета". что в данной ситуации вернет функция - while (GetIsObjectValid(oItem))

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 5 2005, 12:04
Сообщение #957


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

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



QUOTE (Oksivarus @ Feb 5 2005, 14:26)
Как я уже говорил с этим вродеб разобрался за что вам огромное спасибо, НО как после перебора всех вещей в инвентаре и ненахождения необходимого застаивть сделать конкретное действие - сказать "у вас нет этого предмета". что в данной ситуации вернет функция - while (GetIsObjectValid(oItem))

Твой метод тянуть кота за хвост меня выбивает из колеи :D Коней на переправе не меняють :) Давай так, ты выложишь подробно ВСЕ свои УСЛОВИЯ что и как и теги, а мы тебе поможем. А ГЛАВНОЕ ЧТО ТЫ ОТ НЕГО (и нас :yes: ХОЧЕШЬ) Потаму как твой один скрипт с вопросами: "А вот если..." может перерасти в спам тему. Ждемс... :drag:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Oksivarus
сообщение Feb 5 2005, 14:16
Сообщение #958


Level 4
**

Класс: Волшебник
Характер: True Neutral
Раса: Полуэльф



Ок я у меня в скрипте написана следающяя строчька (перед этим разные условия на наличие предметов но все они с 1 тегом поэтому проблем в их поиске не возникает) Тянуть кота я не хочю честное слово.

if ((HasItem(oPC,"food_0")==TRUE)||(HasItem(oPC,"food_1")==TRUE)||(HasItem(oPC,"food_2")==TRUE)||(HasItem(oPC,"food_3")==TRUE)||(HasItem(oPC,"food_4")==TRUE)||(HasItem(oPC,"food_5")==TRUE)||(HasItem(oPC,"food_6")==TRUE)||(HasItem(oPC,"food_7")==TRUE)||(HasItem(oPC,"food_8")==TRUE)||(HasItem(oPC,"food_9")==TRUE)) //проверка на наличие еды
{
ExportSingleCharacter(oPC); //сохранения героя
// из того что посоветовали на форуме попытался сделать удаление
// первой найденной еды
while (GetIsObjectValid(oItem) == TRUE) // Лезем в сумку
{
if (sTag == "food") // Находим бутерброд
{
string oTag = GetTag(oItem);
DestroyObject(GetItemPossessedBy(oPC,oTag)); //съедаем еду
}
else
{
oItem = GetNextItemInInventory(oPC); // Смотрим дальше
}
}

как видно из всего первая строчька очень длинная при это если в инветаре много всего то выдается всем наверно известная фраза о переполнение.

Задачи скрипта: найти в инвентаре хоть 1 предмет с тегом food_0, food_1, ... , food_9 b и в случяе его отсутствия выполнть действие №1. Если же предмет такой присутствует то удалить этот предмет и запустить действие №2.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Oksivarus
сообщение Feb 5 2005, 20:59
Сообщение #959


Level 4
**

Класс: Волшебник
Характер: True Neutral
Раса: Полуэльф



Чтоб не тянуть кота за хвост выложу сразу получившийся скрипт.
Проблема - не могу удалить найденную благодаря вам еду. Для удаления использую функцию DestroyObject() пробывал запихнуть туда как обьект так и тег обьекта на оба варианта выдает сообщение ПРЕМЕННАЯ, ОПРЕДЕЛЕННАЯ БЕЗ ТИПА; на любую из этих строчек:

DestroyObject(GetItemPossessedBy(oPC,sGorging)); //udalenie edy
DestroyObject(oMeal); //udalenie edy

вот весь скрипт (если поможет и чтоб кота не тянуть за хвоста):

//:://////////////////////////////////////////////

void PlaceBedroll(object oPC)
{
location lLoc = GetLocation(oPC);
CreateObject(OBJECT_TYPE_PLACEABLE,"bedrolls001",lLoc,FALSE);
DestroyObject(GetItemPossessedBy(oPC,"bedroll"));
object oMyRoll = GetNearestObjectByTag("MyBedRoll",oPC);

location lRoll = GetLocation(oMyRoll);
AssignCommand(oPC,ActionMoveToLocation(lRoll,FALSE));
AssignCommand(oPC,ActionDoCommand(SetFacing(GetFacing(oMyRoll))));
}

void PickupBedroll(object oPC)
{
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW,1.0,2.0f));
CreateItemOnObject("bedroll",oPC);
DestroyObject(GetNearestObjectByTag("MyBedRoll",oPC),1.0f);
}

#include "nw_i0_plot"
void main()
{
object oPC = GetLastPCRested();
ExportSingleCharacter(oPC);
SetLocalInt(oPC, "PCDead", 0);
string sRealApp = "realApp";
int nRealMe = GetLocalInt(oPC, sRealApp);
object oItem = GetFirstItemInInventory(oPC);
int iFood = 0;

while (GetIsObjectValid(oItem) && GetStringLeft(GetTag(oItem), 4) == "food"&&iFood==0)
{
int iFood = 1;
string sGorging = ObjectToString(oItem);
object oMeal = GetObjectByTag(sGorging);
{
}
oItem = GetNextItemInInventory(oPC);
}

if (!GetIsPC(oPC)) return;

if(nRealMe>0)
{
SetCreatureAppearanceType(oPC, nRealMe - 1);
}

if (GetLastRestEventType()== REST_EVENTTYPE_REST_STARTED && HasItem(oPC,"bedroll")&& (iFood==1))
{
SetLocalInt(oPC, "bedroll", 1);

DestroyObject(GetItemPossessedBy(oPC,sGorging)); //udalenie edy
DestroyObject(oMeal); //udalenie edy

FloatingTextStringOnCreature("Porridge is good, only it is not enough meat", oPC);

PlaceBedroll(oPC);
effect eBlind = EffectBlindness();
DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_SLEEP), oPC));
}
else
{
if (HasItem(oPC,"bedroll"))
{
FloatingTextStringOnCreature("пожевать бы что то ..", oPC);
}
else
{
FloatingTextStringOnCreature("не, на сырой земле хреново спать", oPC);
}
//Remove blindness from the PC
effect eLoop=GetFirstEffect(oPC);
while (GetIsEffectValid(eLoop))
{
if (GetEffectType(eLoop)==EFFECT_TYPE_BLINDNESS)
RemoveEffect(oPC, eLoop);
eLoop=GetNextEffect(oPC);
}
AssignCommand(oPC, ClearAllActions());
}

if (GetLastRestEventType()== REST_EVENTTYPE_REST_CANCELLED && GetLocalInt(oPC,"bedroll")==1)
{
//Remove blindness from the PC
effect eLoop=GetFirstEffect(oPC);
while (GetIsEffectValid(eLoop))
{
if (GetEffectType(eLoop)==EFFECT_TYPE_BLINDNESS)
RemoveEffect(oPC, eLoop);
eLoop=GetNextEffect(oPC);
}

PickupBedroll(oPC);
SetLocalInt(oPC, "bedroll", 0);
}

if (GetLastRestEventType()== REST_EVENTTYPE_REST_FINISHED && GetLocalInt(oPC,"bedroll")==1)
{
//Remove blindness from the PC
effect eLoop=GetFirstEffect(oPC);
while (GetIsEffectValid(eLoop))
{
if (GetEffectType(eLoop)==EFFECT_TYPE_BLINDNESS)
RemoveEffect(oPC, eLoop);
eLoop=GetNextEffect(oPC);
}

PickupBedroll(oPC);
SetLocalInt(oPC, "bedroll", 0);
}

}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 5 2005, 21:04
Сообщение #960


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

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



Oksivarus у тебя будет два скрипта, в одном проверишь, в другом удалишь. Все работает я проверял.
Первый основной скрипт. Вешай хоть куды, главное РС правильно опиши.
Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject(); // Сам опишешь его правильно
    object oItem = GetFirstItemInInventory(oPC);
    string sFood = "food_";
    SetLocalInt(oPC, "FOOD", FALSE); // Локалка контроль за едой
    SetLocalInt(oPC, "DELEY", FALSE); // Локалка контроль за удалением
    {
    while(GetIsObjectValid(oItem))
        {
          if ((GetStringLeft(GetTag(oItem), 5)== sFood))
            {
            SetLocalInt(oPC, "FOOD", (GetLocalInt(oPC, "FOOD") + 1));
            FloatingTextStringOnCreature("Одын", oPC);
            ActionWait(0.3); // ставь задержку иначе проскользнут локалки
            }
          oItem = GetNextItemInInventory(oPC);
        }
        DelayCommand(2.0, ExecuteScript("am_temp_05", oPC));
        // Скрипт твоего отдыха запускай с задержкой, так как сумку надо потрошить долго...
        }
}


Второй скрипт запускай с задержкой. Мой назывался "am_temp_05" свой назовешь и пропишешь вверху.
Neverwinter Script Source
void main()
{
    object oPC = GetFirstPC();
    string sFood = "food_";
    int iFood = GetLocalInt(oPC, "FOOD");
    SetLocalInt(oPC, "DELEY", FALSE);
    int i = 2; // Сколько еды надо забрать. Это число + 1
    if (GetIsPC(oPC) && iFood > 2)
            {
              object oItem = GetFirstItemInInventory(oPC);
              while(GetIsObjectValid(oItem))
                {
                if (GetStringLeft(GetTag(oItem), 5)== sFood && GetLocalInt(oPC, "DELEY") <= i)
                    {
                    DestroyObject(oItem);
                    SetLocalInt(oPC, "DELEY", (GetLocalInt(oPC, "DELEY") + 1));
                    ActionWait(0.3);
                    FloatingTextStringOnCreature("Забираем "+IntToString(GetLocalInt(oPC, "DELEY")),  oPC);
                    }
                oItem = GetNextItemInInventory(oPC);
                }
            //:://///////////////////////////////////////////////
            /*
              Сюда впиши то что должно произойтьи когда дестроишь три предмета
              */

            //:://///////////////////////////////////////////////
            FloatingTextStringOnCreature("Работает!!!", oPC);
            return;
            }
    //:://///////////////////////////////////////////////
    /*
      Сюда впиши то что должно произойтьи когда нехватает еды
    */

    //:://///////////////////////////////////////////////
    FloatingTextStringOnCreature("У вас всего "+IntToString(iFood)+" единиц еды!",  oPC);
    FloatingTextStringOnCreature("Маловато!", oPC);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Oksivarus
сообщение Feb 5 2005, 23:35
Сообщение #961


Level 4
**

Класс: Волшебник
Характер: True Neutral
Раса: Полуэльф



огромное спасибо, буду дальше пробывать.
Aiwan: Давай, работай! ;)

Сообщение отредактировал Aiwan - Feb 6 2005, 00:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Oksivarus
сообщение Feb 6 2005, 17:17
Сообщение #962


Level 4
**

Класс: Волшебник
Характер: True Neutral
Раса: Полуэльф



Вобщем промучялся вчерашний день и всю ночь и так и не смог заставить скрипт удалять предметы при заднаии на удаление функцией DestroyObject(oItem); удаляет только если прямо указать тег обьекта.
ЧТО касается остального то спасибо работает хотя я всетаки обьеденил 2 скрипта в 1 (просто что 2 что 1 никаких отличий в его работе).
Скрипт польностью рабочий хотя сократить его так и не удалось(за основу взял твой Aiwan скрипт на отдых но без проверки на костер). Если хотете могу выложить правда незнаю куда его сюда или в раздел скриптов.

P.S. ВСЕМ КТО помогал ОГРОМНОЕ СПАСИБО без вас небылоб его !!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 6 2005, 18:59
Сообщение #963


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

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



QUOTE (Oksivarus @ Feb 6 2005, 20:17)
Вобщем промучялся вчерашний день и всю ночь и так и не смог заставить скрипт удалять предметы при заднаии на удаление функцией DestroyObject(oItem); удаляет только если прямо указать тег обьекта.

Что то я не понял. В моем коде? Если да, то так и будет, так как ты объеденил их в один. Разъедини и будет удалять, у меян же удаляет! Я ПРОВЕРЯЛ И ТЕСТИЛ СПЕЦИАЛЬНО В МОДЕ.
Скрипт кидай сюда, вылижим и повесишь в базу готовый безглючный вариант с описаловом. Только скрипт сделай в nss кнопке.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 6 2005, 20:06
Сообщение #964


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Привет всем! Я новичок на этом форуме, так что, если что-то не то ляпну, то поправте.
Я понимаю, что у всех полно дел, но немог бы кто-нибудь помочь мне со скриптами разобраться? :swoon:

Я ни как не пойму как написать такой скрипт:
К примеру эльф дает тебе задание убить гнома, ты его убиваешь.......
А вот дальше и загвостка.... Как сделать так, чтобы после смерти гнома у эльфа появилась строчка в диалоге: "Я убил гнома".

ПОЖАЛУЙСТА помогите кто может! :xz:

Сообщение отредактировал Archangel - Feb 6 2005, 20:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
MasterMage
сообщение Feb 6 2005, 21:11
Сообщение #965


Level 8
***

Класс: Маг
Характер: Lawful Good
Раса: Полуэльф



Ставишь локальную переменную на слот OnDeath NPCа...
Neverwinter Script Source
SetLocalInt(GetLastKiller(),"Kill",1);


Затем в диалоге на строку "текст появляется при" ставишь такое
Neverwinter Script Source
return(GetLocalInt(GetPCSpeaker(),"Kill")==1);

вуаля, строчка диалога не появится, пока не выполнишь условие :BRAVO:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 6 2005, 21:13
Сообщение #966


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Спасибо MasterMage! Очень помог! :D
<small>Добавлено в 21:22</small>

Еще два вопроса по поводу скриптов:

1) Можно ли сделать такой скрипт: когда игрок надевает кольцо (амулет) он превращался в вампира.
2) Можно ли сделать так, чтобы стало возможно говорить со статуей? Или другим неодушевленным предметом....

Пожалуйста уделите пару минут внимания геймеру, нифурычущему в скриптах.... :vava:

Сообщение отредактировал Archangel - Feb 6 2005, 21:23
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Feb 6 2005, 22:59
Сообщение #967


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



1. на OnPlayerEquipItem модуля...
Это, вроде самый простой и незамысловатый способ...
Neverwinter Script Source
void main()
{
object oPC = GetPCItemLastEquippedBy();
object oItem = GetPCItemLastEquipped();
string sTag = GetTag(oItem);

if (sTag == "VampireRing") //ВСТАВЬ НУЖНЫЙ ТЭГ
{
  int nPlm;
  if (GetGender(oPC) == GENDER_FEMALE)
  { nPlm = POLYMORPH_TYPE_VAMPIRE_FEMALE; }
  else
  { nPlm = POLYMORPH_TYPE_VAMPIRE_MALE; }
  effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
  effect ePlm = EffectPolymorph(nPlm);
  ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
  DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePlm, oPC));
}
}

на unEquip эффект снимай
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 6 2005, 23:02
Сообщение #968


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

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



1. Нельзя насовсем превратить игрока в вампира.
2. Добавь объекту диалог и на OnUsed объекта поставь скрипт:
Neverwinter Script Source
void main()
{
    ActionStartConversation(GetLastUsedBy());
}

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 7 2005, 11:36
Сообщение #969


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Угу, понял насщет разговора со статуей. СПАСИБО......... :good:
А вот насщет превращения в вампа хотел бы уточнить:)
Мне и ненадо чтобы игрок навсегда стал вампиром! Я хочу сделать так: одел колечко-стал вампом, снял-стал самим собой...
Если знаешь такой скрипт, то пажалуйста напиши......... :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
K.SpecTr
сообщение Feb 7 2005, 12:08
Сообщение #970


Level 10
***

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



Нужно, чтобы действие одного скрипта прекращалось по возврату другого скрипта, т.е. есть действия с задержкой и надо их отменить, если что-то произошло в другом скрипте.
Пока сделал следующим образом:
Neverwinter Script Source
...
DelayCommand(30.0, ExecuteScript("cus_inc_02", oTarget));

, где в cus_inc_02 стоит проверка:
Neverwinter Script Source
if (GetLocalInt(oTarget,"iIntervene")==1) {return;}
... //Выполняемые после задержки действия

Ну и собственно третий скрипт, который и организует прерывание, устанавливая переменную iIntervene в 1.
Вопрос, можно ли обойтись без промежуточного скрипта cus_inc_02 ?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Feb 7 2005, 12:23
Сообщение #971


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

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



QUOTE (Archangel @ Feb 7 2005, 10:36)
Мне и ненадо чтобы игрок навсегда стал вампиром! Я хочу сделать так: одел колечко-стал вампом, снял-стал самим собой... Если знаешь такой скрипт, то пажалуйста напиши.........

Не в скрипте дело. Для этого, представь себе, надо создать и описать ПОЛНОСТЬЮ все вампирские бонусы, создать спец-умения, фиты, скиллы... Да просто дофига работы НЕ ДЛЯ НОВИЧКА. Так что, я бы посоветовал тебе пока порешать проблемы более тривиальные. То есть научиться прежде всего работать с самими скриптами.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 7 2005, 12:25
Сообщение #972


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Все понял. Забиваю на это дело. :drag:
Люди! У меня опять косяки со скриптами! :bad:
Вот мой злаполучный скрипт (он вырван из HofU):

//::///////////////////////////////////////////////
//:: Name: cut20_start
//:: Copyright © 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Opening cutscene script for the main PC -
teleport any new PCs to the players room in
the Yawning Portal
*/
//:://////////////////////////////////////////////
//:: Created By: Brad Prince
//:: Created On: Dec 17, 2002
//:://////////////////////////////////////////////
#include "x2_inc_cutscene"
void StartCutscene(object oPC);
void MultiJump(object oPC, string sWay);
void DrawSpider(int nCutscene, object oPC, int iBeam, float fDur);
void PlayMusic(int nCutscene, object oPC);
void SetShift(int nCutscene, object oPC, float fShift);
void CutSound(int nCutscene, object oSound);

int nCutsceneNumber = 20;

void main()
{
..........DBColl: Ты чего это, обалдел так ср.. флудить скриптом?! Сценки вообще надо писать самому, а не затачивать чужие под свои.
}

А загвостка-то вот в чем:
КАК ЗАСТАВИТЬ NPC`ов говорить то, что хочу я? Помогите кто может.......... :xz:

<small>Добавлено в 12:30</small>

Сообщение отредактировал DBColl - Feb 7 2005, 13:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Oksivarus
сообщение Feb 7 2005, 13:25
Сообщение #973


Level 4
**

Класс: Волшебник
Характер: True Neutral
Раса: Полуэльф



Aiwan - скриптец я выложу но чуть посже на сладующюя страницу.
А что касается именно твоих 2 скриптом то повторюсь - я их пробывал юзать как отдельно каждый (запускается 1 который вызывает 2) так и 1 общий.
Возник вопрос в соответствии с твоим утверждением о его работоспособности - ты тестил с крипты в сингле ??? Я проверял его работу на шарде вот что он сообщал приналичии в рюкзаке 3шт любой еды (я дополнил строчьку чтоб говорила переменную FOOD)

отдых начят
одын 1
одын 2
одын 3
потерян предмет бедрол
одын 1
одын 2
одын 3
получен предмет бедрол
отдых закончен

ни о каком удалении предметов с нужными тегами (food_1, food_2, food_3) речи вообще не идет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Feb 7 2005, 14:14
Сообщение #974


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

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



Neverwinter Script Source
void main()
{
    object oPC = OBJECT_SELF// ВОТ ЭТО ДОЛЖНО ПОМОЧЬ!
    string sFood = "food_";
    int iFood = GetLocalInt(oPC, "FOOD");
    SetLocalInt(oPC, "DELEY", FALSE);
    int i = 2; // Сколько еды надо забрать. Это число + 1
    if (GetIsPC(oPC) && iFood > 2)
            {
              object oItem = GetFirstItemInInventory(oPC);
              while(GetIsObjectValid(oItem))
                {
                if (GetStringLeft(GetTag(oItem), 5)== sFood && GetLocalInt(oPC, "DELEY") <= i)
                    {
                    DestroyObject(oItem);
                    SetLocalInt(oPC, "DELEY", (GetLocalInt(oPC, "DELEY") + 1));
                    ActionWait(0.3);
                    FloatingTextStringOnCreature("Забираем "+IntToString(GetLocalInt(oPC, "DELEY")),  oPC);
                    }
                oItem = GetNextItemInInventory(oPC);
                }
            //:://///////////////////////////////////////////////
            /*
              Сюда впиши то что должно произойтьи когда дестроишь три предмета
              */

            //:://///////////////////////////////////////////////
            FloatingTextStringOnCreature("Работает!!!", oPC);
            return;
            }
    //:://///////////////////////////////////////////////
    /*
      Сюда впиши то что должно произойтьи когда нехватает еды
    */

    //:://///////////////////////////////////////////////
    FloatingTextStringOnCreature("У вас всего "+IntToString(iFood)+" единиц еды!",  oPC);
    FloatingTextStringOnCreature("Маловато!", oPC);
}


Oksivarus, попробуй так.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 7 2005, 15:55
Сообщение #975


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Ну блин.... Я ж не знал. :xz:

А тогда не подскажете как написать скрипты, которые можно было бы вставить в разговор и которые давали + или - к направленности героя или скрипт, который прибавлял какую-нибудь хар-ку (например сила+2)?


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 37 38 39 40 41 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 18th April 2024 - 19:14