Пользователей: 1
Гостей: 1345
Всего: 1346

» Подробно
» Сегодня

Привет, гость!









Автор Сообщение
Alex-San
    
Посты: 1015
Откуда:
Возраст: 51
23-12-2010 02:40 GMT3 час. #1402701   
Недавно Dark Prince спрашивал как изменить загрузочный скрин игры. Оказывается на ВИКИ она давно лежит.
Изменение рисунка при запуске игры (ВИКИ)


Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
23-12-2010 08:39 GMT3 час. #1402779   
Есть кусман код**5001b67681f3126adde4**ject(i)[/code]

Что значат две последнии строчки? Как это читается? Что делает for i=0, cnt-1 do?


Новые фишки для сталкера(см. журнал)
Struck
    
Посты: 1946
Откуда:
Возраст:
23-12-2010 10:43 GMT3 час. #1402805   
Mehanik Yar

по поводу спавна: спавнь просто от одной точки в промежутки времени не зависимо от ГГ и всяких расстояний

по поводу вылетов: уже многие говорили что они лечатся рестартом с последнего сейва(они НЕ стабильны), чаще всего бывают из за кривого спавна чего либо

Stalk15

1 тут
2 берёт все значения которые указаны условием в цикле, то есть конкретней если сказать то начинается итерация от нуля и до cnt-1(общее кол-во минус 1)

отредактировал(а) Struck: 23-12-2010 11:17 GMT3 час.

Снова в строю.

l
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 10:54 GMT3 час. #1402810   
erlik
Не знал. Спасибо за информацию.
"Спрятали", по всей видимости, потому, что существующие способы и быстрее, и проще, и памяти меньше занимают. А выкинуть, наверное, жалко было =)


Не стань номинантом премии Дарвина.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
23-12-2010 12:08 GMT3 час. #1402834   
Gun12
Спрятали просто потому что... спрятали. :-) Забыли упомянуть\расписать в официальной документации. НО пишут что в верcии Lua 5.2 (уже вроде как есть доступная бетаверсия) на это раз упомянуть не забыли.:-)
И существующие способы вряд ли быстрее - мой вариант split() на основе данного шаблона работает в ~80 раз быстрее существующих реализаций split() в сталкере.
Но надо бы конечно еще сравнить ее по скорости с официальной split() из библиотеки lpeg.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 12:44 GMT3 час. #1402843   
Так я же тебе не про СТАЛКЕР говорю, а про Luа.
Мало ли как там кто и что написал.
Значит плохо написали.


Не стань номинантом премии Дарвина.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
23-12-2010 13:07 GMT3 час. #1402849   
Gun12
Отличный вариант - я до такого варианта шаблона как то не допер. Поэтому искал в другом направлении.
Небольшая модификация твоего вариант**5001b67681f3126adde4**.."]+") do -- т.е. указать сепараторы
-- или
--for v in s:gmatch('[%w%_]+') do
if r then t[v] = true
else table.insert(t,v)
end
end
return t
end[/code]
PS: при разборе строки состоящей из десяти тысяч строк слов работает практически с тем же результатом, что и мой вариант(хотя мой вариант ухудшает производительность в два раза при необходимости вставлять пробелы). Так что твой лидирует. Показатель твоего 0.015 сек.
Штатный вариант используемый в модах дает результат в 1.3 сек.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Mastermind
    
Посты: 115
Откуда:
Возраст:
23-12-2010 13:10 GMT3 час. #1402850   
"открытие" с самого начала задокументировано и используется

http://www.gammon.com.au/forum/?id=6034
пост аж 2005 года :-)


Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 13:14 GMT3 час. #1402852   
А ты ещё и занимаемую память проверь. Ещё один, хоть и небольшой, но плюсик добавится.
Сейчас посмотрю как сделать с таблицами.
Я с тела, набирать ужаСТЬ.
-----
Вот-вот. Только хотел сказать

отредактировал(а) Gun12: 23-12-2010 13:27 GMT3 час.

Не стань номинантом премии Дарвина.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
23-12-2010 13:14 GMT3 час. #1402854   
Mastermind
Покажи мне это же самое в официальной справке по lua на lua.ru (или в справочной документации сопровождающей базовые библиотеки lua ) , а также в книге Иерусалимского.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
MRN$
    
Посты: 114
Откуда:
Возраст: 16
23-12-2010 13:44 GMT3 час. #1402863   
Быстрый разбор строки - это хорошо!

Подскажите: "Чем в Сталкере мелкие массивы сортируют?"


всё легко
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 14:04 GMT3 час. #1402872   
MRN$
Не знаю чем именно в СТАЛКЕРЕ сортируют, но в Luа так :
Если массив однородный (числовой или строчный) , то
table.sort(таблица)
Если не однородный, то вторым аргументом в table.sort писать функцию-обработчик.


Не стань номинантом премии Дарвина.
Mastermind
    
Посты: 115
Откуда:
Возраст:
23-12-2010 14:06 GMT3 час. #1402875   
Выживший

Ты скриптер или где? Человек, программирующий на определённом языке должен уметь находить нужную ему информацию самостоятельно. Справочная документация (очень поверхностно переведённая на русский) или книга Иерусалимского - не истина в последней инстанции. Нужно хотя бы немоного читать по английски, так как 80% книг и статей о разных языках программирования, в том числе и о Lua никогда на русском языке не выходили и не выйдут скорее всего.

Просто указанный метод разборки строк паттернами мы уже у себя два года как пользуем, и предположить не могли что он вдруг станет для кого-то открытием :-G

Вам Lua так ещё много готовит открытий чудных :-)

добавлено спустя 1 минуту

Gun12

table.sort работает только с таблицами у которых ключи числовые, на других не сработает, там надо что-то своё придумывать.

отредактировал(а) Mastermind: 23-12-2010 14:07 GMT3 час.

Mehanik Yar
    
Посты: 469
Откуда: Уфа
Возраст:
23-12-2010 14:16 GMT3 час. #1402881   
Struck МММ. я такое наблюдаю. На кордоне если на лагере новичком прыгнуть так на метров 60 вверх, то солдаты видны, они уже стоят на нужных местах.

Я смотрел в спавне, там вроде как солдат этих нет, т.е. они отреспавнились.
Но однако, иду я значит на генераторы, уже ушел от вызова респавна далеко, но вот псевдогиганты появляются лишь при приближении к ним примерно так на 100-70 метров. ну и они из одной точки начинают расползаться по точкам которые я им в логике прописал, теперь я понял о чем вы говорите, респавн происходит, но вот сами НПС или мутанты переходят в онлайн при близком расстоянии, вот что я имею введу.
Короче как повысить дальность при которой мутант переходит в онлайн?


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
23-12-2010 14:19 GMT3 час. #1402883   
Gun12
Не знаю правильно ли я память замеряю: я сделал та


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 14:33 GMT3 час. #1402889   
erlik
Дружище, секунду. Кровь кипит.
Mastermind
Если ВЫ обратили внимание, то в вопросе было сказано слово "массив"
Ни ХЭШ !, ни просто ТАБЛИЦА !, а именно МАССИВ.
А какие ключи в массиве ?...
erlik
В принципе правильно ставил.
И результаты налицо.

отредактировал(а) Gun12: 23-12-2010 14:57 GMT3 час.

Не стань номинантом премии Дарвина.
Mastermind
    
Посты: 115
Откуда:
Возраст:
23-12-2010 15:01 GMT3 час. #1402901   
erlik

Не, у нас же тоже свои особые случаи, мы тоже с**5002b67681f3126adde4**, af_mincer_meat, 0.2, af_soul, 0.0[/code]

Парсится в табличку вида

[code]local artefact = {

[af_blood] = 0.8,
[af_mincer_meat] = 0.2,
[af_soul] = 0.0

}[/code]

Gun12

Бред говорите, в Lua нет такого понятия как массив. "Массивом" в Lua работает одномерная таблица без заданных ключей. А такую штуку вы никак не отсортируете, есть только сортировка по ключам. Пишите что-то свое.


Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 15:06 GMT3 час. #1402905   

# erlik :
Еще бы сделать возможность задавать таблицу сепараторов.


А зачем нужно её вообще создавать?
Я не понял твоего замысла.
Почему в аргумент "sер" при каждом вызове функции не передавать необходимые сепараторы?
Поясни, плз, идею.


Не стань номинантом премии Дарвина.
СидырыЧЪ
    
Посты: 208
Откуда:
Возраст: 30
23-12-2010 15:35 GMT3 час. #1402926   
Помогите с вылетом
Description : item not found, id
Arguments : encyclopedy_mutant_cat_general


Horrible area mod Видео в журнале
--------------------------------------------------------------------
Важнейшая задача цивилизации - научить человека мыслить
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
23-12-2010 15:44 GMT3 час. #1402931   
Gun12
В строке может присутствовать не один вид разделителей - ,./^ & *: %; - все что угодно.
Во всех нормальных реализациях метода split() (в других языках ) присутствует возможность передачи как аргумента таблицы сепараторов, чтобы метод смог разобрать строку ориентируясь на заданный набор.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 15:45 GMT3 час. #1402932   

# Mastermind :
Бред говорите, в Lua нет такого понятия как массив.

Ну, как Вам уже говорили, мы университетов не заканчивали. Самоучки-с.
Поэтому ищем информацию где прийдется.
Когда-то нашел такое :
"В отличии от традиционных языков программирования, в Luа можно смешивать все виды задания полей. Однако, пока это возможно, Luа старается хранить массивы именно как массивы, а не хэши, что делает работу с массивами быстрее"
Могу и поискать из какой это статьи, но только дома с компа.
Можете связаться с автором, и так сказать на высшем уровне прийти к консенсусу.
А мы, плебеи, потом изменим своё мнение.


Не стань номинантом премии Дарвина.
SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
23-12-2010 15:48 GMT3 час. #1402934   
СидырыЧЪ, вывод очевиден: создавай страничку в кпк с названием encyclopedy_mutant_cat_general


Хочешь работать нормально, работай один!
Silver Raven
    
Посты: 415
Откуда:
Возраст:
23-12-2010 15:54 GMT3 час. #1402937   
СидырыЧЪ

Если я правельно понимаю, добавленный тобой, "новый" мутант (кот) не занесен в инциклопедию.

Следовательно, необходима правка следующих файлов:
xr_info, encyclopedia_mutants, info_known_objects для правильной работы вырезанных из игры монстров.

Собственно о чем тебе, в кратце тебе сказал тов. SkyLoader


Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 15:56 GMT3 час. #1402940   
erlik
дружище...
А чем тебя не устраивает

for v in s:gmatch('[^%s%,]+') do
добавь в паттерн то , что нужно
'[^%s%\\%*%,%~%/%%%: ну и т.д. через знак процента]'
Или передавай необходимый набор для конкретной строки.

отредактировал(а) Gun12: 23-12-2010 16:07 GMT3 час.

Не стань номинантом премии Дарвина.
Mastermind
    
Посты: 115
Откуда:
Возраст:
23-12-2010 16:03 GMT3 час. #1402944   
Gun12


Когда-то нашел такое :
"В отличии от традиционных языков программирования, в Luа можно смешивать все виды задания полей. Однако, пока это возможно, Luа старается хранить массивы именно как массивы, а не хэши, что делает работу с массивами быстрее"


Хых, какой консенсунс блин - вы сами не поняли что имеется в виду. Ага, Lua старается такие таблицы как массивы хранить. Только хранит она их в исполняемом коде в ОЗУ, а не "у нас тут". Мы "не с той стороны" кода находимся, и массивы определять не можем. Делаем таблицу, а дальше она сама разбирается как её хранить. Поэтому я и говорю - в Lua массивов нету. Есть "плоские" одномерные таблицы. А как уже она их там хранит в ОЗУ нас не касается, мы всё равно ничего с этим сделать не можем :lol)

И никаких функций нету в Lua для сортировки массивов, только для сортировки таблиц с номерными ключами. Поэтому сразу говорю, придумывайте что-то своё.

добавлено спустя 2 минут

Кстати, как интересно вы собираетесь определять - как там в данный момент Lua хранит вашу таблицу? Чтоб узнать, насколько быстро оно работает? :prankster:

отредактировал(а) Mastermind: 23-12-2010 16:05 GMT3 час.

Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 16:20 GMT3 час. #1402951   
Mastermind

Так. Получается, что весь смысл нашей дискуссии сводится к тому, что я что-то там неправильно назвал, хотя речь ведется об одном и том же?
И tаblе.sоrt таки работает с с этим "одним и тем же".
Спасибо конечно, но мне Ваша поправка не принесла ничего полезного в плане практики.
На сем закончу дискуссию, т.к. и количество моих постов на портале говорит о предмете беседы.


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
23-12-2010 16:26 GMT3 час. #1402955   
О! Тут делом занимаются! :-)
erlik, Gun12
Спасибо за уже проделанную работу!
Когда-то (в начале кодоко**5004b67681f3126adde4**ctgarbage("collect")
collectgarbage("collect")
return collectgarbage("count")
end[/code]
Странно, что у тебя выдает с десятичными ...

Кстати, а зачем 'bHash' затаскивать внутрь цикла распарсивания строки? При длинной многочленной строке проверки на этот флаг излишни (ИМХО). Не проще ли типа:
[code]function Parse_StrToTbl(sStr, sDiv, Mode)
local tRet = {}
local sPattern,sValue = "",""
if sDiv then --/ если divider задан: разделяем по нему
sPattern = '[^%s%'..sDiv..']+'
else --/ разделяем слова
sPattern = '[%w%_]+'
end
if Mode == nil then --/ обычный массив
for sValue in sStr:gmatch(sPattern) do
table.insert(tRet, sValue)
end
elseif Mode == true then --/ таблица '[значение]=true'
for sValue in sStr:gmatch(sPattern) do
tRet[sValue] = true
end
elseif type(Mode) == "number" then --/ таблица '[idx] = число или стринг'
local iIdx = 1
for sValue in sStr:gmatch(sPattern) do
tRet[iIdx] = tonumber(sValue) or sValue
iIdx = iIdx +1
end
else
--/ тут еще можно что-нить замутить ...
end
return tRet --/>
end
[/code]
Так должно вроде как побыстрее длинные строки разбирать.

О принудительной записи в pstor: Да, для акторсого нужно ставить коллбэк в биндере актора, в самое начало 'actor_binder:save(...)', пока не начались пакеты из 'xr_logic.pstor_save_all(...)'.
Если же для других объектов - то можно и в акторском ... или если есть причины - ловить в 'xr_logic'.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
23-12-2010 16:27 GMT3 час. #1402956   
Gun12
Ну наверно можно и в самом шаблоне сразу задать все подряд. Просто я говорю о реал**5001b67681f3126adde4**и удалим пустые строки.
string [] massiv = stroka.Split(new char[] {' ', ',', ';', ':', '.', '?', '!'}, StringSplitOptions.RemoveEmptyEntries);
[/code]
то есть непосредственно в виде аргумента-таблицы передается нужный набор разделителей.
---------------------------------------------------------------------------
Artos
Понял насчет пстора.
collectgarbage попробую в таком варианте использовать.

...Ну вот и новый вариант функции уже есть:-)

отредактировал(а) erlik: 23-12-2010 16:39 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Struck
    
Посты: 1946
Откуда:
Возраст:
23-12-2010 16:33 GMT3 час. #1402959   
Gun12 Artos erlik можете объяснить дураку какой смысл в данном коде?:-)...я пока понял что он "что написали" переделывает в таблицу...иными словами из строки создаёт таблицу...


Снова в строю.

l
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
23-12-2010 16:37 GMT3 час. #1402965   

# Artos :
Странно, что у тебя выдает с десятичными ...

Так ведь возвращает в килобайтах. Если умножить на 1024, то будет без десятичных.


Не стань номинантом премии Дарвина.


Форумы Архив » Свалка Вопросы и ответы (старое по 29.01.11)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»