![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3286
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Цитата(Daniel @ Jun 20 2007, 00:26) [snapback]109638[/snapback] Вроде SetXP устанавливает нужное кол-во опыта, будь его меньше или больше да. Будет опыта у игрока больше, чем SetXP ставит - опыт срежется, будет меньше - добавится. А если надо чтобы игнорилось, если экспы больше, то там добавится маленький простенький условный оператор. |
![]()
Сообщение
#3287
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Lex, простенький - для тебя. Но не для меня, я дальше анимации обычной и спавна никуда не ушла пока...
С SetXp все понятно. Непонятно, как делать проверку на уровень перса. По идее, скрипт должен начинаться с проверки на уровень - меньше или больше 15-го, потом уже либо даем экспу, либо оставляем все как есть. Чисто теоретически я это знаю, но вот написать сама не могу... (IMG:style_emoticons/kolobok_light/unknw.gif) Сообщение отредактировал shadowdweller - Jun 19 2007, 23:42 |
![]()
Сообщение
#3288
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Neverwinter Script Source if (GetXP(oPC)<XXXXXXX) SetXP(oPC,XXXXXXX) где XXXXXX - опыт, соотв. 15 левелу. |
![]()
Сообщение
#3289
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Все, врубилась, пасиб. (IMG:style_emoticons/kolobok_light/thank_you.gif) Дальше сама сделаю, там, вроде, несложно. А ставится в свойства мода?
|
![]()
Сообщение
#3290
|
|
Level 2 ![]() Класс: Страшный Пират Характер: Chaotic Neutral Раса: Человек NWN2: Маппинг ![]() |
Вообщем пытаюсь научиться писать скрипты, пока что ничего не выходит...
Нужен скрипт чтобы НПС говорил рандомные фразы Вот тот бред который у меня получился: Neverwinter Script Source void main() { object oL=GetObjectByTag("L"); int sTalk; switch (d4()) { case 1: sTalks=ActionSpeakString("1"); break; case 2: sTalks=ActionSpeakString("2"); break; case 3: sTalks=ActionSpeakString("3"); break; case 4: sTalks=ActionSpeakString("4"); break; } AssignCommand(oL, ActionSpeakString(sTalk)); } |
![]()
Сообщение
#3291
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
эээ.. почти правильно у тебя. А вот совсем правильный вариант. Найди 10 отличий.
Neverwinter Script Source void main() { object oL=GetObjectByTag("L"); string sTalks; switch (d4()) { case 1: sTalks="1"; break; case 2: sTalks="2"; break; case 3: sTalks="3"; break; case 4: sTalks="4"; break; } AssignCommand(oL, ActionSpeakString(sTalks)); } если скрипт будет стоять на самом НПС (на ХБ или ЮД), то там проще будет: Neverwinter Script Source void main() { string sTalks; switch (d4()) { case 1: sTalks="1"; break; case 2: sTalks="2"; break; case 3: sTalks="3"; break; case 4: sTalks="4"; break; } ActionSpeakString(sTalks); } а твой вариант похож на скрипт, который стоит на каком-нить нивидимом объекте и управляет неписями. Но тады лучше такой объект грузить по полной - те не 1 НПС, а группой. Скрипт по реализации рандомного разговора между НПС с анимацией и прочими делами есть в Базе Скриптов. |
![]()
Сообщение
#3292
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
2 Lex, только не sTalk, a sTalks (4 и 12тая строки).
Кстати, а не лучше ли будет просто SpeakString? Мало-ли что еще, вдруг NPC занят (IMG:style_emoticons/kolobok_light/smile.gif) . Если ситуация с ХБ, я бы именно так сделал. |
![]()
Сообщение
#3293
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Цитата(Dik Morris @ Jun 20 2007, 12:49) [snapback]109665[/snapback] 2 Lex, только не sTalk, a sTalks (4 и 12тая строки). спс, поправил. Цитата(Dik Morris @ Jun 20 2007, 12:49) [snapback]109665[/snapback] Кстати, а не лучше ли будет просто SpeakString? лучше. Но это уже второй этап (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3294
|
|
Level 4 ![]() ![]() Класс: Ученик Дракона Характер: Lawful Good Раса: Человек ![]() |
Как говаривал терминатор (IMG:style_emoticons/kolobok_light/dirol.gif) : "Я вернулся"
Вот починил модем, вновь попал в интернет. А вопросов то! Но пока задам только один: хочу своеобразную лотерейку сделать, с рандомным выбором я обращаться умею, но вот не умеб его менять скриптом. Типа сделал то что нужно и вот тебе удача |
![]()
Сообщение
#3295
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
2 Epsilon, честно говоря, не совсем понял вопрос. Точнее его суть.
Но пример все-таки приведу: Neverwinter Script Source void main() { object oPC; // Обязательно инициализируй. Под данный случай; int nRandom = Random(5); // Собственно сама "лотерея"; if (nRandom == 1)// проверка, если "Бинго": { // Нужные действия; // <...>. } else AssignCommand(oPC, SpeakString("Не повезло!..")); } Скрипт конечно не под конкретную ситуацию, но общий смысл такой; доработать его не составит проблем, главное что бы сам процесс был понятен. Посмотри описание функций из кода, добавь дополнительные "выигрыши" используя проверку: || (или) и т.д... |
![]()
Сообщение
#3296
|
|
Level 2 ![]() Класс: Страшный Пират Характер: Chaotic Neutral Раса: Человек NWN2: Маппинг ![]() |
Lex, благадарю за помощь (IMG:style_emoticons/kolobok_light/thank_you.gif)
Сообщение отредактировал Daniel - Jun 20 2007, 20:40 |
![]()
Сообщение
#3297
|
|
Level 4 ![]() ![]() Класс: Ученик Дракона Характер: Lawful Good Раса: Человек ![]() |
Перефразирую вопрос: как изменить существующую случайность
|
![]()
Сообщение
#3298
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Специально еще посоветовал, посмотреть описание функций которые я привел. Вот например Random(х) - как раз и отвечает за "случайность".
Таким образом, если поставить в выше приведенном скрипте, вместо 5, скажем 40 - шанс значительно уменьшится, я бы сказал опустится до минимума (IMG:style_emoticons/kolobok_light/smile.gif) . |
![]()
Сообщение
#3299
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
Доброе время суток
кто тознает как сделатьтак что бы сон пробегал за 2 сек ?? |
![]()
Сообщение
#3300
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
2 Teranozavr_REX, ну можно это реализовать, используя солянку функций:
Цитата FadeToBlack; FadeFromBlack; ForceRest. Первым делом, налаживать черный экран, затем ждать две секунды, и использовать ForceRest (мгновенный отдых), потом собственно снимать экран (не беру в учет анимацию и т.д, именно ядро). Думаю такой вариант подойдет. Сообщение отредактировал Dik Morris - Jun 22 2007, 18:05 |
![]()
Сообщение
#3301
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
можно поменять соотв. 2да (restduration) - время реста берется оттуда согласно уровню игрока.
|
![]()
Сообщение
#3302
|
|
Level 1 Класс: Маг Характер: Neutral Good Раса: Чудовище ![]() |
Что неверно в этом скрипте?
Neverwinter Script Source //::////////////////////////////////////////////// //:: Проверка харизмы игрока >= 16 //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 18.09.2005 //::////////////////////////////////////////////// int StartingConditional() { if(GetAbilityScore(GetPCSpeaker(), ABILITY_WISDOM) >= 5) return TRUE; return FALSE; } Я проверял в игре, но 0 эффекта. Это в диалоге. НПС говорит.
Причины изменения: блин, ну сколько раз повторять? зачем мы вам приделывали кнопку NSS?
|
![]()
Сообщение
#3303
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Что неверно? Ну, например, комментарии не соответствуют самому скрипту (IMG:style_emoticons/kolobok_light/smile.gif) .
Штатными средствами, очень трудно установить значение WIS до пяти и ниже. Эффекты или вещи. Тогда при стандартном раскладе, текст у тебя будет появляться всегда, учти. А по поводу "эффекта 0". Так ты, я думаю, не знаешь чего хочешь. Этот скрипт, проверят значение характеристики мудрость, у игрока. Если оно больше, или равно пяти, то NPC начинает диалог (появляется нужная строка). Ставится код, на эвент "Текст появляется при:", в диалоге. Рабочий (во всяком случае, никаких причин для того чтобы он не работал, я не вижу). Сообщение отредактировал Dik Morris - Jun 23 2007, 10:45 |
![]()
Сообщение
#3304
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Цитата(Esidor @ Jun 23 2007, 07:52) [snapback]109839[/snapback] Я проверял в игре, но 0 эффекта. Это в диалоге. НПС говорит. конкретнее, где стоит и как. Накидай упрощенную схему диаплога типа так: ====== Фраза игрока -- Фраза НПС 1 (с этим скриптом в "text appears when") -- Фраза НПС 2 (без скрипта) ====== Ибо скорее всего ты банально ошибся в построении диалога. |
![]()
Сообщение
#3305
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Цитата(Esidor @ Jun 23 2007, 07:52) [snapback]109839[/snapback] Что неверно в этом скрипте? Esidor, чтобы написать банальный скрипт, достаточно просто запустить мастер скрипта, расположенный в редакторе диалога (такая кнопка с красной шляпой)... Выбрав нужные проверки или действия, достаточно просто скомпилировать полученный скрипт для его работы в игре. Вот пример скрипта составленного при помощи мастера скрипта: Neverwinter Script Source //:://///////////////////////////////////////////// //:: FileName sc_001 //::////////////////////////////////////////////// //::////////////////////////////////////////////// //:: Created By: Script Wizard //:: Created On: 24.06.2007 11:59:24 //::////////////////////////////////////////////// int StartingConditional() { if(!(GetAbilityScore(GetPCSpeaker(), ABILITY_WISDOM) > 15)) return FALSE; return TRUE; } P.S. Мастер сприпта прост в управление, поэтому инструкций по его использованию я нигде не видел... |
![]()
Сообщение
#3306
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Мучает меня вопрос - можно ли сделать в диалоге проверку на имя перса, чтобы определенная ветка запускалась в зависимости от имени героя? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
|
![]()
Сообщение
#3307
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Цитата(shadowdweller @ Jun 25 2007, 14:16) [snapback]109869[/snapback] Мучает меня вопрос - можно ли сделать в диалоге проверку на имя перса, чтобы определенная ветка запускалась в зависимости от имени героя? можно. Neverwinter Script Source int StartingConditional() { return GetName(GetPCSpeaker())=="Lex"; } ставим скрипт на ту строку, на которой мне должны дать крутую плюшку: = Фраза игрока == Фраза НПС с бонусом для меня. (на эту строку скрипт в text appears when) == Фраза НПС для остальных игроков-неудачников |
![]()
Сообщение
#3308
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
QUOTE(Dik Morris @ Jun 22 2007, 17:55) [snapback]109825[/snapback] 2 Teranozavr_REX, ну можно это реализовать, используя солянку функций: Первым делом, налаживать черный экран, затем ждать две секунды, и использовать ForceRest (мгновенный отдых), потом собственно снимать экран (не беру в учет анимацию и т.д, именно ядро). Думаю такой вариант подойдет. ForceRest я уже нашел проблема скорее в том что не могу найти слот для установки скрипта и\или определить object который отдыхает ибо юзал OBJECT_SELF пробовал свойства модуля -> события -> OnPlayerRest ставить Neverwinter Script Source ForceRest (OBJECT_SELF); предварительно убрав все чтотам есть чар как спал так и спал и никаких изменений не произошло(( |
![]()
Сообщение
#3309
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Ну конечно не произойдет ничего.
Neverwinter Script Source object oPC = GetLastPCRested();
|
![]()
Сообщение
#3310
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Напомню: OBJECT_SELF в любом эвенте - это тот объект, к которому этот эвент привязан. OnPlayerRest - модульный эвент, поэтому OBJECT_SELF в нём - модуль.
Сообщение отредактировал virusman - Jun 25 2007, 15:10 |
![]() ![]() |
Текстовая версия | Сейчас: 29th July 2025 - 15:17 |