erlik
Новаторство - это никогда не было плохо, но...посмотри подпись Deathdoor-а, и скажи, - "Что же лучше?"
**5018b67681f3126adde4**val = {
["zaton"] = 10000,
["jupiter"] = 15000,
["pripyat"] = 20000
}[/code]
А не
[code] local time_interval = {
zaton = 10000,
jupiter = 15000,
pripyat = 20000
}[/code]
zaton - это имя переменой. Может быть она была определена где-то раньше(даже в других скриптах)
а ["zaton"] - это конкретный ключ (строка, определяющая название ключа)
так что разница большая.
И вообще.
Как в том сериале, - "Картина маслом" =)
Спать.
Давай лучше в РМ всё объясню.
Функция, какая бы она не была, занимает место в стеке.
Если есть возможность не делать этого (ну ладно, свести к минимуму, тот же fоr i=Х,Х dо...), то зачем это делать?
Когда уже деваться некуда, то конечно используется РАIRS.
Но везде говориться, что желательно, по возможности, не создавать хэшев.
Luа всё-таки высокоуровневый язык программирования, и то что "хорошо" для 'С' не всегда "хорошо" для Luа.
Эти языки в разных "весовых категориях".
Может быть 'С' и по-барабану, хэш это, или массив, но для Luа это не так.
Не для этого он создавался.
А универсальность всегда тянет за собой падение производительности.
Я уже начинаю отказываться от этой "универсальности".
Лучше написать лишние строки кода, но работать будет ощутимо быстрее.
P.S в РМ есть сообщение для тебя.
отредактировал(а) Gun12: 20-12-2010 11:54 GMT3 час. Не стань номинантом премии Дарвина.
Ребята, помогайте!
Есть такой мод, я не помню, как он называется! Этот мод основан на Т.Ч., в нём короче можно создавать свою группировку, базу, чинить, перегонять технику и т.д.! Если кто знает об этом моде пишите, либо здесь, или же в Л.С.
Люди, здравствуйте.
Вот вопрос: if db.actor:object(item) then... заменяет проверку нахождения предмета ITEM через цикл. Это утверждение.
Как осуществить проверку, что предмета в инвентаре нет? Ведь if not (db.actor:object(name_ammo)) then вернет первый предмет NOT_ITEM.
Я, конечно, могу написать проверку циклом, но все же, это уже дело познания нового - как одной строчкой (если возможно) осуществить проверку?
Вопрос №2 (уже на полном серьезе, а не ради интереса):
вот есть переменная, объявленная вне функции и сохраняющаяся даже при выходе из ф-ции. Но как сохранить ее значение, если она не принадлежит к какому-либо объекту?
Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
vhodnoylogin
**5001b67681f3126adde4** -- именно так все и делают.
С чего ты решил что это не работает? Данный метод (db.actor:object(section))обращается к массиву объектов инвентаря ГГ и проверяет (как я думаю) нахожден**5005b67681f3126adde4**e]
local ActiveBag =""
function Save(packet)
packet:w_stringZ(ActiveBag) -- сохраним строку
end
function Load(reader)
ActiveBag = reader:r_stringZ() -- загрузим строку
end[/code]
обе функции ставятся на вызов в экторский биндер - в методы actor_binder:save(packet) и actor_binder:load(reader)
Или в pstor.
отредактировал(а) erlik: 20-12-2010 23:09 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Я бы не стал применять и рекомендовать писать напрямую в пакет актора свои сохранялки. Любая подобная запись превращает игру в несоввместимую по сэйвам ни 'до' ни 'после' до(у)бавления записи.
Подобные добавления записей должны быть о-о-чень продуманными и никак не времянками ...
Для 'повседневного' - pstor вполне пригоден. (ИМХО)
Artos а если таких значений до чёрта?...где три-пять там да, лучше пстором, но я писал коды где обработка одной переменной в функции происходит раз 10 и каждый параметр надо было запоминать, тут уже я сделал пакетом(десяток - другой псторов конечно актора не перегрузят, но...). Так что это дело желания/лени:-)
Согласен со Struck в том плане, что если значение переменной неоднократно(или даже постоянно) меняется во время работы скрипта и при том ее изменение происходит в разных местах\скриптах\модулях(а у меня например это так) - то запись в pstor (точнее постоянная перезапись и постоянное считывание из пстора)становится несколько обременительной операцией.
Ну а по поводу Сидора - объект тоже вполне годный(при условии что он есть в игре\моде :-)).
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Dark Prince
Данной текстуры (сразу бы написал что это зеленый прямоугольник со списком разработчиков который появляется при двойном клике на ярлык запуска игры) нет в геймдате. Она часть ресурсов движка. Так что либо забудь, либо ResHack(что это такое - погугли - узнаешь) тебе в руки.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
#Strike111 :
А как сделать так, чтобы после стрельбы гильзы не исчезали совсем?, т.е. даже при переходе на другую локацию.
А зачем вам это? Кроме перегрузки движка никакого "интереса" небудет.
Гильзы это партиклы у которых есть время жизни, попробуйте поставить запредельное число.
ResHack - это не дизассемблер, а
"... редактор ресурсов, программа, предназначенная для просмотра, извлечения и замены ресурсов в исполняемых Portable Executable файлах, используемых в 32- и 64-битных версиях операционной системы Microsoft Windows, например, .EXE или .DLL.
С помощью этой программы можно производить поиск и замену иконок, изображений и текстовых строк в исполняемых файлах. Среди дополнительных возможностей программа имеет функции работы из командной строки".
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Alex-San
С таким подходом к работе как у него... SkyLoader
А если отслеживать выстрелы из оружия и спавнить по позиции актора гильзу? Или допустим отследить направление взгляда игрока и спавнить гильзу на полметра левей(правей) актора?
Это у Борова, зеленым это дверь в лабораторию, можно ли на основе этого, функцию спауна сюда же прописать?
Как правильно ее записать?
Horrible area modВидео в журнале
--------------------------------------------------------------------
Важнейшая задача цивилизации - научить человека мыслить
У меня появилась идея со спавном предметов по координатам актора когда я думал как сделать следы на снегу. Но у меня нет знакомого модельщика и текстурщика чтобы реализовать их
Struck: ...где три-пять там да, лучше пстором, но я писал коды где обработка одной переменной в функции происходит раз 10 и каждый параметр надо было запоминать
erlik: ... если значение переменной неоднократно(или даже постоянно) меняется во время работы скрипта и при том ее изменение происходит в разных местах\скриптах\модулях(а у меня например это так) - то запись в pstor (точнее постоянная перезапись и постоянное считывание из пстора)становится несколько обременительной операцией.
Ну вот и ... сами же подходите к некоторой нелогичности/неудобству и ... так и не снимаете шор :-(
1. **5004b67681f3126adde4**код
self.initialized = true
--/#+# добавим актору в рюкзак
if not db.storage[self.actor_id].pstor then
db.storage[self.actor_id].pstor = {}
end
local st = db.storage[self.actor_id].pstor
if st and not st["my_spawn"] then
st["my_spawn"] = true --/ метка чтобы не спавнить повторно
local tSpawnItems = { --/ список секций предметов для спавна
"conserva",
"medkit",
"vodka"
}
local oActor = db.actor
local vPos,idLv,idGv,idObj = oActor:position(), oActor:level_vertex_id(), oActor:game_vertex_id(), oActor:id()
local sim = alife()
for _,v in ipairs(tSpawnItems) do
sim:create(v, vPos, idLv, idGv, idObj)
end
end
end
--/<
end
end[/code]
SkyLoader удаление... Хм, но вылет возникает при попытке разговора с Сидоровичем:poisk
А так спасибо большое.
О, отл, теперь вылетает на старте игры, все с тем же, только цифры другие... Грешу почему то на Рюкзаки от Erlik. Попробую вырезать, поглядим че получится. толку ноль.
Line : 12
Description : entity not found. id_parent=0 id_entity=26624 frame=2849
отредактировал(а) АнархОПанк: 22-12-2010 18:57 GMT3 час.
Окей Artos, я кажется тебя понял.
А принудительную запись в pstor(если отказаться от постоянной записи\перезаписи нужного параметра) - при выходе\завершении игры - получается нужно ставить в тот же экторский биндер - в метод save?
------------------------------------------------------------- Для изучающих lua:
Нашел в lua
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Вопрос такой. Есть дальность срабатывания респанера. Как эту дальность повысить? А то меня не прет то, что когда его вызываешь, то респавн происходит лишь если там в 100 метрах рядом с ним находишься.
А то такая фигня. Я на локу не спавнил мутантов, они респавнятся, но вся толпень чтобы разошлась нужно время. Как раз пока ГГ гуляет где то эта толпень должна разойтись по домам. Однако очень нужно близкое нахождение ГГ рядом с респой.
И вот такая вот ошибка появилась в саркофаге, я игру не проходил, просто решил туда сразу смотаться. Стрелял стрелял по моналитам и тут бац.
Expression : e_entity
Function : xrServer::Process_event_reject
File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp
Line : 12
Description : entity not found. id_parent=17947 id_entity=36369 frame=132532
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.