![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1296
|
|||||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
QUOTE=-fenix-, Jun 17 2005, 11:24]Тут вот особо продвинутые люди создают собственные функции, не подскажет ли кто из них как это делать?[/QUOTE] Если это "тупой вопрос", то функции объявляются следующим образом: <тип возвращаемого значения> <имя функции>(<список параметров>) { <тело функции, т.е. тут описано, собственно то что эта функция делает.> } Пример:
Добавлено в [mergetime]1119003303[/mergetime]
:swoon: Если, вдруг имелось ввиду, как делать движковые функции, то сомневаюсь, что тут тебе кто-нить поможет (*слегка косится на Думбо*). Хотя особо продвидуные наверное могут и не такое. Сделали ведь, говорять, какие-то умельцы SetName. Сообщение отредактировал Friedrich - Jun 17 2005, 13:08 |
||||
![]()
Сообщение
#1297
|
|||||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Friedrich Я ни этот вопрос имел ввиду тупым. Я имел ввиду, что есле это трудно объяснить тут, то намекните и я сам буду разбераться, задавая попутно тупые вопросы. А пользоваться этими функциями так ?
их надо объявлять в каждом скрипте.
Было бы интересно, но я до этого еще не дорос :)
это к чему??? И еще вопросы 1) Есть в НвН массивы или какие - нибудь условия со счетчиком(как в паскале for) или их делать с помощью while? 2) Есть в НвН метки(как в паскале label)? 3) просветите, что такое инклюд и как его юзать. Почему столько вопросов? Потому что у меня наконец появилось время для того, что бы заняться изучением НвН'овского скриптинга по человечески. !!!НАКОНЕЦ!!! Вот скачал сейчас два томика :) скриптов, веселый вечер у меня намечается. Сообщение отредактировал -fenix- - Jun 17 2005, 20:15 |
||||||
![]()
Сообщение
#1298
|
|
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Феникс, лексикон посмотреть не судьба? Или с аглицким вообще никак? Даже если никак, то все равно посмотреть на досуге будет не вредно.
А ежели в чего-то Паскале шаришь, то я чего-то не понимаю твоих вопросов про функуии. Все точно также. Если есть есть какой-то кусок кода, который требуется регулярно выполнять, или он просто содержит какие-либо логически связанные действия или вычисления, то их целесообразно отделить от основной программы в отдельный блок - функцию или процедуру (void-функции - это считай как процедуры). Пользываться самописными функциями затем можно как стандартными. Чтобы не переписывать одни и те же функции в разных скриптах, их можно объединять в библиотеки - инклюды (Биоварские инклюды обычно называится nw_i0_* или x*_inc_*, нп: nw_i0_generic). Директивой #include "filename" при компиляции соотыетствующий файл будет добавлен к основному скрипту. Инклюд не должен содержать функии main. Далее, 1) циклы в НВСкрипте конечно есть: int i; for (i = 0; i < 5; i++) { // statements ... // this loop will cycle i as 0, 1, 2, 3, and 4 } Аналог for i:=0 to 4 do или н.п.: for(i = 4; i >= 0; i--){} аналог: for i:= 4 downto 0 do while (expression) { statement; } выполняется, пока expression истинно. Как в паскале, в общем. do {statement;} while(expression); Как repeat ... until, только выполняется пока условие истинно. 2) Меток и goto естественно нету, т.к. они есть атрибут "дурного стиля программирования" (или фортрана). :D 3) Массивов как таковых нету, но если очень нужно - то их можно симулировать с помощью локалок по принципу: Имя локалки = имя массива + номер ячейки. См. биоварский инклюд nw_o0_itemmaker Еще советую почитать, хотя-бы книжечку по Си, которую тут Айван где-то выкладывал (на предмет синтаксиса). Хотя это не обязательно, Лексикону тебе за глаза хватит. |
![]()
Сообщение
#1299
|
|||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Да. С англицким вообще никак, но лексикон скачал и ковыряю его потихоньку с помощью сократа и лингво. :( У меня просто раньше времени не было разбераться в НвН скриптах, экзамены и все такое. Все, что увидел мельком, это if и локалки, их пока и юзал. Про циклы с пост и предусловием в статьях нашел, а про for и label нигде не написано, вот и спросил есть ли таковые. Спсибо за ответы :good: И новый вопросик Перевод Валео ни кто не заканчивал? |
||
![]()
Сообщение
#1300
|
|||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Нет. Есть желание? Вперед! |
||
![]()
Сообщение
#1301
|
|
Level 8 ![]() ![]() ![]() Класс: Рейнджер Характер: Chaotic Evil Раса: Нежить ![]() |
что такое Валео?..или кто такой?
|
![]()
Сообщение
#1302
|
|||||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Кто такой. Автор перевода функций скриптов тулсета на русском. Но он дощел до "G" и дальше видемо надоело, тем более, что осталось еще наверно 3/4.
Желание есть и английский там понять можно(только это дополнительное время), да вот только этих функций еще до Х..., очень много. Короче нужно просто много времени, а его как раз и нет. Уламываю друга, каторый в английском шарит, помочь, но он пока усердно отбивается. :D Добавлено в 17:19 Тут где-то говорили про функцию, каторая заставляет телеги ездить, кораблики плавать. Ненапишите ее еще разок ПЛИЗ Добавлено в 22:10 Написал вот это
все нормально только: НПС должен выполнить команды в таком порядке подойти к ПС-> проиграть анимацию-> проиграть звук-> сказать привет. А на деле получается так сказал привет-> проиграл звук-> подошел-> проиграл анимацию ПОЧЕМУ ТАК? Сообщение отредактировал -fenix- - Jun 19 2005, 22:12 |
||||||
![]()
Сообщение
#1303
|
|||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Чего такое очередь дейсвий в курсе? Вижу в курсе. Тогда почему SpeakString, а не ActionSpeakString и PlayVoiceChat, значит, тоже надо в очередь ставить (которая на НПС1 своя собственная). |
||
![]()
Сообщение
#1304
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Friedrich:V: Усе допер.
|
![]()
Сообщение
#1305
|
|
Level 4 ![]() ![]() Класс: Оборотень Характер: Neutral Evil Раса: Тварь ![]() |
Приветствую вас.
Вот такой у меня вопрос- если в инвентаре игрока есть допустим 10 stacked items (незнаю как перевести- суммированных? :xz: ), Например 10 зелий лечения. Как при определенном действии уничтожить 5 из них? Например в диалоге- чтобы нпс забирал заданное кол-во этих зелий? Сообщение отредактировал Zik - Jun 21 2005, 06:53 |
![]()
Сообщение
#1306
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Zik!!! Делается это очень просто для начала создай нужное зелье и дай ему ТЭГ затем, открываешь редактор диалогов, и соответственно открываешь тот диалог, который нужен тебе, далее выбираешь ту ветку диалога в которой NPC должен забрать у игрока зелья, когда ты ее выберешь, нажми вкладку СОВЕРШЕНЫ ДЕЙСТВИЯ там нажми кнопку МАСТЕР СКРИПТОВ там выбери ВОЗМИТЕ У ИГРОКА и в окошечке ВОЗЬМИ ПРЕДМЕТ пиши ТЭГ твоего зелья. Все закончить.
|
![]()
Сообщение
#1307
|
|
Level 4 ![]() ![]() Класс: Оборотень Характер: Neutral Evil Раса: Тварь ![]() |
В таком случае к сожалению забирается именно предмет- то есть в данном случае все зелья, сложенные в один набор с этим тэгом.
Я имею в виду те предметы, у которых есть размер стэка. К примеру дефолтно у зелий он 10, то есть зелья одинакогого типа сложатся в 1 наборчик с подписью 10. У стрел- 99. Мне необходимо забрать только часть - допустим у меня лежит 99 стрел (изображается как стрела, занимающая 2 квадратика инвентори с подписью 99), мне нужно из них взять 33. |
![]()
Сообщение
#1308
|
|||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Работа со стеком у вещей :
Технология такая: нашел вещь, узнал сколько их в стеке. Если больше, чем тебе надо взять, то SetItemStackSize(oItem,GetItemStackSize(oItem)-N) где N - cколько надо взять. Иначе берем все (DestroyObject()), N понижаем на GetItemStackSize(object oItem) и бежим дальше по циклу. (ДО этого надо сделать проверку на общее кол-во вещей и сравнить с N. Скрипт такой есть в базе) |
||||
![]()
Сообщение
#1309
|
|||
Level 4 ![]() ![]() Класс: Оборотень Характер: Neutral Evil Раса: Тварь ![]() |
А если из общего количества вещей в инвентори отнимать? Например есть 1 упаковка 10 бутылок и одна неполная- 7, всего 17 бутылок, надо отнять 12. Вот таким скриптом я узнаю сколько всего бутылок в инвентори игрока:
Не подскажете как из него отнимать? Что нибудь вроде SetNumItems |
||
![]()
Сообщение
#1310
|
|||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Zik Чего-нить в этом роде
Вроде, работает. |
||
![]()
Сообщение
#1311
|
|||||
Level 5 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Джентельмены! Помогите разобраться с функциями FadeTo/FromBlack Никогда раньше не пользовался ими, вот сейчас понадобилось. Я просмотрел здесь на форуме скрипты с этими ф-циями, вроде делаю все как там, а получается такая лажа: Вот кусок скрипта:
После команды FadeToBlack ничего не происходит в указанное время, потом, когда уже совершены ф-ции между ...To... и ...From..., экран затемняется на полсекунды, потом светлеет на пару сек. и медленно гаснет с концами. Не зависает игра, на Esc реагирует, но света нету. Пробовал еще так:
То же самое. Что я делаю неправильно? З.Ы. Все дело происходит за сек 10 до конца кутсценки, я пробовал и время увеличить до конца, думал типа может если во время сценки не успевает фромблэкнуться, то потом не может уже. Ни фига! Тот же результат! |
||||
![]()
Сообщение
#1312
|
|||
Level 5 ![]() ![]() Класс: Убийца Характер: True Neutral Раса: Чудовище ![]() |
Убо-Сатло Я НА БЫСТРУЮ РУКУ СКЛЕПАЛ ТЕБЕ МОД, ПОСМОТРИ, ВСЕ РАБОТАЕТ КАК НАДО. КАЧАЙ ТУТ Добавлено в [mergetime]1119393941[/mergetime] Убо-Сатло
Похоже вот твоя ошибка (выделена красным) Но для надежности все равно скачай мод и посмотри. Сообщение отредактировал Агрессинг - Jun 22 2005, 01:42 |
||
![]()
Сообщение
#1313
|
|
Level 5 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Агрессинг , скачал. Открываю архив, там "В помощь. mod". Пытаюсь извлечь - говорит нет файлов для извлечения!
Если ошибка то, что ты выделил красным, то в первом(основном) варианте этого нет. А второй я просто пробовал на всякий случай. Кстати, насчет твоего модуля "В помощь", у меня SOU 1.30, если у тебя новее версия, я его не смогу открыть. |
![]()
Сообщение
#1314
|
|||
Level 5 ![]() ![]() Класс: Убийца Характер: True Neutral Раса: Чудовище ![]() |
У меня Орды и Тени 1.30 Так что выладываю скрипт. Все идеально работает. Подставляй свои значения.
|
||
![]()
Сообщение
#1315
|
|||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Вот кусок моего кода. Не надо никакие акции на снятие.
|
||
![]()
Сообщение
#1316
|
|||
Level 5 ![]() ![]() Класс: Ученик Дракона Характер: Lawful Good Раса: Человек ![]() |
Начинаю учиться построению сценок и возникают некоторые тупые вопросы, до которых я сам не догоню. Почему у меня не уничтожается oNPS, в то время как oNRS исчезает? Что я забыл или что переборщил?
|
||
![]()
Сообщение
#1317
|
|||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Твои НПС не делают никаких актионов, зачем им в стэк пихать дестрой? Удаляй проще по таймингу делей командой.
|
||
![]()
Сообщение
#1318
|
|||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
А это зачем? |
||
![]()
Сообщение
#1319
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Friedrich
Чтобы умнее были. Нормальная практика. :yes: |
![]()
Сообщение
#1320
|
|||
Level 5 ![]() ![]() Класс: Ученик Дракона Характер: Lawful Good Раса: Человек ![]() |
Они иногда тупить начинают. То в стенку идут, то ваще ничего не делают, когда их бьют. А с этой командой на 50% вероятности, что этого не будет. Добавлено в [mergetime]1119441452[/mergetime] Конечно, если правильно понял :D |
||
![]() ![]() |
Текстовая версия | Сейчас: 13th July 2025 - 22:18 |