Вопросы и ответы

  1. ‹ Older
  2. 4 months ago

    MaJoR KolZ

    Oct 8 Постоялец Харьков User since 2014

    Черт, и ведь прочел же этот раздел перед тем как вопрос постить :)
    Спасибо!

  3. peter

    Oct 8 Administrator Земля(Москва) User since 2014

    MaJoR KolZ расскажешь где-нибудь про литературное творчество? Можно в http://club.syscall.ru например. :)

  4. FROST

    Oct 11 User since 2017

    peter В git влил возможность делать walkout(куда, false) -- при этом from не будет изменен. Может пригодиться.

    Peter, благодарю за проявленное внимание к вопросу.

  5. Ruido

    Oct 16 User since 2016
    Edited 4 months ago by Ruido

    Опять проблема.

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

    dlg {
    	nam ="BlisnetsiVTualeteDialog";
    	noinv = true;
    	title = [[Разговор с близнецами]];
    	enter = function ()
    	if BiZnakomstvo == false then
    	p [[-- Подпольный клуб в действии?^^ Голоса устраивают между ссобой перебранку общая суть которой заключается в "говорил же я тебе, что надо потише! - а что я?! Это всё ты!"
    Но затем из кабинки раздаётся бодрое "Привет!"]];
    	else 
    	p [[-- Привет, ребята!^
    	-- И тебе привет! С чем пожаловал?]];
    	end
    	end;
     
    		phr = { 
     
     
    		    {[[Найк?]]; pfn(BiZnakomstvo = true) [[Бывший спортсмен лет сорока. Каждое утро вскакивает не свет не заря и на пробежку.]]};
    		    {[[Найк2?]];[[22222Бывший спортсмен лет сорока. Каждое утро вскакивает не свет не заря и на пробежку.]]};
     
    		  };
    };	

    Но никак не удаётся нормально написать pfn(BiZnakomstvo = true). При попытки запустить пишет об ошибке. Как с этим совладать?

  6. peter

    Oct 16 Administrator Земля(Москва) User since 2014

    Строку

    {[[Найк?]]; pfn(BiZnakomstvo = true) [[Бывший спортсмен лет сорока. Каждое утро вскакивает не свет не заря и на пробежку.]]};

    Заменить на:

    {
       [[Найк?]]; 
       [[Бывший спортсмен лет сорока. Каждое утро вскакивает не свет не заря и на пробежку.]];
       cond = function() -- условие появления фразы
        return BiZnakomstvo 
       end,
    };
  7. peter

    Oct 16 Administrator Земля(Москва) User since 2014

    pfn это вызов функции с аргументами, а не условие. Так что в твоем случае логичнее всего cond.

  8. peter

    Oct 16 Administrator Земля(Москва) User since 2014

    Хотя, может я не понял задачу? Что ты хочешь сделать pfn?

  9. peter

    Oct 16 Administrator Земля(Москва) User since 2014

    Если нужно изменить переменную:

    {
       [[Найк?]]; 
       function()
          p [[Бывший спортсмен лет сорока. Каждое утро вскакивает не свет не заря и на пробежку.]];
          BiZnakomstvo = true;
       end,
    };
  10. peter

    Oct 16 Administrator Земля(Москва) User since 2014

    Или, если pfn:

    pfn(function() 
    BiZnakomstvo = true
    end), [[Бывший спортсмен лет сорока. Каждое утро вскакивает не свет не заря и на пробежку.]]

    Но не вижу смысла в данном случае так писать -- упрощения не видно :)

  11. Deleted 4 months ago by Ruido
  12. Ruido

    Oct 16 User since 2016

    Ещё вопрос

    {
       [[Найк?]]; 
       [[Бывший спортсмен лет сорока. Каждое утро вскакивает не свет не заря и на пробежку.]];
       cond = function() -- условие появления фразы
        return BiZnakomstvo 
       end,
    };

    return BiZnakomstvo = "Если ответ true, то выводи текст".
    Как сделать так чтобы выводило не по True, а по False?

  13. LukiUK

    Oct 16 User since 2017

    Инвертировать. not false равно true.
    Ну и вдогонку "ни свет ни заря"

  14. Ruido

    Oct 16 User since 2016

    В смысле? В моем примере как правильно записать?

  15. peter

    Oct 16 Administrator Земля(Москва) User since 2014

    return not BiZnakomstvo

  16. 3 months ago

    Ruido

    Nov 15 User since 2016

    Как-то странно работает элемент "visits".

    Согласно документации он должен при первом заходе в комнату изменять значение переменной +1.

    В моем примере я использую формулу if ZahTualet*ZahKuhnia*ZahSpalni>0 then

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

    Прикладываю тестовый файлик.

  17. peter

    Nov 15 Administrator Земля(Москва) User since 2014

    В onenter переход еще не завершен. Он в процессе. В этот момент счетчик меньше на 1.

  18. Ruido

    Nov 15 User since 2016

    Так у меня же проверка идет не в самой комнате туалет-спальня-столовая, а когда герой выходит оттуда. То есть он зашёл и вышел из всех трёх.

    Для моей задумки можно какой-нибудь мне иной код написать? Или тут без вариантов и надо задумку редактировать?

  19. peter

    Nov 15 Administrator Земля(Москва) User since 2014
    Edited 3 months ago by peter

    в твоем коде я увидел что счетчики считываются с помощью visits() в onenter. разве это не так?

  20. peter

    Nov 15 Administrator Земля(Москва) User since 2014

    ну то есть вместо того чтобы использовать visits() извне, ты используешь его внутри onenter и удивляешься, почему на 1 меньше. не знаю как объяснить. может кто более коммуникпбелен.

  21. Ruido

    Nov 15 User since 2016

    Подскажи пожалуйста если не в onenter, то в какую часть кода вставить? Так чтобы в образце сработало по моей задумке.

  22. Newer ›

or Sign Up to reply!