singapur22
Как раз в Сталкере (LUA v5.1) вместо gfind() и используется match(), т.е. компилятор уже обновлен. А использование gfind() заметил только в ММ, в исходных кодах игры его нет.
Скорее не контрактами 'завязаны', а желанием лишь бы получить в моде/игре желаемое ...
И это не только у новичком иль малоопытных. :-(
По сути занятие модмейкерством (если исключить корыстные-финансовые интересы) имеет две основных мотивации:
- сделать в игре что-то по-новому ...
- решать головоломки и искать красивые решения в кодах.
Вторым путем мало кто идет, в лучшем случаае только первой частью - решают.
Многим понятны: хорошая модель, красивая текстура/иконка, литературный диалог ... но не воспринимается красивый код в скриптах. :-(
Gun12
К сожалению 'конкретными' условиями в этом топике, как правило, не балуются.
И очень вероятно, что под 'словами' подразумевались и русские тексты ...
В этом случае '%a' также не применим.
Artos Хм. Перепровелил. Действительно работает. Странно. Я точно помню, что данные функции не только не работали, но их даже в _G-окружении не было. Может это было когда разбирал версию 1.000?! Кароче, фиг его знает.
Кстати, чем match() и gmath() отличаются от своих предшественников? В справочниках ничего об этом не написано. Просто, что были заменены, и никаких объяснялок, чем они стали лучше.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
На вскидку сейчас не скажу, давно обновлял в этом направлении познания, а играть роль неисправного телефоном не хочется. (и сейчас вынужден оторватьсся от компа).
Если найду инфу - сообщу.
И еще:
заметил, что у оружия боковые стороны одинаковые. То есть у АК не один а два затвора получается.
В текстурах есть только одна сторона. Другая копируется и отражается зеркально.
Может есть мод устраняющий эту фигню? Мне только касающейся этой проблемы нужен.
Artos
Я специально акцентировал внимание на условиях. "Мама мыла раму" было написано латиницей.
Поэтому рассматривать предположения не собираюсь. Программирование наука точная :)
DIFx Если реализовывать "как вариант...", то достаточно будет текстуры. Способы использования методов вывода текстур и (или) текста на худ, есть почти во всех модах и наработках.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
у меня есть строка, в ней находятся несколько неизвестн
отредактировал(а) singapur22: 25-06-2011 14:13 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
DIFx, что значит, как будет называться? Как назовёшь, так и будет называться. Если тебя интересует название текстуры, то ищи в конфигах оружия параметр scope_texture. Это и будет название текстуры прицела.
singapur22
Символы '013' и '010' имеют отличие в применении в том, что в сочетании '013' и '010' (#0D #0A) применяются в DOS кодировке, а только '010' (#0A) - в UNIX/MAC. Но в обоих случаях оба варианта означают/выполняют перенос строки.
Примечание: В ресурсах оригинальной игры и во многих модах нередко можно встрет
singapur22
find() и gfind() - все же различные операторы. :-)
(хотя и этот (gfind) оператор можно встретить (27 раз) в оригинальных 'мусорных' (в основном) файлах/функциях)
СтОит учитывать, что коды писались в самом начале века ... Ну да не суть. :-)
Artos суть не в find, или gfind, а в наборах функций "старые(find(), gfind())" и "новые(match(), gmatch())". И при поиске find, естественно не исключаются, как вариант нахождения и gfind.
Символы '013' и '010' имеют отличие в применении в том, что в сочетании '013' и '010' (#0D #0A) применяются в DOS кодировке, а только '010' (#0A) - в UNIX/MAC.
Спасибо за разъяснение. Сам бы фиг нашёл, в чём их различия. :-)
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
Мы увлеклись оффтопиком, пора закругляться. :-)
Собственно суть моей фразы (процитированной тобою) в том, что первоначально всех критикнул в НЕ использовании удобных операторов/патернов, в то же время применяя старые уже в сегодняшних кодах.
Да и частичный ответ различия 'find' и 'matсh' - в отсутствии "лишних" выходных параметров (соответственно лишние такты/стек). В циклах подобное имеет значение.
P.S. Ну под оффтопиком подразумевал не разборки кодов, а (не)применение их вчера-сегодня-всеми ...
По самим кодам - можно и дальше бесконечно продолжать.
в НЕ использовании удобных операторов/патернов, в то же время применяя старые уже в сегодняшних кодах
Но я действительно был убеждён, что match() и gmatch() в Сталкере ТЧ не работают. Моя оплошность, но что поделаешь. &P
Внесём в обязательный параграф оптимизации кода.
Ладно. Завязываем оффтоп. Хотя поучительных моментов было предостаточно.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos Хм. И всётаки функции find() и match() оказались различны. Тоесть выдают разные выходные данные. Если при обычном использовании шаблона "%@", функция find(str, "%@") выдаёт индекс вхождения, то в том же случае, функция match(str, "%@") возвращает само вхождение (строку). Получается, что, если требуется получить именно индекс, при использовании функции match(), нужно в шаблоне указать на то нужный параметр: match(str, "()%@").
Тоесть, функции по назначению идентичны, но тот, или иной результат достигается различными шаблонами.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
Ну я же в предыдущем посте (#1496137) уже дал некоторую пояснялку:
... частичный ответ различия 'find' и 'matсh' - в отсутствии "лишних" выходных параметров (соответственно лишние такты/стек). В циклах подобное имеет значение.
Как правило (в большинстве случаев), требуются не сами индексы, а искомые патерны.
'match' в своем дефолтном применении требует и меньше входных параметров и на выходе дефолтно только одно искомое значение. Это экономит стек(ресурсы) и требует меньше тактов для обработки.
Так что ... и правой ногой можно почесать левое ухо, но все же рукою это сподручнее. Назначение идентично, результат одинаков - усилия/затраты различны! &P
#singapur22 :
И всётаки функции find() и match() оказались различны...
Таки разрабы не стали бы создавать идентичные функции(методы).
Естественно они различны (как в прочем было и всегда).
Есть ситуации, когда необходимо знать индексы. Тут без файнда не обойтись.
Но она возвращает несколько значений, что несомненно требует больших затрат ресурсов.
Т.е. помимо самого искомого паттерна нужно вычислять и индексы ( последний аргумент вызова этого метода даже не учитываю).
В большинстве же случаев вычисление индексов не требуется (на практике так и получается - проверено). Тут уже "рулит" матч. Он ищет только сам паттерн.
И работает эта функция (метод) процентов на 30 (и наверное больше - система у меня старовата) быстрее.
P.S. Проверял на 3.5 МВ строке. На 10 МВ процентов на 15.
(Но есть способы выровнять показания).
Для "коротких" строк особого значения, конечно, не имеет. Но личные предпочтения всё равно остаются за матчем.
Как ни крути - выходит быстрее. Artos
:-beer)
Кто-бы ещё понял?:-)
отредактировал(а) Gun12: 25-06-2011 22:51 GMT3 час. Не стань номинантом премии Дарвина.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.