-
Число публикаций
618 -
Регистрация
-
Последнее посещение
-
Дней в топе
1 -
AMKoin
37 [Подарить AMKoin]
Весь контент пользователя Nazgool
-
Приспособил свой "костыль" (раз уж так это называется) CRAZY_STALKER666 Я всё же спрошу на всякий случай про твой вопрос http://www.amk-team.ru/forum/topic/6185-skriptovanie/page-402#entry1048162. Тебе конечно ответили что именно нужно сделать. Я только не понял, - ты хочешь узнать почему так? Или уже знаешь? Ну или, как вариант, не хочешь знать?
-
Тут одно их двух. Или достаточно долго писать доходчивый тутор, или где-то типа скайпа рассказать по быстрому. Но это зависит от вопрошающего. Впрочем этот мой пост уже точно флуд
-
Да, да. Именно это я и имел в виду, когда говорил о том, что хотел рассказать о "сопутствующем". А конкретнее про модули как lua так и сталкера.
-
Ну по традиции следует куда-то отправить Например сюда : http://www.lua.ru/doc/2.6.html Разобраться можно конечно, но когда я первый раз читал, то понятие приходило не совсем просто. Потому что маловато информации, и нужно было бы рассказать более подробно и про области видимости и по ходу дела про сопутствующее тоже. Так что если есть такая необходимость, то могу попробовать рассказать об этом более развернуто.
-
@TIGER_VLAD, Да там всё просто. На родительское окно лепишь статик с фоном бара (напр. красный) и задаешь ему позицию "Х" равную -(минус)ширина_бара Т.е. изначально оно скрыто (скажем). По мере надобности меняем "Х" и двигаем этот дочерний статик относительно родительского так как нужно. То что выходит за пределы родителя видно не будет, а то что будет видно на родителе, то и будет тебе прогресс баром
-
В Titan Quest всё не плохо продумано. Ты в состоянии найти очень не плохой хабар, но воспользоваться им без определенных качеств не сможешь. Развивать эти качества можно либо как в том же Titan Quest-е, либо как в Fallout-е.Почему не взять за основу то, что уже давно придумано и не плохо работает? Чем дальше, тем больше жира. Всё как в жизни. Я тоже когда-то в юности весил 75 кг
- 14 162 ответа
-
- 2
-
- мод
- s.t.a.l.k.e.r.
-
(и еще 5 )
Отмечено тегом:
-
Язык Lua. Общие вопросы программирования
Nazgool ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
@abramcumner, Вот я и думаю, почему у меня есть все, а этой нет. Спасибо. Буду знать и не искать -
Язык Lua. Общие вопросы программирования
Nazgool ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
@Dennis_Chikin, Ещё с момента публикации хотел спросить, - "И зачем это нужно в принципе?" Я к чему. Все уже давно привыкли, что если нет ни того ни другого, то будет nil. И когда я так напишу, то и буду ожидать что 'p' станет 'nil'-ом. А оно не станет. Такое многим не понравиться. Lua stalker-а и без этого сильно не предсказуема. Хотя-я-я. В этом же стиле. Так что можно. А-а-а. Чего пишу-то. Пишу любителям SciTE. Замутил тут одну штуку. Давно хотел, да плевал, а тут вот ""з`явилася нагода". В общем добавил в меню 'Tools" выбор разных версий lua и быстрое переключение на эти версии с изменением подсветки синтаксиса и т.д. Дело в том, что все актуальные версии для платформ x86 и x64 у меня есть, а вот для luajit 1.1.5 есть только одна. На x86 у меня работает, значит нет для x64 (я имею в виду бинарники). Может у кого-то завалялась? Другие версии JIT (1,1,6-1,1,8) не интересуют. Да, если кому-то это нужно в SciTE, то милости прошу. Доделаем как это будет нужно и в конце концов правильно. А то леплю тут как придется -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
Dennis_Chikin Мда, я этого не знал. Интересно конечно. Сколько же разных фишек и костылей придумано за всё время. Только вот как ни крути, хочется это принимать или нет (никогда не мог подумать что скажу это), но выходит что использование Lua и есть самым большим костылем. Понятное дело, что для нас простяков это манна небесная. Только вот если хочется чего-то большего, то прийдется всё-таки изучать СРР. P.S. Если кто-то действительно разбирается в срр и кому нечего делать, то сможет стать поводырем для меня? Извиняюсь за то, что не в той теме, но так уж к слову получилось. -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
иорданец, если не разберешься, то выковырну из мода вариант по-проще и поясню что писать, куда и как. Несмотря на число моих сообщений, подвоха тут нет ..... _Val_ Да ладно прибедняться-то : 7% Расскажи кому другому. Может поверят BFG Слава Богу что не пятница 13-е. А то не удержался бы. Начал бы вакханалить и заработал бы по заслугам. А так обошлось Мне интересно другое. Как это я умудрился И всего 666 ? -
[SoC] Ковыряемся в файлах
Nazgool ответил на тему форума автора Halford в Скрипты / конфиги / движок
_Val_ А где же иорданец возьмет функцию print? Надо бы и её показать. Да. Вот это : local a = vector() ... a = db.actor:position() Ну совсем уж не красиво. И почему сразу не : local vid = db.actor:level_vertex_id() -- и подобное Нет, работать и так будет, но лучше сразу учить писать как принято. Впрочем может кому-то нравиться больше строк. Возможно так код кажется солиднее или ещё что-то... -
Graff46 Живые есть, а новости только "от производителя". Как и во многих делах, могут случиться и не предвиденные обстоятельства. По закону Мерфи они и случились. Поэтому пока остались только две руки.
-
Несомненно, что перевод всего что можно в движок увеличит производительность игры, да и упростит отладку для программистов. Вроде как есть инструменты для этого, да и всё в одном месте. В общем всё будет так, как и в большинстве других продуктов. Вот вам упаковка и несколько конфиг настроек. А если мало, то что-то вроде ArtMoney поможет. И это правильно. С точки зрения разработки. Как потребитель, а таких подавляющее большинство, я возьму такую версию. Она будет выгодно отличаться от прежних вариантов исполнения. Как я уже говорил - производительность. Возможно меньшее кол-во глюков. Сейчас есть с десяток людей, которые могут вести такую разработку? Может ещё десяток переучиться. В общем нормально. Можно работать. И хочу пожелать только успехов. Хотелось бы только одного. Чтобы из этих людей нашелся хоть один, кто сделал бы доброе дело для любителей, и наоборот - перевел все возможности движка в скрипты. Ну чтобы такие как мы не плюнули на новый сталкер после прохождения, а могли почувствовать себя программистами, и делать что-то своё.
-
@abramcumner, Изначально речь шла о копировании массива. Правильно индексированного, без "дырок" списка. В функции использовался pairs. Как можно копировать такой массив с помощью pairs если: И Я ни слова не сказал о том, что он не обойдет всю таблицу. Обойдет, конечно же обойдет. Но как? Обойдет как написано в первой цитате. Т.е. а кто его знает как. И что же мы скопируем? Поэтому - ipairs Кому не нравиться - тому _G.ipairs А кому и это не нравиться, тогда local kak_ni_kruti_vse_ravno_ipairs = ipairs
-
Вот в чем. Если почитать описание функции pairs, она использует как итератор функцию next. А для функции next записано : Т.е. разрабы и сами не уверены, что pairs верно распарсит правильный массив. Да и когда кто-то будет читать твой код, то увидев ipairs сразу поймет что парсится массив, а не всё подряд.
-
@Serge!, Ну обсуждалось же уже. Ладно. И да. При использовании функций-итераторов выполняются некоторые дополнительные инструкции, но в контексте luajit время их выполнения минимизируется по сравнению с (как уже выяснилось) не 100%-но надежным оператором #. Но в контексте надежности кода, использование стандартных методов намного предпочтительнее, чем гонка за сомнительной прибавкой в скорости. Тем более, как ты сам сказал, при работе с небольшими таблицами сталкера.
-
@Malandrinus, Абсолютно согласен с тем, что массивы с nil-ами это зло. А необходимость копирования таблиц (с nil-ами или без них) можно определить только после того, как будут известны общие цели и задачи скрипта. Но в это мы не посвящены, поэтому принимаем задачу как есть - т.е. нужно копировать. И насчет того, чтобы "вообще убрать такой массив" я уже неоднократно говорил. Если работать с массивами правильно, то такой необходимости не возникнет в принципе. @Kirgudu, Хоть в сталкере используется lua 5.1.4, но компилируется код с помощью luajit 1.1.5 (или ошибаюсь?) И если у тебя есть возможность протестировать оба варианта (for i=1,#t и ipairs) в luajit, то заметной разницы в скорости выполнения ты не увидишь.
-
@Serge!, Т.е. копируем массив всё-таки. И если до копирования работать с массивом правильно, посредством функции table.remove и др., то у Вас в массиве никогда не будет полей со значением nil. Поэтому и копирование с помощью irairs создаст точную копию такого массива. И оператор # работает с таким правильным массивом тоже совершенно правильно. И будет работать правильно, пока как мы своими неправильными действиями не испортим массив, и не начнутся казусы с этим оператором. Поэтому в очередной раз настаиваю на использовании, уже мною упомянутых, специально предназначенных для этого функций стандартной библиотеки.
-
@Kirgudu, Про оператор "#" я не так давно уже рассказывал. Это не надежно. Поэтому всё-таки стоит пользоваться специально созданными для этого функциями ipairs и table.insert(remove) Напомню
-
@FonSwong, Ну если массив, то почему не ipairs ?
-
Как тебе уже сказали - именно перебирать и переписывать каждое вложение. Есть не мало вариантов функций сделать это. Но при условии, что у тебя достаточно простая таблица. Сделать полное копирование сложной таблицы (реально полное) проблематично. (По крайней мере необходимости в этом не было, поэтому не делал. Да и не буду) Поясню что я подразумеваю под простой сложной таблицей и почему проблематично. Всё дело в ключах таблицы. Если ключи НЕ объекты - то всё нормально. Вот вариант копирования простой таблицы, в котором ключи не объекты, а строки или числа. Если значением ключа будет таблица, то создается копия этой таблицы. И так рекурсивно для всех степеней вложенности : Вот сложнее вариант. Если значением есть таблица, для которой установлена метатаблица, то нужно скопировать эту метатаблицу. Поэтому немного расширенный вариант будет выглядеть так : И вот теперь про самый сложный вариант и про "проблематично". А если ключем будет таблица (не буду брать функции, потоки и тем более userdat-у). По аналогии нужно копировать и эту таблицу-ключ. Для этого нужно изменить : НО. При этом будет создана новая ключ-таблица, для которой не назначено никакого идентефикатора. Т.е. она будет анонимна. Я вот о чем :
-
@FonSwong, Вот тут: ignore_tbl[back_level] = point_tbl ты создаешь ещё одну ссылку(имя) на таблицу(объект) с именем point_tbl. Таких ссылок(имен) может быть множество, а объект один и тот же.
-
Вот почему, извините начальство форума за не очень пристойное слово, хочется {игнорировать} всякие призывы о помощи, и не тратить силы на распинания по сути. CRAZY_STALKER666 ты же поставил "Спасибо" к моему посту http://www.amk-team.ru/forum/topic/6185-skriptovanie/?p=1020661, т.е. ты должно быть его прочитал. А если это так, то ты не мог не заметить, что я в этом посте рассказывал про "цифры" в имени объекта. В то время, когда я начинал моддить, не было столько исчерпывающей информации как сейчас. Цеплялись за любые намеки. А тут... "Абыдно, да?" ("Кавказская пленница") "Начальство" в специально отведенном месте постоянно рыдает по тому же самому поводу. Не успевает жилетки менять. dc
-
Язык Lua. Общие вопросы программирования
Nazgool ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Замени language = 'eng' ... if language == 'ru' ... elseif language == 'eng' -
Да, в 5.1 не хватает этого метода. Впрочем можно написать функцию типа : function table.len(t) local n = 0 for _ in ipairs(t) do n = n + 1 end return n end А заодно не хватает __pairs и __ipairs. Да и goto, при аккуратном использовании, помогает крепко сокращать код
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ