Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Гость Borsalino Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 (изменено) Taroz, cc31 Спасибо, пока Скряге за травкой бегал, видать парами надышался-на тупость пробило. IQDDD Да, вчера ночью добил, всё снял, прописал, установил, теперь с вылетами воюю.Спасибо. Изменено 16 Июня 2009 пользователем Borsalino Ссылка на комментарий
IQDDD 5 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 Borsalino, так вы all.spawn смогли разобрать? Или нет? Добавлено через 1 мин.: Явно не объявленная переменная будет глобальной по всей игре? Добавлено через 61 мин.: Ага... Уже ясно, что глобальной переменная является не во всех скриптах,а только в каком-то классе или вообще только в каком-то файле. Бум дальше тестить. Ссылка на комментарий
Kirag 39 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 IQDDD Вылет с жалобой на "attempt to index global 'ХХХ' (a nil value)", где ХХХ - имя скрипт-файла у меня чаще всего (чтобы не сказать всегда) бывает из-за синтаксических ошибок. Скобку там забыл закрыть, end какой-нибудь забыл прописать, в if...then вместо "==" поставил "=" или что-то вроде этого. Вспоминай, какую(ие) функцию(и) ты правил в этом файле с последнего запуска без этого вылета, там и ищи. Чтобы было проще, можешь комментить куски кода и смотреть, исчезнет ли вылет. Если исчезнет - в закомменченном фрагменте и находятся все ошибки. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Wawka 5 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 Ну или на худой конец, можно воспользоваться утилиткой Lua Checker. Ссылка на комментарий
IQDDD 5 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 Вот кусок кода: ObjSpawn = alife():create(section,pos,db.actor:level_vertex_id(),db.actor:game_vertex_id()) if NumObjectsFramedThroughTitles == nil or NumObjectsFramedThroughTitles == 0 then NumObjectsFramedThroughTitles = 1 else NumObjectsFramedThroughTitles = NumObjectsFramedThroughTitles + 1 end ObjectsFramedThroughTitles = {} ObjectsFramedThroughTitles[NumObjectsFramedThroughTitles] = ObjSpawn news_manager.RealLog("NPC №"..ObjSpawn:id().." enable") if not has_alife_info ("enabled_timer") then StartMinutes = tonumber(level.get_time_minutes()) db.actor:give_info_portion("enabled_timer") news_manager.RealLog("Start time "..tostring(StartMinutes)) end Как видим, сначала мы спавним чувака. Потом запоминаем его в таблицу ObjectsFramedThroughTitles под индекс 1. При попытке получить ID объекты происходит вылет, что метод не найден!!!! Чё делать? Чё за косяк? Ссылка на комментарий
Gonarh 3 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 (изменено) по всей видимости непись не успел перейти в онлайн попробуй вместо ObjSpawn:id() юзать ObjSpawn.id Изменено 16 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
XMK 24 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 Подскажите пожалуйста как сделать так: Непись подходит к ГГ и сам завязывает диалог, как в ЧН - Лебедев Ссылка на комментарий
Malandrinus 615 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 ObjSpawn = alife():create() ... ObjSpawn:id() Это серверный объект, а ты пытаешься вызвать метод клиентского. Используй свойство id, а не метод id(). Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Taroz 0 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 А на мой взгляд он пытается узнать ид функции... А не объекта, тогда уж бери из таблицы и узнавай иды тех. Ссылка на комментарий
Malandrinus 615 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 А на мой взгляд он пытается узнать ид функции... А не объекта, тогда уж бери из таблицы и узнавай иды тех. Уф... давай сначала. Вот код: ObjSpawn = alife():create(...) ... ObjSpawn:id() Первая строка - это создание пользовательского игрового объекта с помощью вызова alife():create(...). create возвращает серверный объект. Это факт, хотя об этом и так можно догадаться - объект же создаётся на серверной стороне. Далее для этого объекта вызывается метод ObjSpawn:id(). Но у серверного объекта нет метода id, у него есть свойство. А к свойству нужно обращаться иначе: ObjSpawn.id Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Gonarh 3 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 Это серверный объект, а ты пытаешься вызвать метод клиентского вопрос на засыпку: клиентский/серверный объекты, это не тоже самое что объект в оффлайн/онлайн? 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
Malandrinus 615 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 вопрос на засыпку: клиентский/серверный объекты, это не тоже самое что объект в оффлайн/онлайн? оно родимое =) серверный == оффлайновый клиентский == онлайновый я в коде обычно подчёркиваю это добавляя к имени переменной префикс 'c' - для клиентского и 's' - для серверного: cobj/sobj Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
IQDDD 5 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 Ура!!!! Всё сделал: непись появляется и дохнет через три минуты: function main_menu:OnButton_credits_clicked() local ObjSpawn local long = 1 local section = "sim_default_duty_"..math.random(0,4) local prob = 101 if math.random (1,100) < prob then local ArLong = { [0] = 2.5, [1] = 3.5, [2] = 4.5, [3] = 9 } local obj = db.actor local dir = vector() local pos = vector() pos = obj:position() dir = obj:direction() pos.x = pos.x - dir.x * ArLong[long] pos.z = pos.z - dir.z * ArLong[long] ObjSpawn = alife():create(section,pos,db.actor:level_vertex_id(),db.actor:game_vertex_id()) if kill_object_id then number_obj_kill = number_obj_kill + 1 kill_object_id[number_obj_kill] = ObjSpawn.id else kill_object_id = {} number_obj_kill = 1 kill_object_id[number_obj_kill] = ObjSpawn.id end db.actor:give_info_portion ("enabled_timer") StartMinutes = tonumber(level.get_time_minutes()) end end function timer1() --проверка неписей if has_alife_info ("enabled_timer") then if StartMinutes == tonumber(level.get_time_minutes()) - 3 then RealLog("Disabled info") db.actor:disable_info_portion ("enabled_timer") local i local obj RealLog (number_obj_kill) for i = 1, number_obj_kill do obj = level.object_by_id(kill_object_id[i]) RealLog(kill_object_id[i]) RealLog(obj:id()) RealLog(obj:character_community()) obj:kill(obj) number_obj_kill = 0 end kill_object_id = nil end end end Но вот вопросы: 1. Насчёт метода kill(). В параметрах метода указывается игровой объект. Зачем, если метод применяется к объекту? Что за объект указывается в скобках? Мб, убийца? 2. При вызове метода kill() непись убивается: её здоровье снижается до нуля. Как скриптом нанести неписю урон в голову (ногу, руку, пах...)? Ссылка на комментарий
Malandrinus 615 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 2. При вызове метода kill() непись убивается: её здоровье снижается до нуля. Как скриптом нанести неписю урон в голову (ногу, руку, пах...)? Есть метод hit, у него есть единственный параметр - это объект класса hit (см. LuaHelp). У класса hit кроме типа урона и импульса есть ещё и метод bone, который очевидно отвечает за часть тела. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Wlad777 24 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 Доброго времени суток! В процессе ковыряния оружия, для своей солянки, возникли вопросы, на которые не нашёл ответов. Поэтому обращаюсь к разбирающимся людям. - где зашито "дыхательное" раскачивание оружия? В самом стволе (idle-анимация)? Или где-то в конфигах/скриптах? - Возможно ли скриптом ограничить возможность поворота ГГ с отдельно взятым стволом в руках? Скажем на 90° по гор. и 45° по вер. - Возможно ли, при подбирании ствола, класть его принудительно в слот, а не в инвентарь? Причём независимо от того, что в руках. Скажем в руках АК/нож/граната/болт, подбираем ствол - АК/нож/граната/болт уходит в рюкзак, ствол появляется в руках. Заранее спасибо за ответы! --------------------------------- www.amk-zone.de Ссылка на комментарий
IQDDD 5 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 И как написать? Мб, так: local a = vector () a = db.actor:direction() a.x = -a.x a.z = -a.z obj:hit(a,nil[что такое draftsman?],400,0.5,2[это, как я понимаю, константа типа урона пулей. Правильно?]):bone("bip01_head") Ссылка на комментарий
Halford 21 Опубликовано 17 Июня 2009 Автор Поделиться Опубликовано 17 Июня 2009 (изменено) Есть вопрос. Каким образом повредить или наоборот "починить" предмет скриптом? И еще один. Как добавить окошко (по типу "выбросить") в инвентарь, и назначить на него действие? Изменено 17 Июня 2009 пользователем Halford Ссылка на комментарий
Malandrinus 615 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 Правильно? Посмотри пример в xr_motivator.script. У меня он начинается со строки 296. (версия АМК) Есть вопрос. Каким образом повредить или наоборот "починить" предмет скриптом? И еще один. Как добавить окошко по типу "выбросить" в инвентарь, и назначить на него действие? Для онлайнового объекта (game_object) есть метод set_condition. Вроде бы им можно. Для оффлайнового можно использовать нетпакеты. Окошко вероятно можно сделать также, как это сделано для матраса. Поищи в топике или в архиве. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
BAMBUCHOFOREVE 0 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 Господа,всем здрасте.Есть тут кто-нибудь из Новосибирска?Пытаюсь разобраться в СДК,но не хватает серого вещества))) .ОЧЕННО нужна помощь!Кто-нибудь готов взять шефство над бездарем? Ссылка на комментарий
wolkolak 0 Опубликовано 17 Июня 2009 Поделиться Опубликовано 17 Июня 2009 и снова вопрос по аптечкам вот кусок из xr_wounded function Cwound_manager:eat_medkit() if self.can_use_medkit == true then local medkit_eaten=false if self.npc:object("medkit") ~= nil then self.npc:eat(self.npc:object("medkit")) medkit_eaten=true elseif self.npc:object("medkit_army") ~= nil then self.npc:eat(self.npc:object("medkit_army")) medkit_eaten=true elseif self.npc:object("medkit_scientic") ~= nil then self.npc:eat(self.npc:object("medkit_scientic")) medkit_eaten=true end if medkit_eaten then -- amk.mylog("medkit eaten be "..self.npc:name()) local sobj=alife():object(self.npc:id()) sobj.wounded=false -- позволяем выйти из состояния раненности self.medkit_eaten=true self.can_use_medkit = false end end self:hit_callback() end он отвечает за непосредственное лечение НПС ? собственно вопрос если я прав то как заменить поедание аптечки НПС , непосредственным увеличением его здоровья на определенную величину ? Свободу всем Даром! Моя Зона Full Realism Mod STSoC by Wolkolak "Безвыходных ситуаций не существует в принципе."(с) Ред Шухов Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти