![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3901
|
|
Level 3 ![]() Класс: Псионик Характер: Neutral Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Но, насколько я могу судить, ошибка все же была не в этом? В конце концов вейпойнт и дата не связаны... (понимаю, я задаю слишком много вопросов, но лучше один раз понять, чем сто раз тупо воспользоваться плодами чужого труда... вот я и пытаюсь уразуметь и не ошибаться больше) Совершенно верно, это была просто ремарка. |
![]()
Сообщение
#3902
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Вот теперь понял=) Возможно, теперь и еще какие-то глюки смогу исправить, потому что с этими проверками и последующими действиями у меня все время что-то не так (IMG:style_emoticons/kolobok_light/unsure.gif) (IMG:style_emoticons/kolobok_light/wacko.gif)
|
![]()
Сообщение
#3903
|
|
Level 3 ![]() Класс: Псионик Характер: Neutral Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Вот теперь понял=) Возможно, теперь и еще какие-то глюки смогу исправить, потому что с этими проверками и последующими действиями у меня все время что-то не так (IMG:style_emoticons/kolobok_light/unsure.gif) (IMG:style_emoticons/kolobok_light/wacko.gif) Старайся писать все аккуратно и не спешить. Так же, советую не скупиться на пробелы, если они помогают лучше читать код, тогда все ошибки будут, как на ладони. |
![]()
Сообщение
#3904
|
|
Level 2 ![]() Класс: Волшебник Характер: Lawful Neutral Раса: Человек ![]() |
Мастер скажите, как составить один из самых простейших скриптов , чтоб при загрузки модуля можно было только создавать персонажа и было запрещено играть готовыми?
|
![]()
Сообщение
#3905
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Лир, набери в гугле "coding style" (IMG:style_emoticons/kolobok_light/smile.gif)
Могу изложить свой стиль, если нужно (IMG:style_emoticons/kolobok_light/wacko.gif) Вроде никто на неразборчивость кода не жаловался пока. Цитата Мастер скажите, как составить один из самых простейших скриптов , чтоб при загрузки модуля можно было только создавать персонажа и было запрещено играть готовыми? Рецепт на все случаи жизни сразу в голову как-то не приходит. Можно предложить частичное решение проблемы, в onClientEnter модуля (кстати, а он при загрузке сейва срабатывает? просто я шардовик, ни разу таким вопросом не интересовался (IMG:style_emoticons/kolobok_light/smile.gif) Если срабатывает, то нужно похитрее сделать).Neverwinter Script void main() Конечно, читакам никто не помешает свалить кучу шмота на чара без экспы (IMG:style_emoticons/kolobok_light/smile.gif)
{ object oPC = GetEnteringObject(); if(GetXP(oPC)) //если экспы у чара не 0, выкидываем его из модуля EndGame(""); } Сообщение отредактировал Ilerien - Oct 20 2008, 11:20 |
![]()
Сообщение
#3906
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
тока ты не отличишь готового перса 1 уровня от созданного только что. Ибо не отличаются.
|
![]()
Сообщение
#3907
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Угу, я про это и говорю (IMG:style_emoticons/kolobok_light/wacko.gif)
|
![]()
Сообщение
#3908
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Достаточно сделать проверку на экспу и отнимать все вещи при входе. А если игроку захочется прочитерить - он это всё равно сделает.
|
![]()
Сообщение
#3909
|
|
Level 3 ![]() Класс: Воин Характер: Lawful Evil Раса: Человек ![]() |
Цитата Мастер скажите, как составить один из самых простейших скриптов , чтоб при загрузки модуля можно было только создавать персонажа и было запрещено играть готовыми? Не стоит забывать и про то, что модуль может быть по-разному подгружен. То есть можно запускать его врежиме одиночной игры (тогда рецепт Ilerien'a), либо можно стартовать модуль своим сервером - тогда в настройках сервера можно просто выбрать пункт "Не использовать готовых персоонажей"... или как-то так он звучит. И необходимое послесловие: вся защита в мире делается от честных людей. Цитата А если игроку захочется прочитерить - он это всё равно сделает. . Просто подумай... и впрямь необходимо, чтобы игрока жестко ограничивали при старте игры? Просто напиши в комментарии к модулю, что желательно создание нового персоонажа. И, соответственно, тот, кому интересен этот модуль, будет играть по правилам. Тот же, кто запустил его "от балды", все равно не будет в него играть, каким бы интересным он ни был.Вот ИМХО. |
![]()
Сообщение
#3910
|
|
Отверженный ![]() ![]() ![]() ![]() Класс: Теневой Танцор Характер: Neutral Good Раса: Баатезу ![]() |
Цитата Тот же, кто запустил его "от балды", все равно не будет в него играть, каким бы интересным он ни был. Будет (IMG:style_emoticons/kolobok_light/wink3.gif) |
![]()
Сообщение
#3911
|
|
Level 2 ![]() Класс: Волшебник Характер: Lawful Neutral Раса: Человек ![]() |
Хотелось бы что б было как в Проклятье Левора, чтоб персонаж появлялся типо на родной земле без денег и инвентаря , а не какойто полубог со стороны приходит.
В скриптах познания не велики, ранее лепил только торговце и перемещения, пытался тут инвентарь убить, подскажите непутевому волшебнику как тут лучше можно... Neverwinter Script //::////////////////////////////////////////////// //:: OnEnter am_mod_enter //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 22.08.2005 //::///////////////////////////////////////////// void main() { object oMod = GetModule(); object oPC = GetEnteringObject(); if (!GetIsPC(oPC) || GetLocalInt(oMod, "START_GAME")) {return;} { SetLocalInt(oMod, "START_GAME", TRUE); AssignCommand(oPC, TakeGoldFromCreature(GetGold(oPC),oPC,TRUE)); object oItem = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItem)) { int i=0; while(i<14) { DestroyObject(GetItemInSlot(i, oPC)); i++; { } P.S. Слышал существует генератор модулей , хоть закрученный сюжет он не делает , но зато за пару сек расставит монстров и сгенерит примитивные квесты и торговцев. Где такой скачать можно? |
![]()
Сообщение
#3912
|
|
Level 3 ![]() Класс: Воин Характер: Lawful Evil Раса: Человек ![]() |
Так и можно, ты правильно взял скрипт Айвана.
Да, и еще... ты в другой теме спрашивал: Цитата Я тут недавно , может это и не в тему , кто знает скрипт чтоб воскрешение отменить, что бы в модуле только загружаться можно было? Все просто: В редакторе Aurora выбираешь меню "Редактировать", подпункт "Модульные свойства", вкладку "События". Ищещь событие OnPlayerDeath, открываешь скрипт, прописанный этому событию. Смотришь в самый конец. Одна из последних строчек будет DelayCommand(2.5, PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH)). Меняй ее на такую строчку DelayCommand(2.5, PopUpDeathGUIPanel(oPlayer, FALSE, FALSE)); Потом сохраняй скрипт как свой. Т.е. не сохраняй изменения в имеющемся, а выбери пункт Сохранить Как и сохрани под своим именем. Так всегда лучше делать при редактировании имеющихся скриптов. Все, нажимай кнопку ОК в модульных свойствах. Теперь игрок может только загрузиться или выйти из игры. |
![]()
Сообщение
#3913
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Эм *посмотрел на скрипт* А это точно скрипт Айвана без изменений? о.О Такое впечатление, что там куска не хватает. Да и операторные скобки странно расставлены (IMG:style_emoticons/kolobok_light/snoozer_17.gif)
Neverwinter Script void main() { object oPC = GetEnteringObject(), oItem; int nSlot; TakeGoldFromCreature(GetGold(oPC), oPC); //забираем золото SetXP(oPC, 0); //забираем опыт for(nSlot = 0; nSlot <= 17; nSlot++) DestroyObject(GetItemInSlot(nSlot, oPC)); //убиваем надетые вещи oItem = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItem)) { DestroyObject(oItem); //убиваем инвентарь oItem = GetNextItemInInventory(oPC); } } Если игрок злобный и напихал в инвентарь кучу всего, будут тормоза из-за DestroyObject без задержки. Сообщение отредактировал Ilerien - Oct 23 2008, 16:56 |
![]()
Сообщение
#3914
|
|
Level 2 ![]() Класс: Волшебник Характер: Lawful Neutral Раса: Человек ![]() |
Благодарю всех , все пашет отлично.
Сюжет моего моего модуля посвящен племени орков, желательно вписать в этот скрипт ограничения , чтоб можно было играть только полуорками(только ограничения по расе). Кто-нибудь знает как лучше подправить автоматы в редакторе Aurora, большенство простейших скриптов можно сгенерить автоматически , только по каким то причинам генерят они не верно , можно ли их подправить. |
![]()
Сообщение
#3915
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Благодарю всех , все пашет отлично. Странно... Если это скрипт для слота OnClientEnter, то золото у него останется. (IMG:style_emoticons/kolobok_light/wacko.gif) Нужно так: Neverwinter Script // забрать все золото AssignCommand(oPC, TakeGoldFromCreature(GetGold(oPC), oPC, TRUE)); Кто-нибудь знает как лучше подправить автоматы в редакторе Aurora, большенство простейших скриптов можно сгенерить автоматически , только по каким то причинам генерят они не верно , можно ли их подправить Мастер скриптов пишет все верно! Но не копилятся они могут по причине малой "я". Нужет патч Думбо или замена "я" на "Я" в комментариях к скрипту... (можно воспользовать авто заменой редактора скриптов) |
![]()
Сообщение
#3916
|
|
Level 1 Класс: Тайный Лучник Характер: Chaotic Neutral Раса: Нежить ![]() |
Мастера,Помогите чайнику, плз! Как присвоить переменной типа object самого персонажа, в сааамом начале модуля(onClientEnter)? Надо чтобы над ним появлялась всплывающая сторока типа 'Кто я? ничего не помню трам папам...'. Heelp! (IMG:style_emoticons/kolobok_light/help.gif)
|
![]()
Сообщение
#3917
|
|
Level 3 ![]() Класс: Воин Характер: Lawful Evil Раса: Человек ![]() |
2 Ksanatos:
Цитата Мастер скриптов пишет все верно! Но не копилятся они могут по причине малой "я". Нужет патч Думбо или замена "я" на "Я" в комментариях к скрипту... (можно воспользовать авто заменой редактора скриптов) А можно не париться и просто потереть все комментарии в базовом скрипте (IMG:style_emoticons/kolobok_light/wink3.gif) Просто у меня, например, Aurora базовая, но ведь все пашет!) По поводу ограничения по расе... К сожалению, я не знаю, как красиво завершить игру... Могу только предложить сырой способ: Neverwinter Script if (GetRacialType(oPC) != RACIAL_TYPE_HALFORC) //ЕСЛИ раса игрока НЕ полуорк, { //ТО с задержкой в 3 секунды вывести игроку сообщение о смерти. DelayCommand(3.0, PopUpDeathGUIPanel(oPC, FALSE, FALSE, 0, "Your message")); } Воть... в кавычках вместо "Your message" введи то, что будет появляться на окне смерти персоонажа. Что-то вроде "Вы должны быть полуорк!". Только на русский он будет ругаться. Воть... почему окно смерти? Нуу... потому что я знаю еще только два способе выкинуть игрока: 1. BootPC(oPC); //Это выкидывает игрока С СЕРВЕРА. При условии, что игрок играет на сервере. 2. EndGame(""); //Это просто завершает игру Казалось бы, то, что надо! Но в кавычках надо обязательно указать имя финального ролика. Не укажешь его или укажешь несуществующий - покажут просто базовый ролик. Вот... так что я решил, что через панельку смерти более красиво. К тому же у игрока тогда будет возможность прочитать в заголовке, почему же он "умер". Все, времени нет, убегаю... 2 DarkDante: Нет, не убегаю... Еще отвечу на твой пост... Чтобы игрок при старте модуля сказал нужную тебе фразу, воспользуйся следующим куском кода (из верно тобой указанного события OnClientEnter): Neverwinter Script //Объект oPC = вошедший объект; object oPC = GetEnteringObject(); //С задержкой в 3.0 секунды, Заставить oPC выполнить действие, ДействиеСказатьСтрочку "Message" DelayCommand(3.0, AssignCommand(oPC, ActionSpeakString("Message", TALKVOLUME_TALK))); Все, потом "Message" меняешь на нужное тебе сообщение. Кавычки сохраняются! Сообщение отредактировал Neakris - Oct 25 2008, 18:30 |
![]()
Сообщение
#3918
|
|
Level 1 Класс: Тайный Лучник Характер: Chaotic Neutral Раса: Нежить ![]() |
Спс, Neakris.
Сразу задам еще один вопрос - создав триггер, в собтие onEnter я вставляю следующий код: Код void main() { AssignCommand (OBJECT_SELF, ActionDoCommand(SpeakString("Недавно здесь была битва. Трупы ещё относительно свежие, но вороны уже успели выклевать им глаза и лица..."))); } и ничего не происходит (IMG:style_emoticons/kolobok_light/sorry.gif) Тоже самое если я пишу Код void main() { object oPC = GetEnteringObject(); AssignCommand (oPC, ActionDoCommand(SpeakString("Недавно здесь была битва. Трупы ещё относительно свежие, но вороны уже успели выклевать им глаза и лица..."))); } Мож я что делаю неправильно? И если да, то как надо? |
![]()
Сообщение
#3919
|
|
Level 1 ![]() Класс: Маг Характер: Lawful Evil Раса: Дракон NWN: Скриптинг [PW] ![]() |
OBJECT_SELF у тебя в первом варианте выступает как сам триггер.
ActionDoCommand там не надо. Лучше всего кстати использовать SendMessageToPC. |
![]()
Сообщение
#3920
|
|
Level 1 Класс: Тайный Лучник Характер: Chaotic Neutral Раса: Нежить ![]() |
Насчет OBJECT_SELF я сразу понял, а вот на счет ActionDoCommand это спс (IMG:style_emoticons/kolobok_light/yes3.gif)
|
![]()
Сообщение
#3921
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
DarkDante, для скриптов есть форумный тег nss (IMG:style_emoticons/kolobok_light/smile.gif)
Если хочется, чтобы над головой появлялось, надо юзать FloatingTextStringOnCreature (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал Ilerien - Oct 25 2008, 21:36 |
![]()
Сообщение
#3922
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Сразу задам еще один вопрос - создав триггер, в собтие onEnter я вставляю следующий код: (...) Мож я что делаю неправильно? И если да, то как надо? Код сам по себе верный. Но вот подход нет. Триггеры не выводят текст над собой, как и произносят звуки... Это раз. А во-вторых, и самое главное, каждый скрипт нужно компилировать, а не просто сохранять! В этом основная ошибка, т.к. второй скрипт записан как раз для триггера, и почти верно... В этом скрипте не нужен оператор ActionDoCommand, т.к. переводит код в акцию и ГГ может её сбить. Кстати вывод строки может сразу быть записан, как акция: ActionSpeakString |
![]()
Сообщение
#3923
|
|
Level 1 Класс: Тайный Лучник Характер: Chaotic Neutral Раса: Нежить ![]() |
DarkDante, для скриптов есть форумный тег nss Сорри, это я перепутал малость (IMG:style_emoticons/kolobok_light/rolleyes.gif) Спс всем(IMG:style_emoticons/kolobok_light/yes3.gif) Хмм, тут ещё вопрос нарисовался... В некоторых модулях, в начале игры есть такая фишка - диалог героя самим с собой(поднять левел, тарам-парам...).Вот мне интересно - как с помощью скрипта запустить этот диалог(или вообще диалог)? Сорри, уж не надо, сам разобрался))))) |
![]()
Сообщение
#3924
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Можно ли при помощи базовых функций организовать подсчет наносимого урона от игроков и их петов?
Если да, то как, если нет, то почему(логика подсказывает, что если эта информация отражается в battlechat'е, то ее можно использовать). Буду премного благодарен за ответ. |
![]()
Сообщение
#3925
|
|
Level 1 ![]() Класс: Маг Характер: Lawful Evil Раса: Дракон NWN: Скриптинг [PW] ![]() |
Есть две функции полезные в этом плане - GetTotalDamageDealt и GetDamageDealtByType.
Обе вешаются в OnDamaged. Первая возвращает весь урон, полученный коллером, вторая по типу. Кстати GetTotalDamageDealt помоему возвращает 0, если на плейсебле или двери их использовать. |
![]() ![]() |
Текстовая версия | Сейчас: 28th April 2025 - 19:23 |