[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » У костра (общий) » Туториалы » Помощь по ГЕКК (Команда на "задержку" игрового времени)
Помощь по ГЕКК
Сазан Дата: Воскресенье, 2012-07-08, 12:54 | Сообщение # 1

Группа: Друзья
42
1
0
Как должна выглядеть эта команда?
Собираюсь применить ее на триггере. Сначала идет затемнение (IMod FadeToBlackISFX ), а потом должно идти как раз задержка игрового времени, напимер, 2-ух дней. Можете помочь?


Cinema 4D
Статус: Offline
Macoron Дата: Воскресенье, 2012-07-08, 14:28 | Сообщение # 2

Группа: Администраторы
623
5
Сазан,
Я так понял просто скипнуть два дня?
Самый простой способ прибавить к глобалу GameDay значение.
Я уже так забыл синтаксис скриптинга...


Если ото всех воняет говном, может, это ты обосрался?
Mr. Freeman, Part 58
Статус: Offline
djsave Дата: Воскресенье, 2012-07-08, 15:36 | Сообщение # 3
Ни шагу назад !!!!
Группа: Администраторы
1490
блин щас скумекаю и напищу скрипт как это должно выглядеть.
Так давай подробнее что это будет.
если я правильно понял то ты имел в виду следующее:
  • ГГ заходит в тригер01
  • происходит затемнение экрана
  • в момент затемнения время изменяется на 2 дня вперед
  • ГГ остается на своем месте

    Сейчас напишу, проверю и выложу.

    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
  • Статус: Offline
    Сазан Дата: Вторник, 2012-07-10, 00:16 | Сообщение # 4

    Группа: Друзья
    42
    1
    0
    djsave, да, вот так и должно быть. У меня проблема: я дошел до того, что (сначала делал на терминале) идет команда ForceTerminalBack, потом затемнение. Затем телепорт к точке (player.moveto). Так вот. Затемнение начинается лишь осле телепортации. Почему так? Или нужно указывать параметр задержки:
    Параметр таймера == 0
    Отключение терминала
    Установить параметр таймера == 0,2
    Затемнение
    Телепорт.
    Так будет правильнее?


    Cinema 4D
    Статус: Offline
    djsave Дата: Вторник, 2012-07-10, 17:35 | Сообщение # 5
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    Так не запутывай - игровая механика вещь тонкая. Сегодня как сяду дома за комп так напишу те скрипт по алгоритму что я формулировал сообщением выше. Если тебе необходимо делать это через терминал то там это делается по другому. Разберись уж как тебе нужно.
    Насчет терминала могу сказать только что если так работает то поменяй алгоритм.
    Затемнение - выключение терминала - перемещение ГГ.
    Игра иногда обрабатывает команды с разным временным промежутком и поэтому команда данная последней иногда срабатывает первее чем самая первая команда. В случае когда необходимо точное выполнение команд то лучше создать пустой квест и управлять всем через его скрипт, но только не стоит много квестов запускать сразу.
    Все обещая сегодня вечером напишу(возьмусь за написание) скрипт.


    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
    Статус: Offline
    Сазан Дата: Вторник, 2012-07-10, 20:54 | Сообщение # 6

    Группа: Друзья
    42
    1
    0
    djsave, благодарю.

    Cinema 4D
    Статус: Offline
    djsave Дата: Вторник, 2012-07-10, 21:01 | Сообщение # 7
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    Я тока пришел - смотрю ты щас тут. Занимаюсь скриптом - как сделаю выложу.

    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
    Статус: Offline
    Сазан Дата: Вторник, 2012-07-10, 21:10 | Сообщение # 8

    Группа: Друзья
    42
    1
    0
    djsave, еще раз спасибо.

    Cinema 4D
    Статус: Offline
    djsave Дата: Вторник, 2012-07-10, 22:21 | Сообщение # 9
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    Значит так - поскольку задачка на самом деле не так проста как кажется то я ее и не стал усложнять .
    Вот самый простой пример скрипта того что тебе нужно :
    Code
    scn 1aTimeTestTrigerSCRIPT

    short CurrentDay

    Begin OnTriggerEnter Player
          
         imod FadeInFromBlack4sISFX
         Set CurrentDay to GameDay  
         Set GameDay to (CurrentDay+2)  
         Player.MoveTo 1atimetestmarkerref
             
    END

    Этот скрипт пишется в тригер и когда гг туда заходит то все и случается.
    Но у этого просто кода есть свои грабли- если день будет 31 число то дни увеличатся и дата будет 33число - далее после того как пройдут сутки дата автоматом перейдет на 4е число как и должно быть по порядку. Если этот момент принципиален то можно отслеживать текущий месяц и дату и переводить ручками, но это сразу куча кода, причем та еще куча.
    Насчет эффекта и перемещения - у меня было маленькое расстояние и я не смог понять что происходит раньше, если что то нужно добавить задержку таймером.
    Так же можно отключить активатор после перемещения ГГ.


    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
    Статус: Offline
    djsave Дата: Вторник, 2012-07-10, 22:34 | Сообщение # 10
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    А что там не понятно ? Написано что время сообщения должно быть целым числом и не short a int

    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
    Статус: Offline
    Сазан Дата: Вторник, 2012-07-10, 22:35 | Сообщение # 11

    Группа: Друзья
    42
    1
    0
    Да все-все, я уже разобрался.

    Cinema 4D
    Статус: Offline
    djsave Дата: Вторник, 2012-07-10, 22:39 | Сообщение # 12
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    Да, ГЕКК он немного щепетилен к всяким там названиям.

    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
    Статус: Offline
    djsave Дата: Четверг, 2012-07-12, 16:01 | Сообщение # 13
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    Сазан, как твой скрипт ? фурычит?

    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
    Статус: Offline
    Сазан Дата: Четверг, 2012-07-12, 17:52 | Сообщение # 14

    Группа: Друзья
    42
    1
    0
    Да! Все отлично работает!
    Могу скинуть рабочую версию, если, конечно, интересно. Мой проект, делал еще с июня того года. Мне как раз тов. Macoron помогал biggrin


    Cinema 4D
    Статус: Offline
    djsave Дата: Четверг, 2012-07-12, 17:59 | Сообщение # 15
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    Ах он злыдень этот товарищ, значит мне он не хочет помогать - говорит религия не позволяет. Так так ......
    Да выложи полностью скрипт - глядишь пригодиться кому или как пособие будет.


    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
    Статус: Offline
    Сазан Дата: Четверг, 2012-07-12, 18:04 | Сообщение # 16

    Группа: Друзья
    42
    1
    0
    biggrin Он помогал, в смысле, в том году.

    Добавлено (2012-07-12, 18:04)
    ---------------------------------------------

    Code
    scn ForgottenForpostMetWallScript

    short State   
    short GetButton
    short button
    short CurrentDay   

    begin onActivate
    IMod FadeToBlackISFX
    if IsActionRef player == 1
       if state == 0
         if player.getAV repair >= 35
          ShowMessage ForgottenForpostMetWallMessage
          set GetButton to 1
         else
          ShowMessage ForgottenForpostMetWallMessage02
         endif
       endif
    endif
    end

    begin gameMode

       if GetButton == 1
        set GetButton to 0
          
        if state == 0
         set button to getButtonPressed
          if (button == 0) && (player.getAV repair >= 35) && (player.getItemCount Wrench01>=1)
            ShowMessage ForgottenForpostMetWallMessage03
            set state to 1
                         ForgottenForpostMetWallREF2.Disable
                         ForgottenForpostTubeREF.Disable
                         ForgottenForpostMetWallREF.Enable
                         playsound AMBRMetalScrape
                         Set CurrentDay to GameDay    
                         Set GameDay to (CurrentDay+1)    
          elseif (button == 0) && (player.getAV repair < 35)
           ShowMessage ForgottenForpostMetWallMessage02
          elseif button == 1
           ; do nothing
          endif
        elseif state == 1
         ShowMessage ForgottenForpostMetWallMessage03
        endif
       endif

    end


    Вот он. Это скрипт вот на что: стоит решетка-активатор. ГГ подходит к ней, имея навык ремонта в 35 или больше, и чтоб гаечный ключ тоже был. Свинчивает решетку, активатор отключается, затемнение, активируется статик решетки на полу.
    Скип на день. Все рабочее.


    Cinema 4D
    Статус: Offline
    djsave Дата: Четверг, 2012-07-12, 18:08 | Сообщение # 17
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    Ага это типа на ремонт уходит какое то время а не мгновенно все ремонтируется. Интересная идея.
    В принципе так и должно быть, но еще с поправкой на навык ремонта, то есть очень опытный мастер исправит быстрее чем новичок.
    Незнаю где это используется, но можно добавить еще 2- 3 проверки на уровень ремонта и сделать разное время ремонта в зависимости от этого. В этом случае вместо GameDay будет GameHour .


    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.

    Сообщение отредактировал djsave - Четверг, 2012-07-12, 18:11
    Статус: Offline
    Сазан Дата: Четверг, 2012-07-12, 18:21 | Сообщение # 18

    Группа: Друзья
    42
    1
    0
    djsave, ой спасибо, а тоя изначально (хотел 2 часа ремонт сделать) делил 1 на 24, это, как бы, сколько часов (игровых) в одном дне. Ничего не работало, вроде как. поставил день.

    Cinema 4D
    Статус: Offline
    djsave Дата: Четверг, 2012-07-12, 18:50 | Сообщение # 19
    Ни шагу назад !!!!
    Группа: Администраторы
    1490
    в одном игровом дне 24 игровых часа, но они идут неправильно, используется десятичное исчисление. Но если делать часами и не трогать минуты то получается именно как и с днями. Если учитывать минуты то там грабли, что бы установить время допустим 18:30 нужно присваивать значение 18,5. Короче с минутами лучше не заморачиваться без очень крайней необходимости.

    Гули! -вскричали рейдеры. Мясо! -вскричали гули. Опыт! -обрадовался игрок.
    Статус: Offline
    Форум » У костра (общий) » Туториалы » Помощь по ГЕКК (Команда на "задержку" игрового времени)
    Страница 1 из 11
    Поиск: