Dennis_Chikin 3 658 Опубликовано 4 Января 2015 Поделиться Опубликовано 4 Января 2015 (изменено) С чего начинать и где взять. Установка Lua:http://www.amk-team.ru/forum/index.php?showtopic=11584&p=629106 Руководство «Программирование на языке Lua», третье издание:http://www.amk-team.ru/forum/index.php?showtopic=11584&p=905308 Изменено 2 Марта 2015 пользователем Kirgudu Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
DJ_Yar 3 Опубликовано 16 Февраля 2014 Поделиться Опубликовано 16 Февраля 2014 (изменено) , достать значения из памяти. Но как я не пытался - каша выходит. Пока сталкер активен - значения хаотично меняются, а если сверну - показывают координаты правильно. Нужно навести мышь не на объект игрового мира, а на иконку в инвентаре, так что дальномер/определение объекта под камерой мне не очень поможет Изменено 17 Февраля 2014 пользователем ColR_iT 1 Ссылка на комментарий
Nazgool 250 Опубликовано 16 Февраля 2014 Поделиться Опубликовано 16 Февраля 2014 (изменено) Может быть где-то тут ответ? "для движения мыши два аргумента - смещения мыши с последнего перемещения, также каждое + 100000. Это не координаты мыши, а выходит больше скорость перемещения. Т.е. из аргумента надо вычесть 100000, чтобы получить нужное значение." Изменено 26 Апреля 2014 пользователем Dennis_Chikin а вот здесь спойлер не нужен Ссылка на комментарий
DJ_Yar 3 Опубликовано 16 Февраля 2014 Поделиться Опубликовано 16 Февраля 2014 (изменено) для движения мыши два аргумента - смещения мыши с последнего перемещения Не то. Эта функция вернет нам расстояния X и Y, которые изменились со времен последнего перемещения. На пальцах - тянем мышь по диагонали - функция возвращает нам 100010,100010. Тянем быстрее - 100015,100015. Это не координаты, а скорость движения. Почти бессмысленно будет следить за этим. Изменено 17 Февраля 2014 пользователем ColR_iT 1 Ссылка на комментарий
DDamian724 18 Опубликовано 3 Мая 2014 Поделиться Опубликовано 3 Мая 2014 (изменено) Привет, у меня есть вопрос о том, как написать сцрипт для STALKER Зов Припяти, который вызывает удаление определенных видов оружия является лишь определенное количество секунд в руках, а затем исчезают? Мне срочно нужен сцрипт, сделать свой собственный модификации к игре, которая требует такой сцрипт. Приветю. Please don't use Google Translator for Russian language. Results are near to completely unreadable. The English will be good enough. dc Изменено 3 Мая 2014 пользователем Dennis_Chikin Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 3 Мая 2014 Поделиться Опубликовано 3 Мая 2014 (изменено) This question is too "wide" and unclear. It seems that You need tutorials on Your native language... Common solution would look as something like this: 1. try find out appropriate update function for appropriate object. 2. add checking code for desired weapon's section or name. 3. now, You need to store the time or the time-out if the weapon is active, or reset it to false otherwise, and disable the weapon if required. local wnp = self.object:active_weapon() if wpn and wpn:section() == "our_section" then if self.wpn_check_time then if self.wpn_check_time < self.device():time_global() then disable_wpn( self.object ) -- You MUST define this function somewhere as You need end else self.wpn_check_time = self.device():time_global() + TIME_WHAT_YOU_NEED end else self.wpn_check_time = false end Изменено 4 Мая 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
DDamian724 18 Опубликовано 4 Мая 2014 Поделиться Опубликовано 4 Мая 2014 Thank, you Sorry for my russian, i'm polish. I have one question, how this script to add to the game? Add a line in bind_stalker or what? But I meant that the gun was canceled after this time at the hands of non-retractable.. Ссылка на комментарий
Streels 2 Опубликовано 4 Мая 2014 Поделиться Опубликовано 4 Мая 2014 (изменено) С чего бы вы советовали начать в LUA? Чтобы по времени уже набираться опыта и так постепенно продвигаясь.С чего-нибудь практического. dc Изменено 4 Мая 2014 пользователем Dennis_Chikin Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 4 Мая 2014 Поделиться Опубликовано 4 Мая 2014 (изменено) DDamian724, It's not complete script. It's just a example. As 1-st step, You must determine to Yourself what You actually need, in details. Second, appropriate place for modification must be found and examined closely. If You mean to modify the actor - yes, function bind_stalker.update() seems to be good to be modifyed. Examine this function again: here can be something like what You want. Then, yes, consult with the "Programming in Lua" manual and make chages, one-by-one. I not see the code which You try to modify nor know version or modifications which was added before, and can't suggest details. And, yes, there is lot of methods to "disable" weapon: disable weapons completely (look bind_stalker.script for something like "self.object:hide_weapon()" or "self.weapon_hide" strings); select another active slot or item; simple release the weapon object completely; so on... Изменено 4 Мая 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
DDamian724 18 Опубликовано 4 Мая 2014 Поделиться Опубликовано 4 Мая 2014 I understand, thank you for your help and best regards. I need this script because I do a modification that uses a model with an appropriate animation For instance: I pull out a gun, I put the silencer and the gun disappears with with equipment and hands. That's what I'm talking about because I have done everything except the script. I need this script because I do a modification that uses a model with an appropriate animation For instance: I pull out a gun, I put the silencer and the gun disappears with with equipment and hands. That's what I'm talking about because I have done everything except the script. Ссылка на комментарий
Desertir 202 Опубликовано 4 Мая 2014 Поделиться Опубликовано 4 Мая 2014 @Streels, слишком общий вопрос. Если ты уже имел опыт программирования, то для Луа можно просто посмотреть документацию и примеры, а дальше пользоваться мануалами и гуглом, если встала какаято проблема. Если с опытом туго, да и общих знаний нету, то в гугл и ищем "основы программирования (lua)", в скобках - опционально. Понимание основных парадигм программирования все равно нужно. Есть занятные статьи на тему "Lua за 15/60 минут". ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Nazgool 250 Опубликовано 5 Мая 2014 Поделиться Опубликовано 5 Мая 2014 Streels Изучай книгу Roberto Ierusalimschi "Programming in Lua (Second Edition)" А дальше само пойдет. Ссылка на комментарий
Старлей 88 Опубликовано 17 Мая 2014 Поделиться Опубликовано 17 Мая 2014 (изменено) Уважаемые знатоки, объясните одну вещь: item = alife():create(k, pos_vector[1], pos_vector[2], pos_vector[3]) --получаем серверный объект item:use_ai_locations(true) --применяем к нему метод Получаем вылет: attempt to call method "use_ai_locations" (a nil value) local item = alife():create(k, pos_vector[1], pos_vector[2], pos_vector[3]) --все тот же серверный объект se_item = alife():object(item.id) --опять его же серверного получаем se_item:use_ai_locations(true) --такой же метод Это работает на ура. 1ый код взят из оригинальных скриптов ЗП. Почему тогда такой результат? Понятное дело, что работает - вот и радуйся. Но интересен ответ с теоретической точки зрения. Изменено 17 Мая 2014 пользователем Старлей 1 Ray Of Hope - кооператив сталкера OldStory Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 17 Мая 2014 Поделиться Опубликовано 17 Мая 2014 Это не Lua, а особеность эксрэя. Причем, как бы даже не ЗП-шного. Для интереса попробовать в 3-й строке не se_item:use_ai_locations(true), а опять же item:use_ai_locations(true) - что будет ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
abramcumner 1 145 Опубликовано 17 Мая 2014 Поделиться Опубликовано 17 Мая 2014 Это работает на ура. 1ый код взят из оригинальных скриптов ЗП. Почему тогда такой результат? Понятное дело, что работает - вот и радуйся. Но интересен ответ с теоретической точки зрения.alife():create возвращает тип cse_abstract alife():object - один из зарегистрированных серверных типов. 2 Ссылка на комментарий
*Shoker* 322 Опубликовано 19 Мая 2014 Поделиться Опубликовано 19 Мая 2014 (изменено) @Старлей, возможно если вызываешь эти скрипты в МП, то там Alife() видимо немного по другому работает. В сингле всегда использовал первый вариант и не ловил никаких проблем. Изменено 19 Мая 2014 пользователем *Shoker* 1 Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Nazgool 250 Опубликовано 4 Июня 2014 Поделиться Опубликовано 4 Июня 2014 (изменено) Так, коллеги. Знаете - хорошо, не знаете - считаю что нужно сказать. Ковырялся тут и снова "попался" на штуку, которую многие, наверняка и, знают, а некоторые. возможно, и нет. Забыв о нюансах, автоматом, пытался сравнить два float числа. Знаю что одинаковые - а она (разрабовская lua) отвечает что нет, разные. Есть такая подлость от GSC. Если вдруг придётся сравнивать , то я использую : function math.round(num, accuracy) return tonumber(string.format('%0.'..(accuracy or 0)..'f', num)) end accuracy - ширина float-а Изменено 4 Июня 2014 пользователем Nazgool Ссылка на комментарий
abramcumner 1 145 Опубликовано 4 Июня 2014 Поделиться Опубликовано 4 Июня 2014 @Nazgool, это не подлость от ГСЦ, это стандартная вещь с float. На равенство их можно сравнивать только в виде math.abs(x-y) < eps http://habrahabr.ru/post/112953/ Раздел 4.5 Да и другие тоже почитать полезно Ссылка на комментарий
Nazgool 250 Опубликовано 4 Июня 2014 Поделиться Опубликовано 4 Июня 2014 (изменено) abramcumner Дружище, ты наверное меня не правильно понял. Вот все факты, доказательства, и никаких алиби не будет local ltx = system_ini() local n = ltx:r_float("actor_condition","radiation_v") -- например у меня стоит значение 0.0001 if n == 0.0001 then print('OK') else print('BAD') end --> BAD function math.round(num, accuracy) return tonumber(string.format('%0.'..(accuracy or 0)..'f', num)) end if math.round(n, 4) == 0.0001 then print( 'OK') else print('BAD') end --> OK -- P.S. print - это лично моя функция, которая печатает в файл, но результата это не меняет. Этому коду уже пара-тройка лет(уже и не помню когда я первый раз попался), просто так получилось, что он снова напомнил о себе. Вот и подумал что другим не нужно наступать на грабли. Изменено 4 Июня 2014 пользователем Nazgool Ссылка на комментарий
AndreySol 215 Опубликовано 20 Сентября 2014 Поделиться Опубликовано 20 Сентября 2014 Такой вот простенький вопрос: local value = nil - объявили переменную, затем проверяем так if not value then.... или так if value == nil then.... разница есть между этими способами ? Если есть - то в чем ? Ссылка на комментарий
Struck 61 Опубликовано 20 Сентября 2014 Поделиться Опубликовано 20 Сентября 2014 (изменено) @AndreySol, вот накидал тебе для наглядности: t = os.clock() value = nil if value == nil then print("true") else print("false") end print('var1', os.clock() - t) if not value then print("true") else print("false") end print('var2', os.clock() - t) Возвращает: true var1 0 true var2 0 И: t = os.clock() value = false if value == nil then print("true") else print("false") end print('var1', os.clock() - t) if not value then print("true") else print("false") end print('var2', os.clock() - t) Возвращает: false var1 0 true var2 0 Неужели так трудно самому? У меня минута ушла. (Скрытый посыл: false ~= nil ) Изменено 20 Сентября 2014 пользователем Struck Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти