Пользователей: 1
Гостей: 812

» Подробно
Привет, гость!








Автор Сообщение
ВЕРЕС14
    
Посты: 362
Откуда: Калуга
Возраст: 30
02-09-2010 16:12 GMT3 час. #1336257   
Скажите, а как называется музыка которая играет в меню Priboy story ? Очень нужно узнать название


Не говори что мне делать, и я не скажу куда тебе идти! (с)
Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 17:10 GMT3 час. #1336332   
singapur22
Что то (ИМХО) ты далеко удалился в исследовательскую область, причем (опять же ИМХО) малопрактичную с точки зрения модмейкерства.
Ведь ясно де, что и микроскопом можно гвозди забивать и зубами бутылки открывать ... Но всему свое место и время ...
Если все мы живем в 3-х мерном мир (время не в счет) и со школы привыкли под вектором (это если кто еще помнит :-) ) подразумевать именно трехмерные (x,y,z), то вспоминать о том, что существуют еще иные измерения и N-мерные векторы - как-то недосуг.
К чему это я? На последнем примере с 'position', который, применительно к кодам игры, является банальной табличкой с дефолтным размеров в три элемента, ты собственно просто "открываешь" то, что и без этого ясно. Т.е. любую табличку можно изменять/пополнять/усекать ...
Вот только если у нас в мозгах укоренилось, что позиция объекта это именно три цифирьки в трех-мерном пространстве, то помнить, что где-то ты, как модмейкер, прицепил к этой табличке еще что-то - может сослудить и плохую службу, ежели забыть про это.
Как правило, любое нестандартное применение требует повышенного внимания и соблюдения доп.условий. Что же лучше, экономить на переменных, на строчках кода ... или ипользовать 'по назначения', дробить мегатаблицы и мегафункции на их составляющие по смыслу/сути?
Естественно нет однозначного рецепта и у каждого свои пристрастия :-)

Ну да это оффтопик ... не стОит наверное его продолжать.

Появилось немного времени и попробую сеейчас описать процесс доступа к параметрам из 'cse_abstract' на примере создания лампочки (удобен тем, что и не сильно влияет на остальные объекты/игру и методы все работают).


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-09-2010 17:20 GMT3 час. #1336337   
Artos Ну, от тебя то уж я кроме критики никогда ничего не слышал. То что я пример привёл с передачей данных для спавна, то это всего лишь пример, для большего понимания. А применений данной особенности можно привести множество. Например сохранение дополнительных акторских данных, в самой юзердате актора. Что согласись, очень удобно. Так что, сделаю так, как я всегда делаю. Пропущу твои высказывания мимо ушей. :-)

А вот про cse_abstract, давай.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Mehanik Yar
    
Посты: 469
Откуда: Уфа
Возраст:
02-09-2010 17:24 GMT3 час. #1336341   
Вот поумнее и поковарнее этого кровососа сделать - вот этим стОит заняться. 'Мозги' ему нужно добавлять (AI-схему) а не анимашки! (ИМХО)
дело говорит, можно начать с простого, это подкрадывание кровососа сзади втихушку, а потом как долбанет по башке и почти все жизни сносит нафиг.


SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
02-09-2010 17:46 GMT3 час. #1336370   
Mehanik Yar, ты видел, что написал Дезодор по поводу этого? Он сказал, что DLLки ломал помимо скриптов. Правда я не знаю зачем, но беспокоить не буду больше.


Хочешь работать нормально, работай один!
Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 17:50 GMT3 час. #1336371   
singapur22
ну ведь критиковать то всегда легче, вот и занимаюсь ... :-)
Ну а по делу, просто в данном топике излишние 'замудрости', которые могут быть взяты на вооружение малоопытными - им же самим могут повредить.
И не нужно приводить примеры, т.к. ПРАКТИЧЕСКОГО применения большей частью подобные замудренности не имеют, а с толки неопытных сбивают.

И НЕ соглашусь с твоей фразой об удобстве хранения дополнительных акторских данных в его же юзердате. 'НЕ соглашусь' именно с фразой, а не сутью, т.к. БЕЗ оговорки/предостережения эта фраза больше вреда приносит! Очень удобно, но и очень опасно!
Сам наелся с ней и еще долго буду разгребать коды сборки (остатки АМК и других) от этого "удобства".

То, что наиболее удобно сохранять и брать из юзердаты актора - это верно, НО(!) на сколько?
Есть ли минусы у этого варианта? Чем грозят эти минусы, есть ли они имеются?

Предлагаю поразмышлять/поговорить по этому поводу, т.к. многие молодые модмейкеры или не знают о способе такого хранения или начинают так его использовать, что немного позже больше вреда имеют, чем пользы.


SkyLoader
Станный ты ... Вначале кинулся искать способ реанимировать поцелуйчик. Теперь, получив от Дезодор'а ответ как сделал он, понял, что тебе (и другим неопытным) реанимировать неудастся.
Зачем же теперь распространять табу на копания с кровососам на все и всех?
Mehanik Yar высказал абсолютно здравую мысль, к твоему поцелую это не имеет отношения. Реализуемо это и без ковыряния в dll'ках ... Да и только ли Дезодор'у это подвластно? :-) Кому понадобится - расковыряет не хуже.
Давай не будем муссолить тему поцелуйчиков по каждому поводу. Без практических результатов, вопросов/ответов это уже злостный оффтопик.

отредактировал(а) Artos: 02-09-2010 18:02 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
02-09-2010 18:16 GMT3 час. #1336389   
Ладно, попытаюсь сам поковырять. Главное узнал как, теперь все норм.



тебе (и другим неопытным)

...


Ну может ты и прав. Потому что у меня есть вопрос: если у меня есть в таблице, например, 3 любых непися, то я могу у всех них взять юзердату и спавнить на их координатах мой предмет?


Хочешь работать нормально, работай один!
Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 18:25 GMT3 час. #1336400   
SkyLoader
Задавая вопрос, старайся подумать:"А достаточно ли он внятен и информативен для других?"
Как понимать твое 'у меня есть в таблице, например, 3 любых непися'? Что у тебя там в таблице? Скрины неписей, их идентификаторы, собственно их юзердаты иль еще только тебе ведомое?
Если неписи - то обычно под этим и понимают объекты неписей, т.е. твои искомые юзердаты.
Если идентификаторы, то возможность 'взять их юзердаты' зависит от этих идентификаторов. По игровому, стори- идентификаторам нет проблем. По имени - скорее всего ...
Итак получив юзердаты объектов (неписей) и не важно серверные иль клиентские - бери их координаты и спавни сколь угодно ... Вот только один предмет ты можешь заспавнить только раз, а не размазывать по трем ... :-)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 31
02-09-2010 18:25 GMT3 час. #1336402   
Есть у кого-нибудь пример сохранени**50016ea8aab1bb10eeba**unt = {}
Если то сё тогда
count = count + 1[/code]
Кажется, я локальную не правильно задал.Если что - поправьте.
Как этот плюс один сохранить, чтоб не сбивалось при загрузке игры?.Читал где-то про это, но как-то не очень понятно.Так что желательно примерчик показать, если есть, так легче усваивается:-)

отредактировал(а) Stalk15: 02-09-2010 18:54 GMT3 час.

Новые фишки для сталкера(см. журнал)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-09-2010 18:27 GMT3 час. #1336406   
Artos Собственно, опасности не вижу. Да и определить её, тем более пустыми размышлениями **50096ea8aab1bb10eeba**labla:__init()
self.key = 75
end

аналогично

local bla = blabla()
bla.key = 75[/code]

С одной лишь разницей, что во втором примере, ключь добавляется отдельному объекту класса.
Если данного ключа у какого либо объекта не наблюдается, просто возвращается nil.
Тут главное не промахнуться, и не переустановить уже имеющийся ключ, установленный двиглом. Но и здесь я проблем не вижу. Все списки уже имеющихся ключей имеются в файле lua_help.script

отредактировал(а) singapur22: 02-09-2010 18:39 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 18:31 GMT3 час. #1336410   
Stalk15
Ты хоть сам прочти что написал!
Совсем уже не хотите головой думать, когда пишите? 8-)
О какой таблице ты вопрошаешь, ещели в коде одни числовые переменные видны.
В кодах и 'count_o' и 'count' ... и что тебе трЭба сохранять?


singapur22
Ты упустил самую 'малость', которая многим модмейкерам доставила и доставляет немало огорчений/хлопот.
Размер СОХРАНЯЕМОГО стораджа актора (db.storage[db.actor:id()].pstor) имеет ограничение по объему НЕ более 8196 байт.
Если учесть, что при штатном прохождении игры этот объем заполняется 'штатными' данными примерно до 4-5 килобайт, то тебе на все про все (удобство хранения) остается не так уж и много (все конечно в сравнении).
Превышение объема грозит тем, что при сохранении чрезмерной таблицы ты получишь битый сэйв.


MRN$
Из твоего ответа не ясно о чем речь, но если ты о хранении в стораджах объектов - то хранить можно что угодно, в том числе и таблицы. Только запаковывать потебуется до стрингов.

отредактировал(а) Artos: 02-09-2010 18:43 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
MRN$
    
Посты: 114
Откуда:
Возраст: 17
02-09-2010 18:40 GMT3 час. #1336419   
Stalk15
Попробуй разобраться с этим. Не таблицы, но данные сохранять можно, только не очень много - экономь "юзердату актора". Описание: Функции для записи данных в сохранения. Пишет-читает: числа, строки, дату-время, логику.
http://file.qip.ru/file/r6rMnuyb/u_online.html

Artos
Я старался, что-бы не поперёк того, что я видел в оригинале было - а там гдето проверки какие-то видел.... вот и ограничился...


всё легко
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-09-2010 18:43 GMT3 час. #1336424   
Artos

Размер стораджа актора (db.storage[db.actor:id()].pstor) имеет ограничение по объему НЕ более 8196 байт.
А теперь скажи мне, где модмейкеры сохраняют данные своих скриптов?
Я сам отвечу. Всё в том же акторе. Естественно, данные относящиеся к актору, будь то отдельные переменные, или ключи юзердаты актора, в любом случае будут сохраняться в в самом акторе, а не у Сидора, или аптечки находящейся непонятно у кого. Так что, данная проблема к нашему вопросу, имеет только косвенное отношение. Точнее, это общая проблема.

Хотя... А почему бы и нет. Ведь тот же Сидор, всегда имеет своё существование (он ведь бессмертный). А посему, тоже вариант. Надо попробывать.

Попробывал. Всё пучком. :-)

отредактировал(а) singapur22: 02-09-2010 18:58 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
02-09-2010 18:53 GMT3 час. #1336429   
Artos, в таблице находятся юзердаты РАНДОМНЫХ 3-х неписей, мне надо взять юзердату каждого непися и 3 раза спавнить (т.е. 3 раз

отредактировал(а) SkyLoader: 02-09-2010 19:11 GMT3 час.

Хочешь работать нормально, работай один!
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 31
02-09-2010 18:54 GMT3 час. #1336431   
Artos
Ошибся, в посте исправил.

MRN$
Я видел твой скрипт.Но я не понял, к**50016ea8aab1bb10eeba**storage[db.actor:id()].pstor[name]
return yds2CTime(name)
end
end[/code]

Если можешь, покажи пожалуйста пример.
--------------------------------------------------------------------------------------
MRN$
Что-то всеравно не совсем понимаю.Ладно, забью пока на сохранение, не дается мне...покачто:-)

отредактировал(а) Stalk15: 02-09-2010 19:14 GMT3 час.

Новые фишки для сталкера(см. журнал)
MRN$
    
Посты: 114
Откуда:
Возраст: 17
02-09-2010 18:58 GMT3 час. #1336436   
Stalk15

Так писать число, строку или логику:
datawrite(name,action,value)
action - должен быть, но действует только на числа: 0 - просто записать, 1 - прибавить к тому, что есть, 2 - умножить на то что есть;
записанное читать так:
dataread(name)

Так писать время:
datawrite(name,action,yy,mm,dd,hh,mn,sc,msc)
action - должен быть для порядка, любой.
записанное читать так:
dataread(name, datatype)
datatype - любое значение, только не нил

Там внутри небольшое ридми есть.
(ладно, позже сделаю примеры на все случаи, сброшу в ПМ)

отредактировал(а) MRN$: 02-09-2010 19:15 GMT3 час.

всё легко
Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 19:01 GMT3 час. #1336442   
singapur22
Это не общая проблема, т.к. объема стораджа вполне хватает исходной игре и мелким модам. Точнее тем модам/модмейкерам, которые не сохраняют досточных объемы данных из своих кодов.
Вспомним историю и пройдем дальше:
АМК-мод: Добавлен алкоголизм, добавлена возможность зомбирования контролерами. Т.к. и кол-во выпитого и кол-во контролеров и зомбированных ими неписей не ограничено - это привело к переполнению сэйвов и их краху.
Уже тогда командой АМА была введена в моде и предварительная проверка объекма перед записью стораджа и разгрузка от лишних данных ...
Сейчас множество модов юзают сторадж актора. Рандомные тайники, рандомные награды, маячки со списками хабара и т.д. Все это приводит к балансировке на грани краха сэйвов при использовании 'удобства' хранения и сохранения в юзердате актора.
Отвечу на твой вопрос:

... где модмейкеры сохраняют данные своих скриптов?

- Совсем малоопытные, как Stalk15 , нигде, пока им не подскажут.
- поопытнее - юзают сторадж актра (пока недосохраняются до крахов сэйвов).
- опытные - начинают 'размазывать' данные (хранить децентрализованно) по самим объектам игры.
- набившие шишки, но не бросившие затеи сохранять много - да хоть у Сидорыча могут хранить, хотя часто используют доп.предметы для этого (флешки и т.п.).

ИМХО, зря ты так легко относишься к этому вопросу. Боле-менее серьезный мод как правило генерит немало своих данных, требующих сохранения и транжирить с самого начало сторадж актора - путь в тупик, из которого только возврат и переделка многого заново ...


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-09-2010 19:08 GMT3 час. #1336453   
Artos Вопрос стоял не о том, где ты сбудешь СОХРАНЯТЬ данные, а в том, можно ли использовать userdata объектов, для текущего хранения их данных, дабы не создавать глобальных переменных, или не передавать данные из файла в файл, которые между собой только и связаны их использованием. Не для сохранения в сейв, именно для текущего хранения, пока не будет произведена перезагрузка. А если трэба ещё и сохранение в сейв, то это уже другая тема, так как в любом случае, пока ты их не пропишешь в сохранки, сохраняться они не будут.
В течении онлайна, новые данные можно держать в акторе, а сохранять в той же флэшке. Суть от этого не меняется. Что ты их будешь держать в глобальной переменой, что у актора. Но согласись, второе значительно удобней.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 19:10 GMT3 час. #1336458   
Stalk15
Для твоего част

отредактировал(а) Artos: 02-09-2010 19:36 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
and_modern
    
Посты: 61
Откуда:
Возраст:
02-09-2010 19:21 GMT3 час. #1336468   
Artos Почему вы так нервно реагируете на поцелуй кровососа?))) Он вас не кусал??))
Если вам не нравится этот вопрос, не отвечайте не него, кому надо тот его и помусолит. Тема открыта не для вас лично и вы здесь не хозяин! Посмотрите на свои посты, вам не интересно и вы говорите все завязываем...с чего вдруг? Вы кто?
Не хотите помогать по данному вопросу не помогайте, вас лично НИКТО не просит.
п.с. не думайте что все вокруг идиоты.
==========================================
Пишу в ЛС, наши разборки некому не нужны, да и порядок будет :-).

отредактировал(а) and_modern: 02-09-2010 20:33 GMT3 час.

Партиклы
vovang
    
Посты: 68
Откуда:
Возраст: 39
02-09-2010 19:21 GMT3 час. #1336469   
Как отключить сообщение о помощи от беса,или крота?


Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 19:34 GMT3 час. #1336482   
and_modern
Меня то не кусал :-), сам могу укусить ..., а вот у вас, так нервно ковыряющих конфиги в попытке вкусить "награды", похоже всосал остатки разума ...
Вопрос 'как сделать засос' уже трижды в топике задавался. Кроме флуда и демагогии никто ответа не имеет. а и дублирование запрещено правилами.
Мне не нравится, что на общем ресурсе мне приходится читать эти сопли и измышления, больных засосом.
Почитай правила портала - флуд запрещен правилами.
В своих же постах я или предлагаю прекращать флуд и уже неконструктивные диалоги или же адресные диалоги со мною. Уж что-что, а прекращить свои диалоги я имею право.

Насчет помощи: тут помогают ответами на вопросы, а делать моды иль мусолить подобные темы - иной топик "Как сделать свой мод?" иль "Идеи и реализация", где можно сколь угодно муссолить разные фантазии.


P.S.
А не перейти ли вам с SkyLoader в ПМ или в аську по вопросу засоса?!
И никто там вам не будет мешать/обижать и тут почище будет!
Если вам двоим так хочется помуссолить и пофлудить - так не мешайте другим, плз.

Со мной же по многим вопросам можно говорить, но не флудить иль сопли пускать иль перья павлиньи распускать ...

отредактировал(а) Artos: 02-09-2010 20:11 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
02-09-2010 19:35 GMT3 час. #1336483   
Не в тему сегодняшнего обсуждения, но вот столкнулся со странной проблемой - может кто сталкивался.
Спавню (одновременно) два объекта на одной координате - то есть передаю им одни и те же цифры.
При спавне на текущем уровне все нормально - оба объекта на одном месте.
Перешел на другой уровень - (объекты предварительно уже были там заспавнены с начального уровня ) и вижу такую картину - один объект в одном месте, другой фиг знает где - метров на сто от него. Хотя одна-две пары(из почти двух десятков) все таки были на своих местах. Отчего может быть такой разброд и непопадание в одни и те же координаты? И собственно как же тут быть?
--------------------------------------------------
Кстати заметил зависимость реагирования объектов на хит от их визуала: рюкзак - практически не реагирует - у меня получилось только один раз попасть в нужную точку, чтобы каллбек сработал.
Динамитный ящик - чтобы каллбек сработал нужно стрелять по краям, по центру - не реагирует.
Маленький лабораторный ящик - так и не среагировал ни разу. Дипломат, сейф, кейс, деревянный ящик, контейнер - к хиту чувствительна фактически вся площадь визуала.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 19:49 GMT3 час. #1336494   
SkyLoader
Ну очень информативно твое уточнение по 'РАНДОМНЫМ' как будто это чем-то помогает.
Что тебе следует сделать (один из вари**50016ea8aab1bb10eeba**_2:game_vertex_id())
My_Table[soObj .id] = "непись_3"
soObj = alife():create("непись_3",непись_3:position(),непись_3:level_vertex_id(),непись_3:game_vertex_id())
My_Table[soObj .id] = "непись_3"
end
[/code]

После этого, имея в табличке идентификаторы, ты в нужный момент можешь, используя их, получить юзердаты хоть все хоть конкретную юзердату непися:
local oObj = level.object_by_id(ID) - клиентский
local soObj = alife():object(ID) - серверный
local soObj = alife():object("непись_Х") - серверный по имени

и получив от них нужные координаты - спавнить что тебе нужно.


vovang
Если тебе не отвечают - это не повод через 30 минут вопрошать вновь.
Не все торчат в онлайне, далеко не все знают ответ, еще меньше желают на него ответить. Жди, возможно кто и ответит.
Мой же ответ: правь логику связанную с бесом/кротом, которая выдает тебе инфопоршни иль в таск-менеджери убери эти задания.
Далее вопрос для меня не интересен. Или жди, кто подробнее растолкует или ... копай сам и по конкретным(!) непоняткам можешь опять спрашивай.

отредактировал(а) Artos: 02-09-2010 20:11 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-09-2010 20:07 GMT3 час. #1336504   
erlik На счёт хита. Смею предположить, что объекты в Сталкере имеют два типа коллайдеров. Движковый, и скриптовый. Движковый, это тот, который отслеживает хит и воспроизводит, озвучку попадания и маркеры хита (дырки), (имеется практически у всех объектов с установленным визуалом .ogf), а так же удаляет хитующий предмет (если пуля). Скриптовый, который ставится в скриптах, и уже там используются его результаты. Видимо размеры коллайдеров не синхронизируются. И скриптовый коллайдер имеет меньшие размеры, чем движковый. Они явно должны быть одинаковыми. В итоге, движковый коллайдер удаляет хитующий предмет раньше его входа в скриптовый коллайдер. Проверить можно путём хитования не пулями, а ножом. Нож в данном случае проходит в глубь любого объекта без удаления онного.

P.S. Это только предположения.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
02-09-2010 20:48 GMT3 час. #1336554   
Artos, под понятием РАНДОМНЫЕ я понимал некий перебор айди, и если вот к примеру отсеялось 3 каких-то непися, вот их то я имею ввиду.
Как узнать, сколько в таблице значений? (например {a,b,c,d} - т.е. 4 значения).

отредактировал(а) SkyLoader: 02-09-2010 21:01 GMT3 час.

Хочешь работать нормально, работай один!
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 31
02-09-2010 20:59 GMT3 час. #1336573   
SkyLoader
'...--тут я вставил 3 неписей' - как? Зная структуру таблы, можно уже попробовать отт

отредактировал(а) Darien Fx: 02-09-2010 21:22 GMT3 час.

SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
02-09-2010 21:05 GMT3 час. #1336583   
Darien Fx,
**50016ea8aab1bb10eeba**ей
table.insert(table, obj)
...--а дальше знаешь[/code]

отредактировал(а) SkyLoader: 02-09-2010 22:15 GMT3 час.

Хочешь работать нормально, работай один!
Artos
    
Посты: 4176
Откуда:
Возраст: 66
02-09-2010 21:18 GMT3 час. #1336604   
Получаем доступ к 'cse_abstract' объекта
(на примере cse_alife_object_hanging_lamp):

Предполагаем, что для нашего объект**50106ea8aab1bb10eeba**ocal soHLamp = alife():create("aem_lamp", vPos, iLvid, iGvid) --/ aem_lamp - секция[/code]
Если доступен метод se_lamp:on_register(), то можно увидеть момент, как заспавненный объект регистрируется в игре.

2. Ставим 'метку' о необхоимости доступа к 'cse_abstract'. Метка может быть как с информацией о требуемом значении параметра, так и целой табличкой с параметрами:
[code] soHLamp.direction_new = vector():set((0,0,3.14) --/ метка-значение[/code]
или
[code] local tParams = {
direction = vector():set((0,0,3.14),
... = ...
}
soHLamp.repaсk = tParams --/ метка-таблица[/code]
3. Переходим к методу se_lamp:STATE_Write(packet), в который добавим проверку наличия флага перепаковки и обработку флага:
[code]
function se_lamp:STATE_Write(packet)
if self.repack ~= nil and self.repack.direction ~= nil then --/ проверка наличия флага
local tP = self:Get_cse_abstract(packet) --/ читаем в таблицу параметры 'cse_abstract'
tP.direction = self.repack.direction --/#!# изменяем параметр
self.repack.direction = nil --/ удаляем флаг
self:Set_cse_abstract(tP, packet) --/ запоминаем параметры 'cse_abstract'
end
cse_alife_object_hanging_lamp.STATE_Write(self, packet)
end[/code]
4. Методы чтения и записи (при необходимости) т.е. перепаковки:
[code]--/ чтение cse_abstract (чтение пакета oPk в таблицу tP)
function se_lamp:Get_cse_abstract(oPk)
local tP = {} --/ создаем чистую таблицу
oPk:r_seek(0)
tP.dummy16 = oPk:r_u16()
tP.section_name = oPk:r_stringZ()
tP.name = oPk:r_stringZ()
tP.s_gameid = oPk:r_u8()
tP.s_rp = oPk:r_u8()
tP.position = oPk:r_vec3()
tP.direction = oPk:r_vec3()
tP.respawn_time = oPk:r_u16()
tP.object_id = oPk:r_u16()
tP.parent_id = oPk:r_u16()
tP.phantom_id = oPk:r_u16()
tP.s_flags = oPk:r_u16()
tP.version = oPk:r_u16()
tP.script_version = oPk:r_u16()
tP.unused = oPk:r_u16()
if tP.unused > 0 then --/#?# читаем остаток, возможно, что иногда это не верно
tP.tExt = {}
for i=1, tP.unused do
tP.tExt = oPk:r_u8()
end
tP.spawn_id = oPk:r_u16()
tP.extended_size = oPk:r_u16()
end
return tP --/> таблица с параметрами 'cse_abstract'
end[/code]
[code]--/ запись cse_abstract (из таблицы tP в пакет oPk)
function se_lamp:Set_cse_abstract(tP,oPk)
--/ запись таблицы (если перепаковываем)
oPk:w_begin (tP.dummy16)
oPk:w_stringZ(tP.section_name)
oPk:w_stringZ(tP.name)
oPk:w_u8 (tP.s_gameid)
oPk:w_u8 (tP.s_rp)
oPk:w_vec3 (tP.position)
oPk:w_vec3 (tP.direction) --/#!# Именно это изменяем
oPk:w_u16 (tP.respawn_time)
oPk:w_u16 (tP.object_id)
oPk:w_u16 (tP.parent_id)
oPk:w_u16 (tP.phantom_id)
oPk:w_u16 (tP.s_flags)
oPk:w_u16 (tP.version)
oPk:w_u16 (tP.script_version)
oPk:w_u16 (tP.unused)
if tP.unused > 0 and tP.tExt ~= nil then --/ запись остатка
for i=1, tP.unused do
oPk:w_u8 (tP.tExt)
end
oPk:w_u16 (tP.spawn_id)
oPk:w_u16 (tP.extended_size)
end
end[/code]
5. Собственно все.
Если не требуется перепаковка, то менять в таблице tP ничего не следует, а ее содержимое можно использовать для различных целей.

Данный материал (коды) вполне работоспособны и могут быть использованы конкретно для ламп.
Однако именно для ламп помимо перепаковки рассмотренного параметра требуется изменение и других параметров, что не рассмотено в данном материале.
Для других объектов требуется изменить наименование класса (se_lamp) под соответствующий объекту.

P.S. исправил оЧепятку soHLamp.repaсk

отредактировал(а) Artos: 03-09-2010 01:33 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
batment
    
Посты: 267
Откуда: Киев
Возраст: 30
02-09-2010 21:53 GMT3 час. #1336645   
возможно ли сделать чтоб определенный НПС помечался на карте например как техники, проводники торговцы как ЧН ЗП?


-=NSM=-


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


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

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