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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Ваши идеи

ВоинИнтернета

Участник форума
Регистрация
29 Апр 2010
Сообщения
752
Благодарности
3
Баллы
200
  • Первое сообщение
  • #1
Если бы вы хотели видеть мод для готики 2, то каким?
Пишим все вплоть до деревьев и гильдий
 

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.942
Благодарности
1.470
Баллы
465
Теперь их куда интереснее давить.
И тоже соглашусь с облегчением реализации - в прыжке раздавить такого жука самый логичный вариант. Насекомое большое, чтобы его раздавить - просто так по нему не пробежишься.
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.169
Баллы
340
Хех! Вот они и оживились от функции "AI_Flee()".
О! Так намного лучше! Я так вдохновился этим видео, что по быстрому слепил для жуков мусорную кучу - убежище. :)
meatbug_house_render.jpg
 

Вложения

  • legacy_meatbug_house_01.7z
    24,3 KB · Просмотры: 123

Goth_Man

Участник форума
Регистрация
27 Окт 2014
Сообщения
196
Благодарности
33
Баллы
190
Прикольно бегают *lol*
Если много и совсем маленьких то и давить можно но какое с них мясо :confused: их есть можно только как китайцы тараканов едят, горстями*lol*
А вокруг ещё муж сделать из шершней мелких и приставучих
 
Последнее редактирование:

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
449
Благодарности
266
Баллы
230
Ещё такой вопрос по поводу опыта.
Если в какой-то момент погибает не один, а несколько жуков, то надпись "Опыт +10" "стэкуется", т.е сливается с другими такими же надписями "Опыт +10":

exp_1.jpg

И становится не понятно сколько же опыта было получено.

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

exp_5.jpg

Следующим шагом стало разделение опыта на 3 строчки(одна чуть по выше центра экрана, другая -
чуть по ниже и третья - по центру):

exp_3.jpg

Но всё равно получается какая-то не понятность из за хаотичного вывода опыта:

exp_2.jpg

Также есть шанс, что опыт по прежнему начнёт "стэковаться":

exp_4.jpg

Ребята, есть ли у вас идеи на счёт того, как сделать удачный вывод опыта?
 
Последнее редактирование:

Дикарь

★★★★★★★
Модератор
Регистрация
17 Апр 2007
Сообщения
7.281
Благодарности
9.050
Баллы
1.415
А никак нельзя сделать, чтобы надпись, появившись на экране, сразу же начинала сползать вниз? Тогда они накладываться не будут, так как предыдущие станут освобождать место последующим.
 

Goth_Man

Участник форума
Регистрация
27 Окт 2014
Сообщения
196
Благодарности
33
Баллы
190
Такую же фигню видел когда много предметов передаёшь. Может Saturas-а в AST попросить это исправить, если стандартными средствами не реализуемо.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Такую же фигню видел когда много предметов передаёшь. Может Saturas-а в AST попросить это исправить, если стандартными средствами не реализуемо.
Да, вполне возможно сделать такую штуку, у самого давно на языке крутится, спасибо, будет сделано.
Хотя на деле это и скриптами реализуемо вполне.
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
449
Благодарности
266
Баллы
230
А никак нельзя сделать, чтобы надпись, появившись на экране, сразу же начинала сползать вниз? Тогда они накладываться не будут, так как предыдущие станут освобождать место последующим.
Ну здесь "сползала вниз" значит просто вывод в координатах чуть ниже. Причём это "чуть ниже" зависит от текущего разрешения экрана у юзера. И эта анимация, скорей всего, будет выглядеть рывками на больших разрешениях экрана и при малой скорости изменения координат, так сказать. Проще говоря текст будет сползать не по одному пикселю за какой-то промежуток времени, а сразу по пять или десять. Ну тут надо смотреть.
Плюс к этому добавляется ещё одна проблема - это хранение значений опыта. Ведь каждый раз придётся стирать текст и выводить его с новой строки, так сказать. А для этого нужно заводить массив. А какого размера он будет? Сколько раз ГГ может получить опыт, пока текущая строчка опыта сползёт вниз экрана? Я не знаю.

Ещё одна не совсем проблема, потому что уже на пути решения. Это то, что текст, выводимый с помощью функции PrintScreen(), имеющий в себе хотя бы одну центральную координату (x = -1 или y = -1) плохо обрабатывается или редактируется. Проще говоря стереть такой текст нельзя просто так, придётся ждать пока он сам пропадёт по истечении времени, на которое он выводится. Или например, при выводе другого текста в этих же координатах, оба текста смешиваются, точнее один накладывается на другой, но не стирает его.
Недавно нашлось решение данного вопроса, но выводимый текст при этом становится каким-то моноширинным.
Вот пример вывода:
exp_long.jpg

Зато можно очищать строку от этого текста или перекрывать другим текстом этого же шрифта.
Я всё это к чему? К тому, что не так-то просто переделать систему вывода опыта данным способом.


Есть ещё одна мысль. Можно было бы включить зацикленный триггер и в нём отслеживать полученный опыт у ГГ. Если опыт изменился, то выводим то число - на сколько изменился, на время 1 сек. Если опыт ещё раз изменился, то через 1 сек. опять выводим на сколько изменился. Если опыт не меняется, то ничего не выводим. В данном случае опыт будет выводиться всегда по центру экрана и по очереди, но в виде суммы полученного опыта за промежуток времени ~ 1 сек(в интенсивной битве). Но после "застоя" первый опыт будет выводится сразу же.

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

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

Хотя на деле это и скриптами реализуемо вполне.
Ну приведи примерчик, посмотрим, может подойдёт.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Хех! Вот они и оживились от функции "AI_Flee()".

Не думал ли ты создать для убегания жуков оверлей с более высокой скоростью перемещения? В принципе, для этого даже анимку править не обязательно. Не пробовал ли организовать не убегание с помощью AI_Flee, а разбегание от ГГ с помощью проигрывания анимаций (поворот попой к ГГ и несколько шагов вперёд)?
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Ну здесь "сползала вниз" значит просто вывод в координатах чуть ниже. Причём это "чуть ниже" зависит от текущего разрешения экрана у юзера. И эта анимация, скорей всего, будет выглядеть рывками на больших разрешениях экрана и при малой скорости изменения координат, так сказать. Проще говоря текст будет сползать не по одному пикселю за какой-то промежуток времени, а сразу по пять или десять. Ну тут надо смотреть.
Плюс к этому добавляется ещё одна проблема - это хранение значений опыта. Ведь каждый раз придётся стирать текст и выводить его с новой строки, так сказать. А для этого нужно заводить массив. А какого размера он будет? Сколько раз ГГ может получить опыт, пока текущая строчка опыта сползёт вниз экрана? Я не знаю.

Ещё одна не совсем проблема, потому что уже на пути решения. Это то, что текст, выводимый с помощью функции PrintScreen(), имеющий в себе хотя бы одну центральную координату (x = -1 или y = -1) плохо обрабатывается или редактируется. Проще говоря стереть такой текст нельзя просто так, придётся ждать пока он сам пропадёт по истечении времени, на которое он выводится. Или например, при выводе другого текста в этих же координатах, оба текста смешиваются, точнее один накладывается на другой, но не стирает его.
Недавно нашлось решение данного вопроса, но выводимый текст при этом становится каким-то моноширинным.
Вот пример вывода:
exp_long.jpg

Зато можно очищать строку от этого текста или перекрывать другим текстом этого же шрифта.
Я всё это к чему? К тому, что не так-то просто переделать систему вывода опыта данным способом.


Есть ещё одна мысль. Можно было бы включить зацикленный триггер и в нём отслеживать полученный опыт у ГГ. Если опыт изменился, то выводим то число - на сколько изменился, на время 1 сек. Если опыт ещё раз изменился, то через 1 сек. опять выводим на сколько изменился. Если опыт не меняется, то ничего не выводим. В данном случае опыт будет выводиться всегда по центру экрана и по очереди, но в виде суммы полученного опыта за промежуток времени ~ 1 сек(в интенсивной битве). Но после "застоя" первый опыт будет выводится сразу же.

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

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


Ну приведи примерчик, посмотрим, может подойдёт.
Лень писать, в двух словах одна глобальная переменная которая отвечает за положение текста по оси Y и при каждом начислении опыта перед выводом, к ней добавляется некоторое число, все.
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
449
Благодарности
266
Баллы
230
Не думал ли ты создать для убегания жуков оверлей с более высокой скоростью перемещения? В принципе, для этого даже анимку править не обязательно.
Мысль пролетела, но мимо. :)
Я наверное о чём-то другом думал в этот момент.
Но в принципе можно попробовать и оверлей сделать. Оно как бы добавило немного "экшена" в общую ситуацию.:D
Или можно воспользоваться Vfx-эффектом ускорения на время "уползания" от врага. Есть такая возможность.

Не пробовал ли организовать не убегание с помощью AI_Flee, а разбегание от ГГ с помощью проигрывания анимаций (поворот попой к ГГ и несколько шагов вперёд)?
Пробовал. Поворот работал нормально, а вот дальше AI зависал. Ничего не происходило. Я просто другую AI-функцию использовал, а не анимацию. Решил на этом остановиться и просто перейти к AI_Flee(). Тем более жуки, просто расползаясь от цели, могут упереться в стенку или где-то неудачно застрять, бывает и такое. Так что лучше уж пусть убегают по доступной вайнет сетке.

Лень писать, в двух словах одна глобальная переменная которая отвечает за положение текста по оси Y и при каждом начислении опыта перед выводом, к ней добавляется некоторое число, все.
Не хотелось бы мне умничать, но в итоге мы получим просто опыт, выводимый вниз. В конце концов кол-во полученного опыта не будет видно.
Если же будет введён сброс счётчика по оси-у, то при массовых убийствах получим то же самое - это смешивание текста, и хаотичный вывод текста. Мне кажется так, или нет?
 
Последнее редактирование:

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Ну тут т ыправ, это как мне кажется все, на что способны стандартные скрипты, дальше только AST/Екст/Икарус.
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
449
Благодарности
266
Баллы
230
Вот на вскидку небольшой код, той идеи, про которую я говорил выше.
PHP:
var int hero_exp_old;//старое значение опыта у ГГ
var int exp_delay;//задержка по времени

//функция триггер-скрипта
func void TR_ShowExperience()//интервал = 0.1 сек
{

    var int exp_value;

    if (exp_delay == 0)//если задержка по времени истекла, то разрешаем проверить опыт у ГГ
    {
        if (hero_exp_old != hero.exp)//если опыт изменился, то
        {
            //узнаём на сколько он изменился
            exp_value = hero.exp - hero_exp_old;
     
            if (exp_value > 0)//если опыт прибавился, то
            {
                //выводим опыт с плюсом "+"
                PrintScreen(ConcatStrings("Опыт +",IntToString(exp_value)),-1,YPOS_XPGained,FONT_ScreenSmall,1);
            }
            else//иначе, если опыт убавился, то
            {
                //выводим опыт с минусом "-"
                PrintScreen(ConcatStrings("Опыт ",IntToString(exp_value)),-1,YPOS_XPGained,FONT_ScreenSmall,1);
            };
     
            hero_exp_old = hero.exp;//записываем новое значение опыта
            exp_delay = 10;//устанавливаем новую задержку на 10 мсек перед вызовом функции проверки опыта
        };
    }
    else if (exp_delay > 0)//если время задержки ещё не истекло, то
    {
        exp_delay -= 1;//уменьшаем счётчик задержки времени
    }
    else//иначе(это исключение)
    {
        //защита от взлома данных
        //счётчик времени не может быть отрицательным
        exp_delay = 0;
    };

    Wld_SendTrigger("TR_SHOWEXPERIENCE");//повторный вызов триггера
};

//Примечание: Если будете пробовать, то не забудьте из функции "B_GivePlayerXP()" убрать сообщение о полученном опыте.
Только смотрится как-то не привычно... Я уж не стал записывать тестовое видео.
 
Последнее редактирование:

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
p.s. А вообще интересное дело, мучатся рвать себе мозг, когда можно взять наработки из того же икаруса, и не парить мозг.

http://lego.worldofplayers.de/?Beispiele_Interface вот кстати.
 
Последнее редактирование:

Мари

Участник форума
Регистрация
15 Фев 2015
Сообщения
259
Благодарности
194
Баллы
300
Хотелось бы увидеть ГГ полноценным разбойником с инвизом, отравленными кинжалами, оглушениями противников, дымовыми завесами, ослеплением, прыжком за спину и прочими наворотами.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Хотелось бы увидеть ГГ полноценным разбойником с инвизом, отравленными кинжалами, оглушениями противников, дымовыми завесами, ослеплением, прыжком за спину и прочими наворотами.
Мм, WoW но однопользовательский?
 

Мари

Участник форума
Регистрация
15 Фев 2015
Сообщения
259
Благодарности
194
Баллы
300
Мм, WoW но однопользовательский?
Почему WoW, воин же есть, маг тоже, даже лучник, почему бы и разбойника с двумя клинками не сделать? Воровать же можно и взламывать, так почему бы пару приемчиков подлых не придумать?
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Почему WoW, воин же есть, маг тоже, даже лучник, почему бы и разбойника с двумя клинками не сделать? Воровать же можно и взламывать, так почему бы пару приемчиков подлых не придумать?
Поправочка, в готике нету, ни лучников, ни магов это второстепенные роли, за которые нельзя отыгрывать 100%, ибо в готике нету возможности с первого лвл вкачивать магию и играть ТОЛЬКО ей, и ничем более к мечу даже не прикасаясь.

P.s. Касательно разбойников и тд, то в нашем моде Анклав будет неплохая довольно реализация классов таких как маг/вор/лучник/воин.
 

Мари

Участник форума
Регистрация
15 Фев 2015
Сообщения
259
Благодарности
194
Баллы
300
Поправочка, в готике нету, ни лучников, ни магов это второстепенные роли, за которые нельзя отыгрывать 100%, ибо в готике нету возможности с первого лвл вкачивать магию и играть ТОЛЬКО ей, и ничем более к мечу даже не прикасаясь.

P.s. Касательно разбойников и тд, то в нашем моде Анклав будет неплохая довольно реализация классов таких как маг/вор/лучник/воин.
А мне всегда казалось, что игра нас знакомит со всеми классами в самом начале. В башне дубина лежит ближнего боя, у пруда - лук, свитки заклинания вообще везде валяются.И почему это нельзя качать только одну специализацию?
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
А мне всегда казалось, что игра нас знакомит со всеми классами в самом начале. В башне дубина лежит ближнего боя, у пруда - лук, свитки заклинания вообще везде валяются.И почему это нельзя качать только одну специализацию?
А ты по пробуй пройти игру ниразу не взвяв в руки меч а тупо одной магией, это почти невозмжно, и займет времени год наверное, с лучниками чуть чуть проще, но тоже сложно.
 
Сверху Снизу