• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

Не стесняюсь спросить....

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
Чтобы правильно всё прописалось приходится у Old5 ставить номера с 14, у Old5a с 15:
AI_Output(other,self,"DIA_9112_Old5_14_00"); //Ну как? Все еще много работы?

AI_Output(self,other,"DIA_9112_Old5a_15_00"); //Готово! Эх и здорово же вышло, один в один!
Что за ересь ты пишешь ? Здесь же разные диалоги в одном Гг обращается к Нпс, в другом Нпс к Гг ?! Естественно голоса будут другие(14 и 15) у персонажей ибо Непеси разные.. *facepalm*

Меняй их местами и будет тебе счастье...

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


все, понял... тут да, косяк движка....
Нет там никаких косяков..
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.900
Благодарности
6.777
Баллы
1.625
Нет там никаких косяков..
да, туплю...
чет меня понесло....
тогда я вообще вопроса не понимаю, толи проблема в том, что гг к неписю обращается, или в том, что он не обращается...
В общем я запутался..
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
Что за ересь ты пишешь ? Здесь же разные диалоги в одном Гг обращается к Нпс, в другом Нпс к Гг ?! Естественно голоса будут другие(14 и 15) у персонажей ибо Непеси разные.. *facepalm*


Меняй их местами и будет тебе счастье...


Тогда разбирайся со своими граблями сам и не засоряй тему..



Нет там никаких косяков..

AI_Output(other,self,"DIA_9112_Old5_14_00");
AI_Output(other,self,"DIA_9112_Old5a_14_00");

увидим как после будет срабатывать.
Мне после раз 10 хватило, что у меня смешивание 3-4 диалогов в одном идёт.

Отличие в одну букву компилятор не отличает.

instance DIA_OW_Old10(C_Info)
{
npc = PC_Mage_OW;
nr = 200;
condition = dia_OW_Old10_condition;
information = dia_OW_Old10_info;
permanent = FALSE;
description = "Ты можешь приготовить противоядие?";
};


func int dia_OW_Old10_condition()
{
if((Sarancha == 0) && (Npc_KnowsInfo(other,DIA_9107_Old6c)) || (Npc_KnowsInfo(other,DIA_9107_Old6b)))
{
return TRUE;
};
};

func void dia_OW_Old10_info()
{
AI_Output(other,self,"DIA_OW_Old10_14_00"); //Ты можешь приготовить противоядие?
AI_Output(self,other,"DIA_OW_Old10_14_01"); //От какого яда?
AI_Output(other,self,"DIA_OW_Old10_14_02"); //Точно не знаю, одного человека укусил ядовитый краулер.
AI_Output(self,other,"DIA_OW_Old10_14_03"); //Ядовитый краулер? Первый раз о таком слышу, может просто грязь попала в рану, попробуй промыть ее лечебным зельем.
AI_Output(other,self,"DIA_OW_Old10_14_04"); //Лечебное зелье не помогает, после него становится только хуже.
AI_Output(self,other,"DIA_OW_Old10_14_05"); //Хм, значит это очень сильный яд, я сейчас же займусь противоядием, приходи попозже.
Sarancha = 1;
B_LogEntry(TOPIC_KON1,"Через 3 часа будет готово противоядение. Главное не забыть.");
Tsan = txs + 3;
Msan = mxs;
AI_StopProcessInfos(self);
};

instance DIA_OW_Old101(C_Info)
{
npc = PC_Mage_OW;
nr = 200;
condition = dia_OW_Old101_condition;
information = dia_OW_Old101_info;
permanent = FALSE;
important = TRUE;
};


func int dia_OW_Old101_condition()
{
if((Npc_KnowsInfo(other,DIA_OW_Old10)) && (mxs >= Msan) && (txs >= Tsan))
{
return TRUE;
};
};

func void dia_OW_Old101_info()
{
AI_Output(self,other,"DIA_OW_Old101_15_00"); //Снадобье готово, вот.
AI_Output(other,self,"DIA_OW_Old101_15_01"); //Спасибо, надеюсь я еще не опоздал.
B_LogEntry(TOPIC_KON1,"Надо спешить. Времени мало осталось.");
B_GiveInvItems(self,other,ItPo_HealSancho_MIS,1);
AI_StopProcessInfos(self);
};

Аналогично и тут, если вместо DIA_OW_Old101 поставим DIA_OW_Old10a + условие пропишем (mxs >= Msan) && (txs >= Tsan)) && Npc_KnowsInfo(other,DIA_OW_Old10)) - не сработает проверка.

Тут или движок или компилятор глюки даёт.

Сначала со своим ПО разберитесь, чтобы оно работало как часы. (в версии 1.9 подобных багов не встречалось, в версии 3.14 начали вылазить как грибы. А кто-то меня уверял, что 3.14 абсолютно без багов::))
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
Отличие в одну букву компилятор не отличает.
Еще как отличает, название функции должно быть неизменно (!) разниться оно может только для разных ветвлений диалогов, где все для этих функции ветвлений расписывается с нуля.

AI_Output(other,self,"DIA_OW_Old10_14_00"); //Ты можешь приготовить противоядие?
AI_Output(self,other,"DIA_OW_Old10_14_01"); //От какого яда?
AI_Output(other,self,"DIA_OW_Old10_14_02"); //Точно не знаю, одного человека укусил ядовитый краулер.
AI_Output(self,other,"DIA_OW_Old10_14_03"); //Ядовитый краулер? Первый раз о таком слышу, может просто грязь попала в рану, попробуй промыть ее лечебным зельем.
AI_Output(other,self,"DIA_OW_Old10_14_04"); //Лечебное зелье не помогает, после него становится только хуже.
AI_Output(self,other,"DIA_OW_Old10_14_05"); //Хм, значит это очень сильный яд, я сейчас же займусь противоядием, приходи попозже.
Попробуй диалоги так изменить:
AI_Output(other,self,"DIA_OW_Old10_15_00"); //Ты можешь приготовить противоядие?
AI_Output(self,other,"DIA_OW_Old10_14_01"); //От какого яда?
AI_Output(other,self,"DIA_OW_Old10_15_02"); //Точно не знаю, одного человека укусил ядовитый краулер.
AI_Output(self,other,"DIA_OW_Old10_14_03"); //Ядовитый краулер? Первый раз о таком слышу, может просто грязь попала в рану, попробуй промыть ее лечебным зельем.
AI_Output(other,self,"DIA_OW_Old10_15_04"); //Лечебное зелье не помогает, после него становится только хуже.
AI_Output(self,other,"DIA_OW_Old10_14_05"); //Хм, значит это очень сильный яд, я сейчас же займусь противоядием, приходи попозже.

AI_Output(self,other,"DIA_OW_Old101_15_00"); //Снадобье готово, вот.
AI_Output(other,self,"DIA_OW_Old101_15_01"); //Спасибо, надеюсь я еще не опоздал.
И тут аналогично:
AI_Output(self,other,"DIA_OW_Old101_14_00"); //Снадобье готово, вот.
AI_Output(other,self,"DIA_OW_Old101_15_01"); //Спасибо, надеюсь я еще не опоздал.

Эта переменная где, в локальных или в глобальных ? Если первое, то в глобальные прописывай.

Сначала со своим ПО разберитесь, чтобы оно работало как часы.
Сказ про танцора с шарами тебе надеюсь знаком ?! ::)
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
Эта переменная где, в локальных или в глобальных ? Если первое, то в глобальные прописывай.


Сказ про танцора с шарами тебе надеюсь знаком ?! ::)

Constants.d - все переменные прописываю. Это какие тогда?

Если это задание могут выполнить 2 разных NPC как тогда разделить их, если один из них выполнил задание, а у второго ГГ ещё не был. Поясни как мне без переменной Sarancha обойтись, а то мне не известно.

Отличает названия если они отличаются цифрой, если всё совпадает кроме одной буквы - компилятор считает единым целым и во время диалогов получаем:

1 строчка диалога из диалога DIA_9112_Old5 14_00
2 строчка диалога из диалога DIA_9112_Old5a 14_00

Хотя оно должно читать DIA_9112_Old5 отдельно и DIA_9112_Old5a отдельно.

Пропуск в буквах латинского алфавита возможно в компиляторе.

Как такое прочтение информации из ou.bin мне кто-то пояснит?

Под лежачий камень и вода не течёт - надеюсь тебе это знакомо::)

P.S. Завершу мод, отдам на тестирование и с ещё одним багом компилятора появлюсь (берёт часть файлов из папки _misk_ смешивает с другими файлами из других папок. Будет приведено с картинками - сейчас времени нету фотографировать баг т.к. ещё 4 квеста и барьер писать)
 
Последнее редактирование:

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
Сonstants.d - все переменные прописываю. Это какие тогда?
Там же русским написано Константы, все переменные в скриптах всегда писались сюда:
..\Gothic Projects\SolRet2\Prjgothic\Story\Text.d
Хотя это не должно иметь значения..

Если это задание могут выполнить 2 разных NPC как тогда разделить их, если один из них выполнил задание, а у второго ГГ ещё не был. Поясни как мне без переменной Sarancha обойтись, а то мне не известно.
Какие еще два персонажа ?! в игре всего один перс вокруг которого все вертится, и это Гг.

Отличает названия если они отличаются цифрой, если всё совпадает кроме одной буквы - компилятор считает единым целым и во время диалогов получаем:

1 строчка диалога из диалога DIA_9112_Old5 14_00
2 строчка диалога из диалога DIA_9112_Old5a 14_00

Пропуск в буквах латинского алфавита возможно в компиляторе.
Ты наверное путаешь названия файлов диалогов с названием функции этого диалога. Так вот..

у тебя есть декларации диалога:
instance dia_OW_Old10(C_Info)
его условие выполнения:
func int dia_OW_Old10_condition()
и тело функции:
func void dia_OW_Old10_info()
как видно, название функции неизменно и таким всегда должно быть..

Далее, тело функции вызывает функцию: AI_Output, например:
AI_Output(self,other,"DIA_OW_Old101_14_00"); //Снадобье готово, вот.
в которой воспроизводятся диалоги персонажей, в зависимости от аргументов: self,other,
это будет строка диалога Нпс или Гг..
Само название файла здесь не важно, но важна цифра суффикса, она определяет чей используется голос для воспроизведения, _15_00 всегда Гг.. все остальное Непеси любые другие..

Название файла диалога озвучки может быть любым, но аргументы диалога (self,other,) всегда должны быть проставлены правильно, т.е. соответствовать тому персонажу/номеру голоса, который произносит диалог.
Так наверное.. ::)
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
Там же русским написано Константы, все переменный в скриптах всегда писались сюда:
..\Gothic Projects\SolRet2\Prjgothic\Story\Text.d
Хотя это не должно иметь значения..


Какие еще два персонажа ?! в игре всего один перс вокруг которого все вертится, и это Гг.


Ты наверное путаешь названия файлов диалогов с названием функции этого диалога. Так вот..

у тебя есть декларации диалога:
instance dia_OW_Old10(C_Info)
его условие выполнения:
func int dia_OW_Old10_condition()
и тело функции:
func void dia_OW_Old10_info()
как видно, название функции неизменно и таким всегда должно быть..

Далее, тело функции вызывает функцию: AI_Output, например:
AI_Output(self,other,"DIA_OW_Old101_14_00"); //Снадобье готово, вот.
в которой воспроизводятся диалоги персонажей, в зависимости от аргументов: self,other,
это будет строка диалога Нпс или Гг..
Само название файла здесь не важно, но важна цифра суффикса, она определяет чей используется голос для воспроизведения, _15_00 всегда Гг.. все остальное Непеси любые другие..

Название файла диалога озвучки может быть любым, но аргументы диалога (self,other,) всегда должны быть проставлены правильно, т.е. соответствовать тому персонажу/номеру голоса, который произносит диалог.
Так наверное.. ::)


Эрнст/Милтен: - Снадобье готово, вот. (ГГ получает противоядие)

ГГ: - Спасибо, надеюсь я ещё не опоздал. (конец диалога)

Какой один персонаж?

Два персонажа могут выполнить квест и от игрока зависит к какому NPC пойдёт ГГ и нам нужно отключить возможность говорить об одном и том же диалоге если ГГ побывал у Эрнста или Милтена.
Пример: ГГ побывал у Эрнста - диалог этот же у Милтена должен быть блокирован, как такое реализовать без дополнительной переменной?

Кто просил многовариантность?

Можешь выполнить через разных NPC, во время выполнения квеста у тебя есть до 9 разных способов пройти этот квест и на это обычные средства готики не были задуманы или были?

С картинками оба бага предоставлю в теме GothicSourcer (сначала мод надо дописать до стадии тестирования).
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
Два персонажа могут выполнить квест и от игрока зависит к какому NPC пойдёт ГГ и нам нужно отключить возможность говорить об одном и том же диалоге если ГГ побывал у Эрнста или Милтена.
Квест может выполнить только один персонаж *facepalm*, и это Гг, а вот в диалоге квеста, могут участвовать двое и более персонажей(если юзать триалог, например)..

Эрнст/Милтен: - Снадобье готово, вот. (ГГ получает противоядие)

ГГ: - Спасибо, надеюсь я ещё не опоздал. (конец диалога)

Какой один персонаж?
Для каждого из этих персов данный диалог должен быть прописан с нуля отдельно (!)

Кто просил многовариантность?
И в чем тут многовариантность проявляется ?! :rolleyes:

Можешь выполнить через разных NPC, во время выполнения квеста у тебя есть до 9 разных способов пройти этот квест и на это обычные средства готики не были задуманы или были?
Это обычное ветвление диалога..
Что до разных Нпс, то для каждого из них придется писать свои диалоги и ветвления.. Т.е. один диалог через разных Нпс без написания для них соответствующих диалогов, - не выполнить..
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
Квест может выполнить только один персонаж *facepalm*, и это Гг, а вот в диалоге квеста, могут участвовать двое и более персонажей(если юзать триалог, например)


Эрнст: - Снадобье готово, вот. (ГГ получает противоядие)

ГГ: - Спасибо, надеюсь я ещё не опоздал. (конец диалога)

Эрнст находится в 5 км от Милтена - как пример


Милтен: - Снадобье готово, вот. (ГГ получает противоядие)

ГГ: - Спасибо, надеюсь я ещё не опоздал. (конец диалога)

Милтен мы знаем где сидит

Итог: ГГ говорит с Милтеном и получает противоядие и у Эрнста доступен диалог с противоядием - каким образом можно избежать повторение выдачи противоядия у Эрнста?

Надо учесть, что игрок может выложить противоядие в сундук.

И как при расстоянии в 5 км реализовать диалог? (очень интересно узнать ноу хау::))


Вариант1 ГГ идёт и говорит с Эрнстом.

Вариант2 Если Эрнста убили орки, ГГ идёт в замок к паладинам и говорит с Милтеном.


Вариант провальный Санчо умрёт через 6 игровых часов с момента выдачи квеста.

На производство противоядия нужно n часов.

Это разве не 3 варианта пройти квест? (как бы простейший квест связанный со временем)
 
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
А если ставить Npc_KnowsInfo в середине или в конце проверки - Npc_KnowsInfo игнорируется.
Имей в виду, что функция работает правильно только с одноразовыми диалогами. Если диалог многоразовый, использовать эту функцию со ссылкой на него нельзя. И ещё, в качестве аргумента в функции лучше указывать "hero", а не "other", особенно, если диалог происходит по инициативе непися.

Два персонажа могут выполнить квест и от игрока зависит к какому NPC пойдёт ГГ и нам нужно отключить возможность говорить об одном и том же диалоге если ГГ побывал у Эрнста или Милтена.
Пример: ГГ побывал у Эрнста - диалог этот же у Милтена должен быть блокирован, как такое реализовать без дополнительной переменной?
Проверка Npc_KnowsInfo рулит. Но если использовать её нельзя по причине описанной выше, то остаётся только использование переменных.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
И ещё, в качестве аргумента в функции лучше указывать "hero", а не "other",
Тогда уж лучше ID==0 или номер голоса, эти значения неизменны в отличие от универсальных глобальных: other, hero и прочих...
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
Тогда уж лучше ID==0 или номер голоса, эти значения неизменны в отличие от универсальных глобальных: other, hero и прочих...

ID уникален, номер голоса не всегда - у меня все новые NPC с одним номером голоса т.к. звуковых файлов диалогов нет.

А вот Триалог интересно было бы увидеть рабочий пример, мне пришлось мучаться с одним диалогом - реализовывать через обычный диалог.


Стражник 1: - Эй! Чего тебе здесь надо?

ГГ: - Ничего, просто воздухом дышу.

Стражник 2: - Иди, дыши в другом месте!

ГГ: - А мне и тут неплохо.

Стражник 1: - Да чего ты с ним разговариваешь?! (Стражник 1 говорит Стражнику 2)

Пришлось делать, ГГ говорит с стражником 1 - завершение диалога. ГГ говорит с стражником 2 - завершение диалогаю ГГ говорит с стражником 1 - завершение диалога.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
ID уникален, номер голоса не всегда - у меня все новые NPC с одним номером голоса т.к. звуковых файлов диалогов нет.
У Гг ID всегда равен - 0, а голос - 15.
Наличие или отсутствие файла звука ни как не влияет на диалог..

А вот Триалог интересно было бы увидеть рабочий пример, мне пришлось мучаться с одним диалогом - реализовывать через обычный диалог.
Икарусы, троллейбусы в руки, и...
На нем воге будут примеры..
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
У Гг ID всегда равен - 0, а голос - 15.


Икарусы, троллейбусы в руки, и...

А если голос 15 поставить другому NPC? У нас ведь будут 2 NPC с голосом 15...

Спасибо. Мод реализовывается только с помощью средств предоставленных Пираньями (без расширителей).

P.S. Если расширять готику, то править все баги движка, добавлять в него новые возможности. (хотя бы двери исправить)
Без этого всякие расширители для меня не выглядят привлекательными.
(как пример движок S.T.A.L.K.E.R. когда стал доступен движок - много стало дописываться в движке, в том числе исправляться ошибки GSC)
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
А если голос 15 поставить другому NPC? У нас ведь будут 2 NPC с голосом 15...
Насколько жестко связан номер с Гг не смотрел, но в этих двух вариантах отрабатывал всегда, в тех местах где были баги с другими переменными. Возможно и другому присвоить можно, хз надо смотреть..

Спасибо. Мод реализовывается только с помощью средств предоставленных Пираньями (без расширителей).
Тогда забудь о триалогах и прочем подобном, реализуй стандартные конструкции на скриптах Готы.

P.S. Если расширять готику, то править все баги движка, добавлять в него новые возможности. (хотя бы двери исправить)
По дверям если правильно помню, то там актуальное состояние в сейвы не заносилось и при перезагрузке игры, то что было открыто/закрыто, всегда возвращалось в исходное состояние.. Тут скорее всего и спейсер ковырять и двиг и сейвы.. ::)

(как пример движок S.T.A.L.K.E.R. когда стал доступен движок - много стало дописываться в движке, в том числе исправляться ошибки GSC)
Угу, только у нас не сталкер и двиг под копирайтами. Хотя исходники всего что надо есть давно..
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
По дверям если правильно помню, то там актуальное состояние в сейвы не заносилось и при перезагрузке игры, то что было открыто/закрыто, всегда возвращалось в исходное состояние.. Тут скорее всего и спейсер ковырять и двиг и сейвы.. ::)

Открывание дверей NPC есть, а вот закрывания нет - исправить бы.
Информацию о состоянии дверей заносить в save - это более проще (модуль сохранения дописать и всё. Помню мною создавался модуль сохранения состояния в Русской биржи и загрузки сохранений - это элементарное)
Но тут надо не просто сохранение состояния открыто/закрыто, но и ещё переменную сохранять - дверь была закрыта на ключ или нет (т.е. каждой двери нужно сохранять минимум 2 переменных, 1 состояние открыто/закрыто и 2 если было заперто на ключ ставим 1(т.е. возвращаем проверку на проверку в инвентаре есть ли нужный ключ у того кто обращается к двери))
Двери и сундуки разделить (в Spacer у них одинаковые ocMob) - реформировать готику нужно (тут обычным добавлением поддержки новых операционных систем, текстурки большего разрешения - не пройдёт)

А в Spacer править не только двери, но и баг с неверной кодировкой предмета для ведра с водой (что подставляется автоматом Spacer)

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

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.816
Баллы
995
Открывание дверей NPC есть, а вот закрывания нет - исправить бы.
Осталось найти программера..

А в Spacer править не только двери, но и баг с неверной кодировкой предмета для ведра с водой (что подставляется автоматом Spacer)
В спейсер не лазили, может потом когда нибудь и кто нибудь..

+ наконец убрать старую систему начисления опыта (она уже устарела)
И чем она устарела ?! ::)
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
И чем она устарела ?! ::)

Система Dungeon Siege более практичная по сравнению с начислением опыта.

Сейчас у нас система опыта: начисляем опыт после совершения действия (выполнения квеста или убийства моба)

Система Dungeon Siege:
Пользуемся оружием ближнего боя - повышаем силу + повышением параметра оружия ближнего боя (это работает после каждого действия NPC)1
Пользуемся оружием дальнего боя - повышаем ловкость + повышением параметра оружия дальнего боя (это работает после каждого действия NPC)1
Пользуемся магией - повышаем интеллект + повышением параметра владения магией (зависит какой пользуешься) (это работает после каждого действия NPC)1

Эта же система более развёрнутая была использована в Корсарах 3 и достаточно хорошо себя показала.

Хотя моё мнение можно убрать полностью начисление опыта - чтобы отказаться полностью от уровня персонажей = но тут надо смотреть сколько параметров будет в игре и т.д. (зависит от условий, уйти от начисления опыта или перейти на системы как в Корсарах и т.д.)

1 - считается каждый удар по мобу (можешь не убивать моба, но уже прокачка способности прошла)
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
(модуль сохранения дописать и всё. Помню мною создавался модуль сохранения состояния в Русской биржи и загрузки сохранений - это элементарное)
прости, что?) кого ты там писал? ::)

Открывание дверей NPC есть, а вот закрывания нет - исправить бы.
Информацию о состоянии дверей заносить в save - это более проще
бери расширитель и делай, какие проблемы?

Двери и сундуки разделить (в Spacer у них одинаковые ocMob) - реформировать готику нужно (тут обычным добавлением поддержки новых операционных систем, текстурки большего разрешения - не пройдёт)
необоснованные и бредовые придирки. все что касается внутриигровых классов - в готане все прекрасно.
если что-то не устраивает - бери да пиши новые. я посмотрю как ты это реализуешь.
 

Лебедев

Участник форума
Регистрация
3 Сен 2005
Сообщения
595
Благодарности
77
Баллы
225
прости, что?) кого ты там писал? ::)

Адаптация программы (Русская биржа - гугл всё найдет) с одной платформы (Компьютеры ZX Spectrum) с одним языком программирования к платформе Windows на другой язык - уже равно написания с нуля т.к. исходников мне не давали, приходилось писать на уровне пользования игрой.

Сама адаптация: http://lastcharles.com/index.php/Завершённые-проекты/russkaya-birzha.html (плохо кто-то на сайте смотрел)

Работает программа с Win98 - Win7 (хотя писалась под Win98)

Модуль сохранения где-то валяется т.к. он оказался не нужен (нужен был бы, если был процесс работы на бирже длительнее недели и было больше фирм)

бери расширитель и делай, какие проблемы?
Расширитель это не есть исходный код. Мне более ближе когда я вижу как исходный код работает, а не гадай верно ли отработал исходный код и верные данные расширителю передал::)Много "если" не мой выбор*flowers*

если что-то не устраивает - бери да пиши новые. я посмотрю как ты это реализуешь.

Если писать то уже новый движок, готику умерла - её если переиздавать то нужно писать с нуля (чего Пираньи и не будут делать т.к. это стоит денег)
 
Сверху Снизу