![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#951
|
|
Level 8 ![]() ![]() ![]() Класс: Убийца Характер: Chaotic Evil Раса: Эльф NWN: Маппинг ![]() |
Доброе време суток вощем у меня к вам 1 прозьба...
Даите плз сылку на скрипт магазина( там где через некоторое време во време игры когда туда будет положена вещ она пропадает)... :unsure: |
![]()
Сообщение
#952
|
|||||||||||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Править? Ручками... Либо взять старый и сделать импорт к себе. Думаешь все тебе расскажут что исправили? Ага... Они как то исправили работу с OBJECT_SELF в скриптах, так у нас рухнули все катсцены разом и прочие скрипты с задержкой на исполнение с OBJECT_SELF. Мы ж не идиоты, год все работало и вдруг сломалось :D Так то...
В вашх словах слышится раздрожение... Никоем образом не хотел задеть и прочее. И рекомендую с этим не баловать, народ тут вежливый и самолюбивый. Пара постов и ответы никто не напишет :drag: Ну, я скажу так. Сделать мод на левел 3-5 и потом подобрать баланс на 9-14 переделав не меньше чем ты описываешь тоже не два байта перекачать. Я это все делал сам у себя и по несколько раз. То фракцию не ту, то скрипты не так расставлю, ДБ исправит и говорит, в те слоты то в те это... и такого я делал сто раз. Поэтому я знаю что такое переделать (ненавижу) посему и говорю.
Вы совершенно правы мусье.
Так. Все просто как теория относительности.
Но ты не уточняешь, сколько еды уничтожается и какой? У тебя полные сумки жратвы, нужна одного вида или нет? Можно три одинаковые? Логика хромает. Какая еда у тебя и как она уничтожается. Сколько ее надо и имся скрипта на отдых. И все. Элендор поищи в базе скриптов. Был такой... |
||||||||||
![]()
Сообщение
#953
|
|
Level 4 ![]() ![]() Класс: Волшебник Характер: True Neutral Раса: Полуэльф ![]() |
возможно и просто но вот строчьку ExecuteScript("script_rest", oPC); я вообще не понимаю прост с такой функцие вообще не стыкался ниразу.
Еды 10 видов и соответственно 10 тегов. Уничьтожается сразу после соответствия на все проверки наличия предметов. По правилу вес съединой пищи должен быть 1/20 от жизни героя (вес прямо связан с тегом тобиш это можно отбросить из того что мне не понятно) но не меньше 1 шт. еды. (вродеб правильно написал, хотя может и заблуждаюсь как это должно выглядет в конечьном виде). Огромное спасибо кто удили мне свое внимание. Добавлено в [mergetime]1107553110[/mergetime] Количество еды в сумке определяется самим игроком тобиш может быть как 1 вида так и всех 10. Все 10 видов можно спокойно есть (условия на на проверку наличие пистицедов не требуется, и наложение дополнителльных побочьных эффектов как плохих так и хороших) |
![]()
Сообщение
#954
|
|||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Эта функция просто запускает скрипт с именем "script_rest" на объект РС. Тоесть, у тебя сработали все условия по проверке еды и дров, запускай скрипт отдыха. И усе, радуйся. |
||
![]()
Сообщение
#955
|
|||||
![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
А кроме как кушать это еда нужна еще где-то? Почему не сделать одинаковые тэги? А вес проверять функцией
Это решение данного вопроса. Если ты хочешь разобраться с самой сутью перебора вещей в по части тэга инвентори, то извини, что я ввязался.
|
||||
![]()
Сообщение
#956
|
|||
Level 4 ![]() ![]() Класс: Волшебник Характер: True Neutral Раса: Полуэльф ![]() |
я извиняюсь (просто я немец так сказать :) ) и насколько я понял функцию GetWeight возвращяет вес предметов но это мне НЕ НУЖНО,я вес просто привязал к номеру (№1 - 1 кг .... №10 50 кг). одинаковые теги нельзя так как на магазин я повесил удалитель одинаковых вещей в соответствии с чем при одинаковых тегах останется только 1 вид еды. Еда используется 2 путями: 1- когда игрок просто отдыхает с востановлением всех сил (простое удаление из инвентаря) 2- использует как предмет и в соответстви с тем что скушал получяет некий бонус. Так вот
Как я уже говорил с этим вродеб разобрался за что вам огромное спасибо, НО как после перебора всех вещей в инвентаре и ненахождения необходимого застаивть сделать конкретное действие - сказать "у вас нет этого предмета". что в данной ситуации вернет функция - while (GetIsObjectValid(oItem)) |
||
![]()
Сообщение
#957
|
|||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Твой метод тянуть кота за хвост меня выбивает из колеи :D Коней на переправе не меняють :) Давай так, ты выложишь подробно ВСЕ свои УСЛОВИЯ что и как и теги, а мы тебе поможем. А ГЛАВНОЕ ЧТО ТЫ ОТ НЕГО (и нас :yes: ХОЧЕШЬ) Потаму как твой один скрипт с вопросами: "А вот если..." может перерасти в спам тему. Ждемс... :drag: |
||
![]()
Сообщение
#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. |
![]()
Сообщение
#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); } } |
![]()
Сообщение
#960
|
|||||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Oksivarus у тебя будет два скрипта, в одном проверишь, в другом удалишь. Все работает я проверял. Первый основной скрипт. Вешай хоть куды, главное РС правильно опиши.
Второй скрипт запускай с задержкой. Мой назывался "am_temp_05" свой назовешь и пропишешь вверху.
|
||||
![]()
Сообщение
#961
|
|
Level 4 ![]() ![]() Класс: Волшебник Характер: True Neutral Раса: Полуэльф ![]() |
огромное спасибо, буду дальше пробывать.
Aiwan: Давай, работай! ;) Сообщение отредактировал Aiwan - Feb 6 2005, 00:04 |
![]()
Сообщение
#962
|
|
Level 4 ![]() ![]() Класс: Волшебник Характер: True Neutral Раса: Полуэльф ![]() |
Вобщем промучялся вчерашний день и всю ночь и так и не смог заставить скрипт удалять предметы при заднаии на удаление функцией DestroyObject(oItem); удаляет только если прямо указать тег обьекта.
ЧТО касается остального то спасибо работает хотя я всетаки обьеденил 2 скрипта в 1 (просто что 2 что 1 никаких отличий в его работе). Скрипт польностью рабочий хотя сократить его так и не удалось(за основу взял твой Aiwan скрипт на отдых но без проверки на костер). Если хотете могу выложить правда незнаю куда его сюда или в раздел скриптов. P.S. ВСЕМ КТО помогал ОГРОМНОЕ СПАСИБО без вас небылоб его !!! |
![]()
Сообщение
#963
|
|||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Что то я не понял. В моем коде? Если да, то так и будет, так как ты объеденил их в один. Разъедини и будет удалять, у меян же удаляет! Я ПРОВЕРЯЛ И ТЕСТИЛ СПЕЦИАЛЬНО В МОДЕ. Скрипт кидай сюда, вылижим и повесишь в базу готовый безглючный вариант с описаловом. Только скрипт сделай в nss кнопке. |
||
![]()
Сообщение
#964
|
|
Восставший из пепла ![]() ![]() ![]() Класс: Бледный Мастер Характер: Neutral Evil Раса: Человек ПОДМАСТЕРЬЕ ![]() |
Привет всем! Я новичок на этом форуме, так что, если что-то не то ляпну, то поправте.
Я понимаю, что у всех полно дел, но немог бы кто-нибудь помочь мне со скриптами разобраться? :swoon: Я ни как не пойму как написать такой скрипт: К примеру эльф дает тебе задание убить гнома, ты его убиваешь....... А вот дальше и загвостка.... Как сделать так, чтобы после смерти гнома у эльфа появилась строчка в диалоге: "Я убил гнома". ПОЖАЛУЙСТА помогите кто может! :xz: Сообщение отредактировал Archangel - Feb 6 2005, 20:19 |
![]()
Сообщение
#965
|
|||||
Level 8 ![]() ![]() ![]() Класс: Маг Характер: Lawful Good Раса: Полуэльф ![]() |
Ставишь локальную переменную на слот OnDeath NPCа...
Затем в диалоге на строку "текст появляется при" ставишь такое
вуаля, строчка диалога не появится, пока не выполнишь условие :BRAVO: |
||||
![]()
Сообщение
#966
|
|
Восставший из пепла ![]() ![]() ![]() Класс: Бледный Мастер Характер: Neutral Evil Раса: Человек ПОДМАСТЕРЬЕ ![]() |
Спасибо MasterMage! Очень помог! :D
<small>Добавлено в 21:22</small> Еще два вопроса по поводу скриптов: 1) Можно ли сделать такой скрипт: когда игрок надевает кольцо (амулет) он превращался в вампира. 2) Можно ли сделать так, чтобы стало возможно говорить со статуей? Или другим неодушевленным предметом.... Пожалуйста уделите пару минут внимания геймеру, нифурычущему в скриптах.... :vava: Сообщение отредактировал Archangel - Feb 6 2005, 21:23 |
![]()
Сообщение
#967
|
|||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
1. на OnPlayerEquipItem модуля... Это, вроде самый простой и незамысловатый способ...
на unEquip эффект снимай |
||
![]()
Сообщение
#968
|
|||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
1. Нельзя насовсем превратить игрока в вампира. 2. Добавь объекту диалог и на OnUsed объекта поставь скрипт:
|
||
![]() ![]()
Сообщение
#969
|
|
Восставший из пепла ![]() ![]() ![]() Класс: Бледный Мастер Характер: Neutral Evil Раса: Человек ПОДМАСТЕРЬЕ ![]() |
Угу, понял насщет разговора со статуей. СПАСИБО......... :good:
А вот насщет превращения в вампа хотел бы уточнить:) Мне и ненадо чтобы игрок навсегда стал вампиром! Я хочу сделать так: одел колечко-стал вампом, снял-стал самим собой... Если знаешь такой скрипт, то пажалуйста напиши......... :swoon: |
![]()
Сообщение
#970
|
|||||
Level 10 ![]() ![]() ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек NWN: Контент ![]() |
Нужно, чтобы действие одного скрипта прекращалось по возврату другого скрипта, т.е. есть действия с задержкой и надо их отменить, если что-то произошло в другом скрипте. Пока сделал следующим образом:
, где в cus_inc_02 стоит проверка:
Ну и собственно третий скрипт, который и организует прерывание, устанавливая переменную iIntervene в 1. Вопрос, можно ли обойтись без промежуточного скрипта cus_inc_02 ? |
||||
![]()
Сообщение
#971
|
|||
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Не в скрипте дело. Для этого, представь себе, надо создать и описать ПОЛНОСТЬЮ все вампирские бонусы, создать спец-умения, фиты, скиллы... Да просто дофига работы НЕ ДЛЯ НОВИЧКА. Так что, я бы посоветовал тебе пока порешать проблемы более тривиальные. То есть научиться прежде всего работать с самими скриптами. |
||
![]() ![]()
Сообщение
#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 |
![]()
Сообщение
#973
|
|
Level 4 ![]() ![]() Класс: Волшебник Характер: True Neutral Раса: Полуэльф ![]() |
Aiwan - скриптец я выложу но чуть посже на сладующюя страницу.
А что касается именно твоих 2 скриптом то повторюсь - я их пробывал юзать как отдельно каждый (запускается 1 который вызывает 2) так и 1 общий. Возник вопрос в соответствии с твоим утверждением о его работоспособности - ты тестил с крипты в сингле ??? Я проверял его работу на шарде вот что он сообщал приналичии в рюкзаке 3шт любой еды (я дополнил строчьку чтоб говорила переменную FOOD) отдых начят одын 1 одын 2 одын 3 потерян предмет бедрол одын 1 одын 2 одын 3 получен предмет бедрол отдых закончен ни о каком удалении предметов с нужными тегами (food_1, food_2, food_3) речи вообще не идет. |
![]()
Сообщение
#974
|
|||
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Oksivarus, попробуй так. |
||
![]() ![]()
Сообщение
#975
|
|
Восставший из пепла ![]() ![]() ![]() Класс: Бледный Мастер Характер: Neutral Evil Раса: Человек ПОДМАСТЕРЬЕ ![]() |
Ну блин.... Я ж не знал. :xz:
А тогда не подскажете как написать скрипты, которые можно было бы вставить в разговор и которые давали + или - к направленности героя или скрипт, который прибавлял какую-нибудь хар-ку (например сила+2)? |
![]() ![]() |
Текстовая версия | Сейчас: 2nd May 2025 - 01:07 |