Автор Тема: Моддинг для начинающих. Вопросы и ответы  (Прочитано 139715 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Mathias Duke

Моддинг для начинающих. Вопросы и ответы
« Ответ #300 : 09 Май 2016, 21:56:57 »
Круто, но я к сожалению последние дни что-то слишком ленив и неудачи в плане переводов Великой Войны с остатками Мемуаров и фейловые попытки в скрипты только усилили эту лень :-\ Надо будет хотя бы Наполеонику перепилить в норм качестве на днях, а то совсем без дела сижу.
    Моя помойка с варгеймами тут - https://disk.yandex.ru/d/2vIbgFH3012ZGw
    Мой стимчик
     

    Оффлайн Pard

    Моддинг для начинающих. Вопросы и ответы
    « Ответ #301 : 10 Май 2016, 06:06:34 »
    не знаю дают ли какие-то баны за запрещенный контент или нет
    За первый раз банят на неделю. Дальше - не знаю.
       

      Оффлайн hickname

      Моддинг для начинающих. Вопросы и ответы
      « Ответ #302 : 10 Май 2016, 08:31:39 »
      Вопрос на засыпку... дайте синтаксис функции lock() . Понимаю что вопрос может быть глупым!
      Вопрос действительно глупый. Синтаксис проще некуда: object.lock()
      И есть возможность как-нибудь узнать свои координаты)? А то приходится расставлять снаппоинты чтоб координаты вытащить
      Конечно есть!
      getPosition() - получить координаты.
      getRotation() - получить ориентацию объекта. Например карта может быть вверх ногами или вверх рубашкой, при этом координаты будут одинаковы.
      Соответственно есть setPosition() и setRotation() - установить координаты и ориентацию.
         

        Оффлайн MifReal

        Моддинг для начинающих. Вопросы и ответы
        « Ответ #303 : 10 Май 2016, 16:51:21 »
        Вобщем-то еще раз проверил.
        в формулировку object.lock() получаем в ответ: attempt to index a nil value.

        Есть переменная "ctile"
        ctile = GetObjectFromGUID(t1B3B_guid)
        ctile.lock()
        Нет?
        « Последнее редактирование: 10 Май 2016, 17:32:23 »
           

          Оффлайн hickname

          Моддинг для начинающих. Вопросы и ответы
          « Ответ #304 : 10 Май 2016, 18:26:37 »
          Да, все так.
          У меня такую ошибка выскакивает, когда GUID неправильный. Ты как t1B3B_guid заполнял?
             

            Оффлайн MifReal

            Моддинг для начинающих. Вопросы и ответы
            « Ответ #305 : 10 Май 2016, 18:30:50 »
            Guid правильный, т.к. он мне нужный тайл достает из мешка и кладет на  нужное место...

            t1B3B_guid = '44b74a'
            t1B3B = {}

            function onload()
            t1B3B = GetObjectFromGUID(t1B3B_guid)
            ну а далее по тексту
            « Последнее редактирование: 10 Май 2016, 18:45:20 »
               

              Оффлайн hickname

              Моддинг для начинающих. Вопросы и ответы
              « Ответ #306 : 10 Май 2016, 19:43:00 »
              Тогда не знаю. У меня работает:
              piece={}
              pieceGUID="500eff"
              function onload()
              piece=getObjectFromGUID(pieceGUID)
              piece.lock()
              end
              Естественно это в глобал писать надо.
                 

                Оффлайн MifReal

                Моддинг для начинающих. Вопросы и ответы
                « Ответ #307 : 11 Май 2016, 17:22:19 »
                Из опыта: в Global`е текст скрипта пропадает (становится невидимым) после 1074 строчки. С чем связана цифра - сказать тяжело, но вот так..
                   

                  Оффлайн Mathias Duke

                  Моддинг для начинающих. Вопросы и ответы
                  « Ответ #308 : 11 Май 2016, 18:12:05 »
                  Вижу у вас тут уже всё налажено, а я тем временем забил на это дело и сел за очередной перевод :-\
                    Моя помойка с варгеймами тут - https://disk.yandex.ru/d/2vIbgFH3012ZGw
                    Мой стимчик
                     

                    Оффлайн MifReal

                    Моддинг для начинающих. Вопросы и ответы
                    « Ответ #309 : 11 Май 2016, 18:44:37 »
                    Langraff, нифига у меня не налажено))
                    Я накатал простейший кусок кода, а когда начал добавлять функции выяснил, что из-за прогрузки элементов поля (доставаемых из мешка итд) появляется куча проблем. Я задаю куда положить тайл, и как его повернуть, а они вращаются все одновременно и "мешают" друг другу, сдвигая, откидывая итд итп.... в результате гениальная изначально идея почти встала мертвым грузом. Залочить тайл я так и не смог... вращать тайлы приходится на разных высотах... Я пытаюсь найти функцию задачи промежутков времени между действиями или хотяб до "onload".
                    Вобщем бед оказалось очень много =(
                    http://файлообменник.рф/u88xesydc13z.html
                    Вот мой сейв на всякий случай. Не самая последняя версия скрипта, но хоть как-то рабочая (Доступны миссии в "База" М01 и обучающая М00)
                    Причем нашел еще один интересный для себя момент. Ориентация элементов на столе - {x=0,y=0,z=0} -это ни фига не то, как они лежат в мешке... это почему-то {x=0,y=+90,z=0}
                    « Последнее редактирование: 11 Май 2016, 19:18:08 »
                       

                      Оффлайн hickname

                      Моддинг для начинающих. Вопросы и ответы
                      « Ответ #310 : 11 Май 2016, 19:08:35 »
                      Не качается сейв. The service is not available. Please try again later.
                      Почему он такой тяжелый кстати - 4 с лишним метра? Там же только текст.
                      Даже интересно, почему тайл не лочится...
                         

                        Оффлайн MifReal

                        Моддинг для начинающих. Вопросы и ответы
                        « Ответ #311 : 11 Май 2016, 19:16:33 »
                        http://файлообменник.рф/u88xesydc13z.html

                        Попробуем так =(...
                        Почему такой вес - хз... у меня скрипт уже занимает под 1200 строк... и это только его 1/30 часть...
                        Я всю жизнь любил Pascal  и Delphi...  достаточно не плохо их знал в начале 2000-х...
                        а вот С++ и С# как-то не пошли =(... наверное просто не было такой надобности острой...
                        Но в LUA с местным API оказалось просто неприличное количество подводных камней на пустом месте.... это пересечение и взаимодействие между объектами просто выбешивает... почему нельзя поместить объект уже повернутым на нужные углы, а надо его вытащить и только потом повернуть блин...

                        Меня вот эта штука смущает... я немного не понимаю что  понимается под callback
                        Takes an Object from this container (Loot Bag, Deck, and Infinite Bag), moves, and rotates it to the specified position and rotation. Returns a reference to the taken Object. Since executing the Lua scripts on the taken object and other initialization takes a few frames, any operations that need to be performed on this object immediately after it is taken from the container should be done in the callback function. The callback prevents needing to use a coroutine and yielding/waiting multiple frames. All of the parameters are optional and defers to default values if any of the lines are not included. If you want all of the default values, just pass in an empty table.
                        « Последнее редактирование: 11 Май 2016, 19:31:19 »
                           

                          Оффлайн hickname

                          Моддинг для начинающих. Вопросы и ответы
                          « Ответ #312 : 11 Май 2016, 21:14:16 »
                          Если в двух словах - callback это функция, которая передается как аргумент другой функции. Чаще всего используется для асинхронного программирования. Сейчас не могу точнее сформулировать, попробую завтра объяснить.
                             

                            Оффлайн tikitavy

                            Моддинг для начинающих. Вопросы и ответы
                            « Ответ #313 : 12 Май 2016, 07:51:45 »
                            что  понимается под callback
                            Сейчас не могу точнее сформулировать, попробую завтра объяснить.
                            В сети хватает толковых объяснений: wiki, хабр

                            Оффлайн hickname

                            Моддинг для начинающих. Вопросы и ответы
                            « Ответ #314 : 12 Май 2016, 12:29:10 »
                            На хабре ничего толкового не написано. Вот в Википедии - то, что нужно.
                               

                              Оффлайн tikitavy

                              Моддинг для начинающих. Вопросы и ответы
                              « Ответ #315 : 12 Май 2016, 13:53:35 »
                              Вот в Википедии - то, что нужно.
                              Хабр привёл как вариант объяснения, в гугле ссылок больше, конечно. Я и книги толковые встречал, но подсказать по памяти не готов.

                              Оффлайн MifReal

                              Моддинг для начинающих. Вопросы и ответы
                              « Ответ #316 : 13 Май 2016, 21:02:35 »
                              Так понял почему не происходит лок и все остальное. Просто объект еще не загрузился!
                              Вопрос как сделать проверку на загрузку
                              Или как организовать аналог функции onload()  в качестве подпрограммы?
                              « Последнее редактирование: 13 Май 2016, 21:18:28 »
                                 

                                Оффлайн hickname

                                Моддинг для начинающих. Вопросы и ответы
                                « Ответ #317 : 14 Май 2016, 12:09:09 »
                                Так понял почему не происходит лок и все остальное. Просто объект еще не загрузился!
                                Вопрос как сделать проверку на загрузку
                                Или как организовать аналог функции onload()  в качестве подпрограммы?
                                Только задержка таймером в голову приходит.
                                   

                                  Оффлайн MifReal

                                  Моддинг для начинающих. Вопросы и ответы
                                  « Ответ #318 : 14 Май 2016, 14:30:39 »
                                  Пока обошелся без таймера, путем лишнего нажатия кнопки мыши на дополнительную кнопку.

                                  Если еще не готовы убить, то еще пару вопросов:
                                  1) Функция SetState. 
                                  Есть токен который был вытащен из бесконечного мешка.
                                  --[[7 - ЗЕЛЕНАЯ--]]
                                  params.position = {-6.5,3.2,5.285}
                                  ctoken = d3dbag.takeObject(params)
                                  ctoken.setColorTint{0,1,0}
                                  ctoken.setState(2)
                                  ctoken.setColorTint{0,1,0}
                                  ctoken = {}
                                  params = {}
                                  Так вот на строке ctoken.setState (2) [у объекта 2 модели (в данном случае открытая и закрытая дверь, объединенных в State с параметрами [1] и [2]). В ответ на эту строку получаю "cannot access field set state of user data <LuaGetObjectScript>". В чем может быть ошибка? (Подозреваю опять же в прогрузке... =( ).

                                  2) А как положить объект в мешок, просто задать координаты мешка?
                                  « Последнее редактирование: 15 Май 2016, 09:58:06 »
                                     

                                    Оффлайн hickname

                                    Моддинг для начинающих. Вопросы и ответы
                                    « Ответ #319 : 14 Май 2016, 15:53:50 »
                                    1) Похоже, когда токен берется из мешка, с ним вообще ничего сделать нельзя в этой функции. Я пытался встроенную фишку из мешка достать и залочить - не работает... Только если другой кнопкой вызывать другую функцию. На форуме TTS создал тему, буду смотреть , что ответят...
                                    2) Да, задаешь координаты мешка и объект туда убирается.