Re: Вопросы по программированию игр

Вставил операторы первого варианта решения проблемы, а в игре когда ключом воздействую на замок - выводит ошибку: attempt to call global 'path' (a nil value)

С уважением, Владимир

752

Re: Вопросы по программированию игр

Версия инстед какая? Неоднократно использовал в своих играх, начиная с 1.2.0 фича.
Надо глянуть код, где path вызывается.

Re: Вопросы по программированию игр

Инстеад версии 1.5.2

С уважением, Владимир

Re: Вопросы по программированию игр

use = function(s,w)
        if w=='doorlock' then
            if me()._opendoor == false then
            me()._opendoor = true;
            set_sound('sound/key.ogg');
                            --!!! вставить появление опции двери для прохода в дом
            path 'дом':enable();
            return "Я отомкнул ключом дверь."; ---!!!
            else
            me()._opendoor = false;
            return "Я запер дверь на ключ.";
            end   
        elseif w=='knife' then
            return "Я попытался вcтавить ключ в нож, но увы..."; ---!!!
           
        elseif w=='window' then
            return "Я ключом постучал по окну, но никто не отозвался."; ---!!!
        elseif w=='throw' then
            drop('key');
            status._col = status._col -1;
            return "Брошено."; ---!!!    
        elseif w=='kover' then
            inv():del('key');
                status._col = status._col -1;
            return "Я спрятал ключ под половик.";
        elseif w=='door' then
            return "Я ткнул ключом в дверь, но она не открылась.";
           
            else return "Зачем?";
        end   
    end,

С уважением, Владимир

755

Re: Вопросы по программированию игр

Загадка, высылай весь код - гляну. Вроде так выглядит верно, может path в игре затирается своим значением?

Вот в особняке например:
path 'В особняк':enable()

Re: Вопросы по программированию игр

Я вышлю код игры на почту. Напишите свой e-mail

С уважением, Владимир

757

Re: Вопросы по программированию игр

Проблема понятна. Рекомендую прочитать вот это: http://instead.syscall.ru/forum/viewtopic.php?id=351

Ваш код сейчас работает в режиме совместимости, те INSTEAD ведет себя так, как он вел 3 года назад.

Гляньте документацию (самое начало) на предмет instead_version.

Те нужно в начале игры написать instead_version "1.7.0" или ту версию с которой вы работаете, а потом немного поправить код, чтобы привести его к новому API.

Re: Вопросы по программированию игр

Пробывал вставлять различные версии Инстеада (1.7.0 и 1.5.2 и другие) но в этом случае в игре пропадают статусы: время дня, здоровье, сила, уровень героя.

С уважением, Владимир

Re: Вопросы по программированию игр

Статусы переделывал из игры "Звездное наследие"

С уважением, Владимир

760 (edited by vvb 2012-08-18 16:52:25)

Re: Вопросы по программированию игр

VTroll wrote:

Статусы переделывал из игры "Звездное наследие"

емейл свой дай, я вышлю обновлённый до 1.7.0 кусок кода из ЗН. там всё обновлено.
Пётр, вот тебе и ответ на вопрос "зачем  стараюсь обновлять все свои игры до нового API".

761

Re: Вопросы по программированию игр

Дело не в статусах, дело в том, что написано http://instead.syscall.ru/forum/viewtopic.php?id=351

Цитирую:
- Замена в обработчиках enter,exit,use,used ссылок на объекты самими объектами.

Конкретно код в игре:

exit = function(s, t)
    if t=='courtyard' then


Перестает работать, его нужно заменить на:

exit = function(s, t)
    if t==courtyard then

Re: Вопросы по программированию игр

мой почтовый адрес: vladimir-trofimchuck@yandex.ru

С уважением, Владимир

Re: Вопросы по программированию игр

Решил оставить два перехода /ДВОР/ДОМ/ но когда дверь заперта при клике на дом выводится надпись ДВЕРЬ ЗАПЕРТА.

С уважением, Владимир

764

Re: Вопросы по программированию игр

Опытные Инстидовцы, нубло в программировании просит помощи. Подскажите, как сделать так, чтобы предметы в инвентаре отображались не просто строчкой - названием, но еще и иконкой - изображением?

765

Re: Вопросы по программированию игр

H.S. wrote:

чтобы предметы в инвентаре отображались иконкой - изображением?

    nam = function (s)
        local v = img ('images/gun.png');
        v = v..'пистолет';
        return v;
    end

766

Re: Вопросы по программированию игр

или оставить nam как есть, но задать disp:

disp = img 'images/gun.png'..'пистолет';

Функцией делать не обязательно. Если функцией, то кроме способа vvb можно так:

disp = function()
    p(img 'images/gun.png')
    p 'пистолет'
end

Re: Вопросы по программированию игр

Метод с disp имхо самый верный и простой, если нужно вместо названий использовать картинки и т.п.
От функций тут толку не особо много на самом деле smile

Re: Вопросы по программированию игр

Попробовал сделать NPC со своим инвентарём:


npc = player {
    nam="Таня",
    dsc="Здесь стоит {Таня}.",
    obj={ball}
};

ball = obj {
    nam="мяч",
    dsc="В руках у неё {мяч}.",
};

Но если поместить объект npc в комнату, его описание не выводится в списке объектов. Это фича такая, или я что-то не так делаю?

769

Re: Вопросы по программированию игр

Нет, просто ball описан после тани, и в момент записи obj = {ball}, ball == nil,
либо писать obj = { 'ball' }, либо определение ball поставить перед таней

770

Re: Вопросы по программированию игр

Хоть и с опозданием, но все-таки выкладываю экспериментальный модуль клавиатуры, с примером использования, для тех, кто хочет делать в своих играх ввод:
http://instead.googlecode.com/svn/trunk … /keyboard/

Re: Вопросы по программированию игр

Кстати. Peter, забываю спросить про катсцен. Это нормально, то что при обработке фэйдингов не сразу срабатывает какой либо хоткейс или клацание курсором по активным объектом, даже элементарно меню надо клацнуть несколько раз.

Qui habet aures audiendi, audiat...

772

Re: Вопросы по программированию игр

Во время фейдинга инстед находится на паузе. Так что можно сказать, что нормально.

Re: Вопросы по программированию игр

Окей, тогда все норм.

Qui habet aures audiendi, audiat...

Re: Вопросы по программированию игр

Peter wrote:

Хоть и с опозданием, но все-таки выкладываю экспериментальный модуль клавиатуры, с примером использования, для тех, кто хочет делать в своих играх ввод:
http://instead.googlecode.com/svn/trunk … /keyboard/

Потестировал - великолепно! И главное, полностью кросс-платформенно. Это то, чего реально не хватало.

Re: Вопросы по программированию игр

Я тут кропаю ужасно пошлую и бездарную игру на базе Инстеда. Есть моменты которые непонятно как сделать в принципе. Обязательно надо ввести кое какие параметры для ГГ.
Деньги.
Рост, вес. Будет что то типа счетчика калорий.
Так же ввести игровое время что бы с переходом на другую локацию оно менялось.
И главное, где можно подсмотреть как сделать боевую систему.
По боевке у меня есть задумка. Но чувствую что я понятия не имею с какой стороны подступиться к проблеме. Опишу, может подскажете чего.
Битва магий, но не эта дурь из РПГ. Мана и здоровье. Нет, мы пойдем другим путем. Базово у ГГ есть здоровье. Есть ментальные силы. Есть душа. И есть уровень Скверны. (Если ГГ изучает одну из версий магии, то у него появляется еще одна характеристика подключение к потоку силы) Как должен выглядеть бой.
Первый раунд. Защитные действия и атакующие действия. ГГ и противник накладывают на себя ментальные и физические щиты. И начинают лупешить друг друга заклинаниями. Все заклинания расходуют душу, если душа дойдет до 0, то ГГ умрет. Если противник пробъет физзащиту, то гг умрет от первого же удара. Если противник пробъет ментальный щит то он превратит ГГ в марионетку. Победив противника ГГ может забрать у него душу(вместо экспы) но с пожиранием чужой души ГГ увеличивает скверну. Когда скверна дойдет до 100% ГГ станет демоном. Будут способы понижения уровня скверны, как вам флагелляция? roll
Конечно без всего этого можно обойтись. Даже я бы сказал можно обойтись без самой игры. Можно сделать очередное тыканье карандашом в листок бумаги и загадать таинственную загадку, разгадкой впрочем будет как всегда безблагодатность. Я уже лет 8 ищу платформу для реализации той игры которую хочу сделать. Кропал моды для Морровинда, Обливиона, Фалаута 3, Фалаута НВ и Скайрима. Но там я не могу развернутся на полную катушку, тесновато. Вот набрел на Инстед. Признаюсь откровенно, я вообще не играл ни в одну инстедовскую игру. Только посмотрел туториал и скачал базовую обучающую игру.

И еще, я хотя и не Шерлок Холмс но подметил что в играх применяется не только main.lua но и еще целая куча этих луа файлов. Я в луа полный ноль. Могу только подозревать что это сделано для облегчения написания скрипта, типа комнаты в одном месте, боевка в другом, и.т.д.. А то я еще почти ничего не сделал, а уже к 400 строчкам приближается код. Если туда еще запихать и все остальное, я могу просто потеряться в своем же коде. Я таки прав или я таки лох и опозорился? И как переключаться между этими отдельными файлами?

ПыСы. Я не прошу мне выслать готовый код моих идей. Просто подскажите где можно найти хоть что то аналогичное. Ну и желательно сам принцип механизма.