Помощь - Поиск - Пользователи - Календарь
Полная версия: Кто нибудь расскажите как создать сервер для NWN
Город Мастеров > РЕДАКТОРЫ > Шарды рунета
Страницы: 1, 2
mamuc
KoYuKi baskan очевидно предлагает создать НПС с диалогом, к которому подойдя , игрок смог бы сделать сохранение персонажа, выбрав в диалоге соответствующий ответ

про защиту от взлома при создании - это сделать очень просто : на входе игрока( OnClientEnter) добавить проверку : проверять сумму всех характеристик сравнивая с мах возможным(просто поэкспериментировать, что бы точно определить мах число возможное получить легальным способом)
cкрипт примерно такой( пишу без тулсета, проверь)
Neverwinter Script Source
object oPC = GetEnteringObject(); // ecli uzhe estj stroka, to eto propusti
if (GetHitDice(oPC)<2// proverka toljko dlja novichka
{  
    int nMax = 68; // tut nado posmotretj kakoe poluchitsja max, ja vzjal proizvoljnoe znachenije
    int nReal = GetAbilityScore(oPC,ABILITY_STRENGTH)+GetAbilityScore(oPC,ABILITY_DEXTERITY);
    nReal += GetAbilityScore(oPC,ABILITY_CONSTITUTION)+GetAbilityScore(oPC,ABILITY_INTELLIGENCE);
    nReal += GetAbilityScore(oPC,ABILITY_WISDOM)+GetAbilityScore(oPC,ABILITY_CHARISMA);
    if (nReal>nMax)
    {
        // tut nado dobavitj zapisj sobitija v logfail i vidachu soobchenija v shout
        // i komandu perenosa chitera v loku bez vixoda - eto efektivnee chem prosto boot
        // pardon.gif   
        return;
    }
}


п.с. кстатин адо бы проверить позволяет ли игра поднимать такому ломаному чару уровень..накинуть опыт и посмотреть не выбросит ли так как это описано выше biggrin.gif
KoYuKi
mamuc большое спасибо! Очень помог! good.gif
Слушай, а вот то, что мне baskan дал (насчёт сэйва персов) можно переделать на OnRest?, так будет куда удобней, если можно, подскажи как, а то я пробовал, чё то не получается. Да и ещё подскажите кто нибудь возможно ли сделать так чтобы охранники стоящие в здании нападали на всех у кого в имени нет определённых символ, ну в данном случае клана. Если можно, то как, лично мне это представляется безумно сложным. Ну или если нельзя так, то хотябы, что бы они нападали на всех у кого мировозрение не lawful-good.
baskan
mamuc
Да ты прав, но конечно было бы намного удобнее повесить на эмот ванд.
RiPPeR
А еще лучше автоматом
KoYuKi
Ну кто нить подскажите как на OnRest сэйв персов поставить
RiPPeR
Neverwinter Script Source
void main()
{
object oPC = GetLastPCRested()

if (GetLastRestEventType == REST_EVENTTYPE_REST_STARTED)
  ExportSingleCharacter(oPC);
}


Что-то типо этого, но желательно еще дополнить, кастомную систему отдыха допустим припаять.
KoYuKi
RiPPeR спасибо!
Появилась очередная большая проблема. Прикрутил я к модулю PRC, и вот какая проблема, захожу на сервак создою нового перса, а PRC будто и не ставил вовсе всё так же как и было, классы все теже. Тут же выхожу проверяю через тул - всё на месте. Сахожу обратно в игру, создаю перса в сингле, но там всё есть все новые классы. В чём проблема подскажите!!?? Я уже просто голову сломал! В сингле есть а в мультик нету. Да, при коннекте к серваку нужные для PRC хаки он запрашивае, и если их на компе нету посылает куда подальше, но при этом самого PRC на серваке нету будто и не ставил вовсе. Помогите пожалуйсто!! А то я народ взбаламутил они щас там качают хаки, а когда зайдут будет шишь с маслом, будто зря качали. И подскажите пожалуйсто как можно обойти проверку на конфликты при прикручивании хаков к модулю потому что вчера это самое прикручивание PRC длялось порядка 5 часов!
Добавлено в 06:17
Да и ещё, RiPPeR я же выше говорил я полный чайник и почти ни слова не понимаю из того что ты сказал насчёт кастомной системы отдыха. Я просто вставил то что ты написал и попробовал скомпилировать, в ответ компилятор послал меня куда подальше указав на эту строчку
if (GetLastRestEventType() == REST_EVENTTYPE_REST_STARTED)
mamuc
QUOTE
Да и ещё подскажите кто нибудь возможно ли сделать так чтобы охранники стоящие в здании нападали на всех у кого в имени нет определённых символ, ну в данном случае клана. Если можно, то как, лично мне это представляется безумно сложным.

...сделать это можно, но тогда надо немного поскриптить...а не проще для тебя будет сделать кустомный ключ для каждой организаци от дверей того дома, где она размещаеться и сделать двери открываемыми только с этим ключем..все это настраиваеться в тулсете элементарно biggrin.gif
OslavaO
QUOTE (RiPPeR @ Apr 4 2005, 15:15)

Для этого нужна целая система скриптов, над которой скриптеры всех шардов парят себе мозги smile.gif. Простым скриптом тут не обойтись, поищи на nwvault, там наверняка есть подходящие тебе системы, но все же рекомендую сделать что-то своё, например как у нас на шарде.

я поставил систему как на Нордке, но там идут только деньги с трупов (Вещи это редкость) зато на эпиках левелах валится по 1500-3000 с трупа.
Может ктото занает эту сичстему и подскажет как ее изменить crazy.gif
RiPPeR
2KoYuKi
А ну да smile.gif, я что-то поторобился, без тулсета писал, в блокноте. Вот исправленный вариант:

Neverwinter Script Source
void main()
{
object oPC = GetLastPCRested();

if (GetLastRestEventType() == REST_EVENTTYPE_REST_STARTED)
  ExportSingleCharacter(oPC);
}


QUOTE
я поставил систему как на Нордке, но там идут только деньги с трупов (Вещи это редкость) зато на эпиках левелах валится по 1500-3000 с трупа.
Может ктото занает эту сичстему и подскажет как ее изменить

Скинь скрипты, может помогу.
Lorendroll
Насчет защиты персов, все должно быть просто: в nwservere поставь галку около Enforce Legal Characters и убери около Local Characters Allowed. Персонажи храниться будут не у игроков, а у тебя на компе. Конечно, если взломать твой комп, то там похачить персов удастся, но похачить это уже вполне себе проблемма, которую нужно решать отдельно . smile.gif
PS про ПРЦ: попробуй скачать и поставить другую версию. Или обновить сам сервер. (До 165 лучше всего) Или проверь, все ли хаки ПРЦ у тебя включены. (В моей версии 11хаков)
KoYuKi
Lorendroll хм... у меня 9 хаков, 1 erf и 1 hif. Я так и не понял куда пиxать файл с форматом .hif?
Насчёт защиты персов всё это дело у меня стоит, вот только Enforce Legal Characters пришлось убрать потому что когда у чара 3 подкласса (у меня было Ranger, Wizard, Arcane archer) то он матерится и на серв не пускает, говорит мол так быть не может, ты браток однако читер и всё такое.
RiPPeR спасибо.
У меня тут вопрос на засыпку. Хочу сделать на серваке банк, или сндук, или просто дома людям сделать. Но вот какая проблема. Когда я серв перезагружаю, что происходит постоянно (не спрашивайте зачем), то всё что будет в банке, в этих домах и т.п. сбросится. Возможно ли сделать так чтобы данные о том что в банке лежит, серв держал например около файла персоонажа, то есть сохранял это дело отдельно от всего остального, и при запуске сервака это дело считывал? Блин как то плохо я объясняю swoon.gif . Вобщем чтобы файл содержимого банковской ячейки для каждого перса был отдельный и сохранялся где нить отдельно от модуля, а потом при запуске сервера оттуда считывался.
Пользоватся функцией сохранения нет возможности так как модуль доделывается прямо находу.
Lex
Система банка денег и вещей с сохранением есть уже давно готовая. И даже переведенная smile.gif
Смотри у Аваддона в подписи.
http://www.wrg.ru/forums/index.php?showuser=136
KoYuKi
Lex спасибо!
У меня тут возник вопрос. Можно ли убрать потолок в 40 уровней? Если можно, то как?
RiPPeR
QUOTE
У меня тут возник вопрос. Можно ли убрать потолок в 40 уровней? Если можно, то как?

Никак. Точнее можно, но нужно сильно над 2da издеваться. smile.gif
KoYuKi
RiPPeR отсюда пожалуйсто поподробней. У меня есть редактор 2da файлов, но какой конкретно файл для этого дела надо мучить, и как это делается впринципе, что мне искать, с чего начать? И может быть есть люди которые это уже делали?
Huk
QUOTE (KoYuKi @ Apr 6 2005, 05:38)
RiPPeR Прикрутил я к модулю PRC, и вот какая проблема, захожу на сервак создою нового перса, а PRC будто и не ставил вовсе всё так же как и было, классы все теже. Тут же выхожу проверяю через тул - всё на месте. Сахожу обратно в игру, создаю перса в сингле, но там всё есть все новые классы. В чём проблема подскажите!!?? Я уже просто голову сломал! В сингле есть а в мультик нету. Да, при коннекте к серваку нужные для PRC хаки он запрашивае, и если их на компе нету посылает куда подальше, но при этом самого PRC на серваке нету будто и не ставил вовсе. Помогите пожалуйсто!! А то я народ взбаламутил они щас там качают хаки, а когда зайдут будет шишь с маслом, будто зря качали. И подскажите пожалуйсто как можно обойти проверку на конфликты при прикручивании хаков к модулю потому что вчера это самое прикручивание PRC длялось порядка 5 часов!

Подними чару уровень - со 2-го уровня PRC на шарде должен нормально заработать.
Lex
QUOTE (KoYuKi @ Apr 7 2005, 16:18)
RiPPeR отсюда пожалуйсто поподробней. У меня есть редактор 2da файлов, но какой конкретно файл для этого дела надо мучить, и как это делается впринципе, что мне искать, с чего начать? И может быть есть люди которые это уже делали?

Лучше не заморачиваться этим.
40 это даже больше, чем нужно.
KoYuKi
Lex понимаешь, серваку только третья неделя, а у некоторых уже 24 левел, как то быстро блин.
Блин, люди, не могу ничего понять, у меня стоит NWN + SoU + HotU + CEP . Lex дал мне ссылку на Банк и систему гильдий (за что ему отдельное спасибо). Но при запуске этого дела в туле, тул мне говорит что версия у меня старая, и так происходит со множеством модулей, как так ? dntknw.gif Или есть ещё какие нибудь обновления о которых я просто не знаю?
И ещё один вопрос: как сделать так, чтобы когда в городе один перс атаковал другого на него бросались стражники?
RiPPeR
QUOTE
Но при запуске этого дела в туле, тул мне говорит что версия у меня старая, и так происходит со множеством модулей, как так ?

Поставь себе critical update to 1.65 с сайта Bioware, хотя и игра станет полностью англ., но зато будет последняя версия сервера (лучше) и тулсет все модули открывать сможет (если для них хаки есть). Правда игрокам тоже эту штуку ставить придется.

QUOTE

понимаешь, серваку только третья неделя, а у некоторых уже 24 левел, как то быстро блин


Поставь больше штрафа за смерть, места с более крутыми мобами, которые будут чаще игроков поодиночке убивать. Сделай скажем за нажатие кнопки RESPAWN гарантированный делевел, если уровень больше ХХ, пусть его друзья, которые с ним бегали, его воскрешают.

QUOTE

И ещё один вопрос: как сделать так, чтобы когда в городе один перс атаковал другого на него бросались стражники?

Нужно весьма много времени потратить на скрипт который будет понимать кто именно на кого напал, как что просто поставь NoPvP в городе и все.
KoYuKi
RiPPeR спасибо!
Очередная проблема... Есть ли скрипт который убирает появившихся монстров если в локации никого нет? Если есть, дайте на него кто нить ссылку, а то я нашёл один на nwvault, но он какойто битый. А то эти появившиеся твари жрут чёртову уйму ресурсов.
RiPPeR
Где-то тут была тема про альтернативые системы спауна, попробуй поискать, там были ссылки на неплохие экземпляры, где мобы изчезают когда в локе нет ПС, и не появляются без них.
KoYuKi
RiPPeR там всё исключительно на NESS, а мне бы скрипт для стандартной системы спавна. Мне бы какой нить скрипт, который при отсутствии персов в локе всех мобов удалял, или убивал, не суть важно.
RiPPeR
Ставь NESS, не парься.
KoYuKi
RiPPeR я даже не знаю что это такое и как им пользоватся, я только учится им пользоватся буду месяц, а скрипт нужен сейчас, эти грёбаные мобу жрут ресурсы как сумасшедшие, даже не жрут, просто заглатывают. Пожалуйсто помогите кто нить, ведь могу поспорить что такой скрипт есть.
baskan
В скрипт дефоулт 9 допиши строчку
CODE
ExecuteScript("nd_kill_creature", OBJECT_SELF);


Создаеш скрипт
nd_kill_creature

CODE
void DestroyCreature(object oCreature)
{
   object oPC = GetFirstPC();
   object oPCArea;
   object oCArea = GetArea(oCreature);
   object oItem = GetFirstItemInInventory(oCreature);

   int nGold = GetGold(oCreature);

   if(oCArea == OBJECT_INVALID) return;

   while(GetIsObjectValid(oPC))
   {
       oPCArea = GetArea(oPC);
       if(oPCArea == oCArea && !GetIsDM(oPC))
       {
           ExecuteScript("nd_kill_creature", oCreature);
           return;
       }
       oPC = GetNextPC();
   }

   AssignCommand(oCreature, TakeGoldFromCreature(nGold, oCreature, TRUE));

   while(GetIsObjectValid(oItem))
   {
       DestroyObject(oItem);
       oItem = GetNextItemInInventory(oCreature);
   }

   DestroyObject(oCreature);
}

void main()
{
   if(GetStandardFactionReputation(STANDARD_FACTION_HOSTILE) == 100)
       { DelayCommand(600.0f, DestroyCreature(OBJECT_SELF)); }//прошло 600секунд, мобы исчезают.
   return;
}


P.S. Ripper не подкинеш ссылку на NESS?
RiPPeR
На ваулте в поиск введи
Huk
на onExit локи
Neverwinter Script Source
void main()
{
object oArea = GetArea(OBJECT_SELF);
object oPC = GetFirstPC();
object oTreasure = GetFirstObjectInArea(oArea);
object oIItem;
int nPCinArea = 0;

// Check to make sure no PC's In Area
while (GetIsObjectValid(oPC) == TRUE)
  {
    if (GetArea(oPC) == oArea)
      {
      nPCinArea = TRUE;
      }
    oPC = GetNextPC();
  }
// Master Loop thru all objects in zone
if (nPCinArea == FALSE)
  {
  while (GetIsObjectValid(oTreasure) == TRUE)
    {

    PrintString(GetTag(oTreasure));

    if (GetIsOpen(oTreasure)== TRUE)
      {
      AssignCommand(oTreasure,ActionCloseDoor(oTreasure));
      }
  if (GetIsEncounterCreature(oTreasure) == TRUE)
      {
        DestroyObject(oTreasure);
      }
    // if is encounter reset spawn counter
    if (GetObjectType(oTreasure) == OBJECT_TYPE_ENCOUNTER)
      {
        SetEncounterSpawnsCurrent(0,oTreasure);
        SetEncounterActive(TRUE,oTreasure);
      }
     
    // delete items
    if (GetObjectType(oTreasure) == OBJECT_TYPE_ITEM)
      {
        DestroyObject(oTreasure);
      }
    // Have other mobs rest
    if (GetObjectType(oTreasure) == OBJECT_TYPE_CREATURE){
        DestroyObject(oTreasure);}
    oTreasure = GetNextObjectInArea(oArea);
    }
  }
}

baskan
Мдась, если на шарде 200 лок, втыкание в каждую локу займет порядочное количество времениsmile.gif

Huk Возможно такое, что в локе с мобами есть НПЦ, которые что-то продают, либо стат.квест, вообщем вариантов много, просто скрипт будет и их уничтожать, а это не есть гуд.
KoYuKi
baskan, Huk спасибо, но вариант baskan'a мне нравится больше.
RiPPeR
QUOTE
Мдась, если на шарде 200 лок, втыкание в каждую локу займет порядочное количество времени

Это смотря кто шард делает, у нас допустим на каждой локе стоит скрипт именем res-ref'а локи, потом есть скрипт с дефолтовыми операциями, который прописан в каждый скрипт локи, куда бы я и дописывал, все довольно просто, так что даже мапперы ставят скрипты на локу smile.gif
KoYuKi
Подскажите кто нить где найти FAQ по Lands of Nordock, модуль обширный а советов или FAQ по мнему толкового нету. И какие скрипты на него надо поставить, посоветуйте пожалуйсто.
dumbo
ты где его взял? - те, что я видел, уже напичканы скриптами "по самое небалуйся".
KoYuKi
dumbo да, там полным полно скриптов. Вот я и спрашиваю, каких скриптов там, по вашиму мнению, не хватает, какие ещё стоит поставить, или оставить всё как есть. Там их просто слишком много я не могу просмотреть все. Ну например я не знаю есть ли там скрипт защиты перса от хака, скрипт сохранения во время отдыха, исчезания мобов если в локации никого нет и тому бодобных скриптов. Надо ли мне их ставить или они уже там есть?
dumbo
повторюсь - это зависит от того, где ты его взял, модуль этот. защиты от хака там нет (возьму для примера нордок, который на ваулте лежит), потому как буржуи юзают легал авторизацию. сохранение во время отдыха решается одной строчкой в скрипте рестовом - ExportSingleCharacter(oPC). убирания мобов тоже нету. хотя это не стопудово, ибо я тоже не перерывал все. могу только резюмировать, что там есть очень много всякого хлама, который либо используется наполовину, либо же не используется вовсе... т.е. если что-то хочешь сделать, попробуй сначала поискать там... swoon.gif
если будешь добавлять скрипты, то придется малость поразбираться в скриптах, так как просто заменять их на свои(например, OnClientEnter) нельзя в данном случае. работать либо перестанет, либо глючить жутко будет. надо будет вставлять куски скриптов(либо ExecuteScript(..)) в уже существующие.
ps. попробуй зайти на IRC канал - там тебе довольно быстро все разжуют...
KoYuKi
Дайте кто нить скрипт сохраняющий персов вне зависимости не от чего, то есть просто через определённый промежуток времени.
OslavaO
такой скрипт на авермеере стоит, можеш спросить у его админа Пита
Вот ася 344-761-187
KoYuKi
Да.. давненько я к вам не заходил. Как всегда у меня очередная сери проблем, надеюсь на вашу помощь.
Вобщем так есть у меня проблема с квестами. Один и тот же квест можно взять сколько угодно раз, то есть пошёл сделал, пришёл взял, ещё раз пошёл опять сделал... как это исправить?? Я себе уже просто мозг сломал, помогите!

И ещё проблема которая меня просто убивает, в прямом и переносном смысле. Вобщем так допустим есть деревня в ней люди, нападаю я на одного такого людя, на меня соответсвенно все кидаются, ну убивают меня, я воскрешаюсь, прихожу в эту деревню а они так сказать всё ещё на меня зляться, как это исправить, может скрипт какой дадите или ещё что нить типо того...

Ещё выше я писал одну проблему, повторюсь:
Есть допустим две деревни, нужно следующее, чтобы в случае смерти персоонажа в деревни 1 и в её олкрестностях, респаунились персы соответсвенно в деревни 1, а если они умирали в деревни 2 или в ее окрестностях то и появлялись соответственно там же... Мне уже отвечали на эту проблему но ничего не получилось так как ответили не совсем полно, я в скриптах нини, ну или почти.

Пожалйста помогите! Нужно просто позарес!
Заранее благодарю!


mamuc
QUOTE
Вобщем так есть у меня проблема с квестами. Один и тот же квест можно взять сколько угодно раз, то есть пошёл сделал, пришёл взял, ещё раз пошёл опять сделал... как это исправить?? Я себе уже просто мозг сломал, помогите!

...можно так : завести для каждого квеста свою переменную( например MyQuest1,MyQuest2....) фиксирующую прохохжение квеста со значениями TRUE/FALSE в начале все значения установить FALSE, а когда прошел квест присвоить TRUE... и ,в начале диалога задающий квест , поместить проверочку значения этой переменной, и если таковая = TRUE дать сообщения типа "Извини дорогой, но ты это уже делал"..а все такие переменные повесить на каком нить итеме постоянно находящимся в инвентаре игрока( не выбрасываемом итд) ..и на этот итем еще юзание селф повера можно добавить до кучи - пусть при юзании выдает список квестов с состоянием прошел\не прошел...

QUOTE
И ещё проблема которая меня просто убивает, в прямом и переносном смысле. Вобщем так допустим есть деревня в ней люди, нападаю я на одного такого людя, на меня соответсвенно все кидаются, ну убивают меня, я воскрешаюсь, прихожу в эту деревню а они так сказать всё ещё на меня зляться, как это исправить, может скрипт какой дадите или ещё что нить типо того...


тебе надо на то когда плейер убит (On Player Dead - модульный скрипт) добавить смену отношения фракции жителей деревни с агресмивного на неитральное...в стандартном скрипте это делается для 3 стандартных фракций ..тебе надо добавить такую же строку для фракции жителей твоей деревни...

KoYuKi
mamuc что значит "для !!!каждого!!! квеста свою переменную"? Что такое впринципе есть квест? Лично для меня это савокупность скриптов, это не отдельный файл накоторый можно переменную повесить... наверно я чё то не догоняю или путаю, разъясни пожалуйсто. Для меня квест это "сходи отнеси" (вешаю скрипт что вещь дают), потом отдаю "давай сюда" (вешаю скрипт что вещб забирают и награду дают) - ВСЁ. Или есть чтото чего я не знаю и квест можно делать как отдельный файл который можно на переменную повесить? Вобщем mamuc очень прошу если не затруднит напиши мне вообще что такое квест и как их делать потому что я подозреваю что мои знания в этой области равны 0! Буду очень признателен!
mamuc
QUOTE
это не отдельный файл накоторый можно переменную повесить

локальную переменную ты можешь завести не только в скрипте...локальную переменную можно "повесить" и на обьект( на итемб плейсебл. локу и на самого игрока )..

делаеться это командами SetLocalInt, SetLocalString итд... например
SetLocalInt( oPC,"MyQuest1",FALSE);
SetLocalInt( oItem,"MyQuest2",TRUE);
и считать когда надо с GetLocalInt, GetLocalString итд... например
GetLocalInt( oPC,"MyQuest1");
GetLocalInt( oItem,"MyQuest2");

в частности так можно "передать" и "хранить" значение переменных, когда иначе это трудно или не возможно yes.gif
slavaz
ИМХО удобнее в квестовых переменных хранить не true/false, а числа. Тогда появляется понятие "промежуточное состояние квеста".
Например, пойди туда-то, принеси то-то. Пришли, нам говорят: "и чего припёрся? Ну раз ты тут - почеши мне спинку". Спинку почесали - на тебе леденец. Леденец несём кому-то, нам говорят за это что-то и т.д.
То есть появляется возможность узнать, в какой стадии находится квест (начат, пройден до некоего ключевого момента или завершён).
Это, конечно, для квестов посложнее, чем "сказали, что принести -> принесли->награда"...
mamuc
конечно удобней числа, но это для начинающего, как KoYuKi, и посложней может оказатся biggrin.gif
..а так всего два действия заскриптовать :
1)проверка выполнен ли уже квест(TRUE/FALSE ) в месте задавания квеста
2) присвоение TRUE при выполнении квеста
RiPPeR
Так вроде BOOL'ев нету в NWN, только int есть, так что все равно числа придется использовать smile.gif
baskan
KoYuKi
Щас я тебе все обьясню :

1) Открываем Тулсет, создаем локацию 2х2. В один угол ставим хенчмана(NPC), а в другой крысу.
2) Назовем NPC "KoYuKi"
3)Открываем его диалог, пишем, что нам скажет NPC :

1)"Привет приятель, помоги убить крысу"
1)Хорошо Помогу
1"Она на другом конце карты, убей ее и принеси мне ее сердце"
2)Нет, она слишком сильна для меня
2"Ну и иди к черту"

Теперь начнем разбиратся..
1.1)начнем с приветствия нпц "Привет приятель, помоги убить крысу"
Смотрим в правый нижний угол и видим закладку " Text appears When", открываем скрипт визард( кнопка в виде шляпы рядом), ставим галочку на Local Variable (Локальная переменная), жмем далее, там у нас появилось меню.. в первой строчке ставим значение int и называем ее например "qwest", далее идет значение, ставим "меньше чем", далее "constant int", придаем ей значение 1 и нажимаем add. Сохраняем скрипт, и называем его как вам вздумается.

Итак, что мы сделали в пунке 1.1?
Мы задали значение : что если текст < значения 1, то этот текст будет работать.

1.2) Хорошо Помогу(наша реплика). Теперь мы открываем закладку Actions Taken, опять нажимаем на визарда. Ставим галочку под значением "Set Local Variables", далее мы видив меню. первоя строчка "int", вписываем qwest(как и в начале), вторая строчка "Constant int", задаем число 1, нажимаем add и сохраняем скрипт.

Итак, что мы сделали в пункте 1.2?
Мы сделали так, что теперь значение переменной равно 1(да, да тоесть теперь строчка "Привет приятель, помоги убить крысу" не появится).

1.3) "Она на другом конце карты, убей ее и принеси мне ее сердце"(ответ нпц)
Эту строчку оставляем без скриптового оснащения.

2.1) Нет, она слишком сильна для меня(ваш ответ)
Здесь делаем ВСЕ тоже самое, что и в пунке 1.2, НО ставим значение перменной не 1, а 2.
Итак, что мы сделали в пунке 2.1?
-Читай Пункт 1.2-

2.2)Ну и иди к черту"(ответ нпц)
Оставляем без оснащения.

Мы закончили первую ветку Диалога.
Теперь создаем новую ветку диалога :

3) "Ну что ты убил эту дрянь?"
3) Да, вот ее сердце
3) "Спасибо путник"
4) Еще нет, но я стараюсь

3.1) "Ну что ты убил эту дрянь?"(реплика нпц)
Открываем закладку "Text appears When", открываем визарда, сальной переменной, далее все теже настройки, что и в пункте 1.1, только теперь у нас на второй строке не "меньше чем", а "равно". Сохраняем скрипт.

Итак, что мы сделали в пункте 3.1?
Мы сказали тулсету( lol.gif ), что, если текст нпц == 1, то он запускает его( тоесть, если вы ответили в первой ветке "Хорошо помогу", то у вас появится именно эта ветка)

3.2) Создаем предмет с именем "heart" и суем его в крысу(не забыв поставить галочку, чтобы при смерти итем выпадал из тела монстра)
Да, вот ее сердце(ваш ответ)
открываем закладку "Text appears When", открываем визарда, ставим галочку на Item in Inventory (другая галка!!), в первую строчку вводим тег итема( heart), жмем add, сохраняем скрипт.

Итак, что мы сделали в пункте 3.2?
Мы сказали тулсету, чтобы он показал эту строчку диалоги, только если у игрока есть в инвентаре итем с одноименным тегом.

3.3) "Спасибо путник"(ответ нпц)
Делаем все тоже самое как и в пункте 1.2, но число переменной 3.

Итак, чмо мы сделали в пункет 3.3?
-Читай пункт 1.2-

4) Еще нет, но я стараюсь(ваш ответ)
Оставляем все как есть.

Делаем еще одну ветку диалога :

5)"Ты мне не помог! Теперь я умру в лапах животного. О горе мне."

5.1) "Ты мне не помог! Теперь я умру в лапах животного. О горе мне."(реплика нпц)
Делаем то же самое, что и в пункте 3.1, но число переменной 2.

Итак, чмо мы сделали в пункет 5.1?
-Читай пункт 1.2-.

Итак мы создали простой стат.квест. Теперь игрок первый раз придя к нпц услышит первую реплику, далее реплики зависят от его выбора(поможет убить крысу или нет).



P.S. Расписал, ВСЕ, что мог. Мозг ломать не хорошо.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.