Пользователей: 0
Гостей: 914
Всего: 914

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

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









Автор Сообщение
Geralt of Rivia
    
Посты: 6363
Откуда: Odessa
Возраст:
29-01-2011 16:51 GMT3 час. #1427420   

отредактировал(а) Geralt of Rivia: 14-06-2011 08:58 GMT3 час.

Не обманешь судьбу и не купишь любовь
Ни за жизнь, ни за смерть, ни за горсть серебра.
И холодная сталь ляжет под ноги вновь
Равновесием зла и добра.

Ma$ter
    
Посты: 477
Откуда: Tamboff
Возраст:
30-01-2011 17:21 GMT3 час. #1427948   
Подскажите, как можно пропарсить таблицу типа:
local foto_array = {
{name="razradotka", info="nil", tbl = {foto1,foto2,foto3}}
}
Чтобы достать из нее значения {foto1,foto2,foto3}


Знание assembler, C/C++, Pascal, Lua.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
30-01-2011 18:53 GMT3 час. #1427988   
Ma$ter
Странная конечно таблица - и непонятно foto1,foto2,foto3 это **5001001a66cf24ce67c0**l) do
print(k,v) - k- ключ , v - значение
end
end[/code]


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
30-01-2011 21:21 GMT3 час. #1428095   
Ma$ter
Как вариант для час**5001001a66cf24ce67c0** print(t)
end[/code]

Ну и на всякий случай. Так можно разобрать таблицы с любым уровнем вложенности таблиц :
[code]function f(t)
for k,v in pairs(t) do
if type(v) == 'table' then
f(v)
else
print(k,v)
end
end
end

f(тут исходная таблица)[/code]


hakerrr
Прямые ссылки запрещены.

отредактировал(а) Gun12: 30-01-2011 21:31 GMT3 час.

Не стань номинантом премии Дарвина.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
31-01-2011 15:47 GMT3 час. #1428363   
На 4 ерсии функция distance_to_sqr у меня работала нормально. А вот на 5

отредактировал(а) Stalk15: 31-01-2011 19:25 GMT3 час.

Новые фишки для сталкера(см. журнал)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
31-01-2011 16:36 GMT3 час. #1428390   
Stalk15
Открою тебе маленький такой секрет... этот метод(с постфиксом sqr ) требует сравнения с квадратом числа, в отличие от метода distance_to() :-)
А вообще у тебя он правильно работает: корень квадратный из 20 равен~4.5


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Geralt of Rivia
    
Посты: 6363
Откуда: Odessa
Возраст:
31-01-2011 16:39 GMT3 час. #1428393   
Тема заняла принадлежащее ей по праву, "важное" место. Никаких поползновений на её статус не было, просто когда разделял топик забыл переместить её наверх.
Вместо того, чтобы разводить "философию" на десяток постов, связались бы лучше с модератором.
___________________
Надеюсь на этом "инцидент" исчерпан и оффтоп закончен:st)


Не обманешь судьбу и не купишь любовь
Ни за жизнь, ни за смерть, ни за горсть серебра.
И холодная сталь ляжет под ноги вновь
Равновесием зла и добра.

Black Auto
    
Посты: 156
Откуда: Москва
Возраст:
01-02-2011 01:45 GMT3 час. #1428677   
Доброй ночи! Я решил удалить через all.spawn некоторые аномалии и, на мой взгляд, лишние предметы (валяющиеся ни к месту броники). Все прекрасно удаляется\заменяется. Удалил я электры из тоннеля на Кордоне, там я планирую заспавнить зомби гражданских, как в билде, игра запустилась, электр нет, все работает. Но недавно я прочитал статью о том, что удалять аномалии и предметы просто так нельзя, что для этого надо еще править скрипты. Меня эта статья несколько сбила с толку, так получается, что удалять аномании и удалять\заменять предметы просто через all.spawn нельзя или все-таки можно? Заранее спасибо.


Я знаю, придет рассвет,
Я знаю, настанет светлый час,
Когда улыбнтся мир
И станет прекрасным все для нас!
Artos
    
Посты: 4176
Откуда:
Возраст: 65
01-02-2011 02:33 GMT3 час. #1428685   
Black Auto
Если ссылаешься на внешний источник, не уточняя сути, то неплохо бы давать или ссылку или кратко суть из источника по теме вопроса.

1. Наиболее вероятно в прочитанной тобою статье шла речь про удаление аномалий из уже запущенной/созданной игры/сэйва, т.е. из онлайна и/или с текущей локации.
2. При удалении объектов правятся НЕ скрипты, а скриптами обрабатываются дополнительные условия/параметры ... (для аномалий: предварительно отключать их, удалять рестрикторы, ...).

Кратко: Разница удаления из all.spawn'а и скриптами в том, что удаленный объект из all.spawn'а вообще НЕ появляется в новой игре, т.е. по сути объект и не требуется удалять, а значит - и все что с ними связано(!).
Скриптами же наоборот - удаляются только объекты, которые уже в игре (или хотя бы начинают объявляться).

Короче: В твоем случае удаляй аномалии сколько угодно.
Важны только два условия:
1. Изменения all.spawn'а - только для новой игры и для сэйвов (объекты/аномалии уже в игре!) могут быть фатальны ('могут' - не значит обязательно);
2. В оставшихся кодах игры НЕ должно быть завязок (логики, например) на удаленные объекты.

отредактировал(а) Artos: 01-02-2011 02:48 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Black Auto
    
Посты: 156
Откуда: Москва
Возраст:
01-02-2011 02:57 GMT3 час. #1428688   
Artos благодарю за подробный и развернутый ответ, именно это я и хотел узнать.
Если что, вот статья, которая меня смутила:
_http://stalkerin.gameru.net/wiki/index.php/%D0%9A%D0%B0%D0%BA_%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B%2C_%D0%BD%D0%B5_%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D0%B5_%D0%BA_%D0%B2%D1%8B%D0%BB%D0%B5%D1%82%D0%B0%D0%BC_%D0%B8_%D0%B1%D0%BE%D1%8E_%D1%81%D0%B5%D0%B9%D0%B2%D0%BE%D0%B2_%28%D1%87%D0%B0%D1%81%D1%82%D1%8C_2%29


Вопрос, также касающийся аномалий. Нашел интересные наработки, аномалии Event_horizont (синий сияющий шар в Варлабе) и летающий островок (laputa) из ранних эскизов разработчиков. Эти моды затрагивают файлы particles.xr и gamemtl.xr. Редактировать партиклы (файл particles.xr) я научился с помощью программы Particle Editor Tools, но какой программой редактировать файл gamemtl.xr? Заранее благодарю.


Я знаю, придет рассвет,
Я знаю, настанет светлый час,
Когда улыбнтся мир
И станет прекрасным все для нас!
Artos
    
Посты: 4176
Откуда:
Возраст: 65
01-02-2011 03:52 GMT3 час. #1428692   
Black Auto
Статья Kamikazze все же расчитана не на новичка, а подразумевает начальные/общие знания/понятия по объектному программированию, поэтому и не уточнены само-собою подразумевающиеся моменты.

Утилитку для работы с 'gamemtl.xr' см.тут: ссылка
(прим: на практике я этим не занимался)

отредактировал(а) Artos: 01-02-2011 04:03 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
grafabashev
    
Посты: 210
Откуда: москва
Возраст: 49
01-02-2011 16:13 GMT3 час. #1428851   
а как задавать вопросы

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

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

отредактировал(а) grafabashev: 01-02-2011 16:21 GMT3 час.

ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
01-02-2011 16:24 GMT3 час. #1428862   
Всем привет.Такой вопрос про постэффект,вернее про его остановку.
Ф-я стоит на апдейте в бинд_сталкер.
Мне нужно чтобы ф-я срабатывала один раз если здоровье у актёра меньше или равняется 80.
А ф-я соответственно срабатывает бесконечно пока не повысить здоровье.Что очень плохо..
Как мне правильно написать остановку?


function small_wound()
local stope = false
if not stope then
if db.actor.health <= 0.8 then
this.wound_sounds()
this.wound_anm_effects()
level.add_pp_effector("fire_hit.ppe", 0001, false)
stope = true
end
else
stope = false
end
end


И ещё один вопрос насчет проверки на грозу или тучи.
Вот проверка на дождливую погоду:
if level.get_weather()=="rain" then
А вот как проверить грозу или плохую погодку?
:-)


Максим Р.
    
Посты: 1025
Откуда:
Возраст:
01-02-2011 17:27 GMT3 час. #1428900   

# ДатчикХабара :
А вот как проверить грозу или плохую погодку?


Видел в файле sound_theme.script функцию weather_class(). В ней по силе дождя устанавливают тип погоды:
function weather_class(avail_types, npc)
local type = "weather_good"
if level.rain_factor() < 0.07 then
type = "weather_good"
else
type = "weather_bad"
end
return type
end

Может, не совсем то, но по силе дождя можно для себя установить какая погода будет считаться плохой.


ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
01-02-2011 17:30 GMT3 час. #1428901   
Максим Р.
Спасибо!:)

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

Тут ещё такой вопрос про цвет текста:
[255,0,0,0] -- Как определить цвета?Это вроде RGBA,а не RGB.

отредактировал(а) ДатчикХабара: 01-02-2011 17:33 GMT3 час.

erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
01-02-2011 18:12 GMT3 час. #1428919   
ДатчикХабара
Можно так:
<<<<ссылка>>>>
Первый параметр - это альфа. По моему можно не писать - так как по умолчанию стоит 255.

отредактировал(а) Geralt of Rivia: 01-02-2011 18:40 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
01-02-2011 19:31 GMT3 час. #1428962   
erlik
СПС.Про таблицу я знал,но не знал что за первое число. :)


asmodey7_77
    
Посты: 1
Откуда: Симферополь
Возраст:
02-02-2011 00:19 GMT3 час. #1429081   
Подскажите пожалуйста, Где в файлах народной солянки можно изменить игровое время, чтобы соответствовало реальному?


Artos
    
Посты: 4176
Откуда:
Возраст: 65
02-02-2011 00:44 GMT3 час. #1429092   
asmodey7_77
В Народной Солянке игровое время управляется/изменяется так же как и в оригинальной игре (и так же как и в моде АМК), т.е. вопрос из банального ФАК'а.
Правится в конфиг-файле '\gamedata\config\alife.ltx' изменением параметра 'time_factor' из секции [alife]. Придется вытащить этот файл из архивов игры (*.dbX).
Поставишь: time_factor = 1
- и будет тебе реальное время.
Вот только зачем? Помимо того, что сутки в игре будут как сутки в реале, у тебя и многие события будут так же растянуты (т.е. увеличены по времени в 10 раз). А значит тот же выброс будет длиться ой как до-о-олго ... Собираешься дневать-ночевать за компом? ;-)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Леня_Агитатор
    
Посты: 40
Откуда: Чита
Возраст:
02-02-2011 12:11 GMT3 час. #1429191   
Доброго времени суток, ответьте пожалуйста, сделал на подобии сигаретной зависимости жажду
snd = sound_object([[characters_voice\human_01\stalker\states\idle\idle_4]])

-- Проверяем нужно ли попить. Вызывается каждые 6 игровых минут
function test_for_need_pit()
amk.save_variable("pit",amk.load_variable("pit",0)+2)
amk.g_start_timer("pit",0,0,6)
pit_reduce_power()
end

-- Уменьшение силы, если долго не пил
function pit_reduce_power()
local tmp = amk.load_variable("pit",0)
if tmp > 150 then
if db.actor.power > 0.15 then
db.actor.power = - 0.30
end
if not snd:playing() then
snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
end
end
end

-- питье
function pit_item(oid, time)
if alife():object(oid)==nil then
local tmp = amk.load_variable("pit",0) - time*10
if tmp < 0 then tmp = 0 end
amk.save_variable("pit", tmp)
pit_reduce_power()
end
end


Собственно вопрос в функции pit_item в каких строках определяется имя объекта?
(например при использовании объекта "Вода" сбрасывать таймеры)


Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
02-02-2011 13:32 GMT3 час. #1429221   
:-( ну ктонить помогите а, проблема жестокая...СДК Компилирует локацию (После изменения) в исходную (то есть без изменений) причем окно компилятора не вылазеет, создание с нуля приводи к вылету в сетевую игру :blink , Лог не пишется, пробовал все компиляторы... ЛЕ не верно настроено чертов старый... Помогите! в долгу не останусь!


ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
02-02-2011 15:15 GMT3 час. #1429249   
Всем привет.
Можно ли убрать у гранаты партикл взрыва?Вообще убрать?
вот так поставить не получится explode_particles = ;-)
Может есть какой нибудь способ.


Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
02-02-2011 15:56 GMT3 час. #1429264   
ДатчикХабара
А ты вместо партикла explosions\explosion_01 поставь какой-нибудь другой партикл, который не заметен. Например, попробуй alexmx\ps_00.


Новые фишки для сталкера(см. журнал)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
02-02-2011 16:44 GMT3 час. #1429293   
Strchi
Может быть хватит засорять топик своими стенаниями по СДК?!
Есть специальный тематический топик: "SDK для игры S.T.A.L.K.E.R.", в нем и пиши, соблю

отредактировал(а) Artos: 02-02-2011 16:56 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
02-02-2011 18:00 GMT3 час. #1429343   
Stalk15
Хм,а я уже сделал по другому.
Создал новый партикл-пустышку.
:-)

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

Такой вопрос,сделал новости о смерти нпс,ф-ю повесил на каллбек on_death.
Вот ф-я:


local locations_name = {
l01_escape = "На кордоне",
l02_garbage = "На свалке",
l03_agroprom = "На агропроме",
l04_darkvalley = "В тёмной долине",
l05_bar = "В баре",
l06_rostok = "На Ростке",
l07_military = "На арм.складах",
l08_yantar = "На янтаре",
l10_radar = "На радаре",
l11_pripyat = "На Припяти",}

function news_of_npc_kill(victim)
if (IsStalker(victim) or victim:id()==db.actor:id()) then
local victum_name = victim:character_name()
local level_name = level.name() --\имя_локации
local gde_text = locations_name[level_name]
local dead_news = "Погиб:"..victum_name..""..gde_text
end
db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000)
end


Что тут не так?

отредактировал(а) ДатчикХабара: 02-02-2011 18:15 GMT3 час.

Artos
    
Посты: 4176
Откуда:
Возраст: 65
02-02-2011 19:24 GMT3 час. #1429431   
ДатчикХабара
Нужно НЕ путать названия переменных и их значения.
название поля в таблице - это по сути та же переменная, а **5008001a66cf24ce67c0**escape"] = "На кордоне",
["l02_garbage"] = "На свалке",
...
["l11_pripyat"] = "На Припяти"
}[/code]


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
02-02-2011 19:34 GMT3 час. #1429439   
Artos
В данном случае это будут две идентичные таблицы, поскольку в lua не имеет никакого значения пишется ли строковой ключ таблицы без кавычек и квадратных скобок или же и в кавычках и скобках.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
02-02-2011 19:38 GMT3 час. #1429443   
Artos
СПС.Сейчас проверил,всё равно не работает.
Вот сделал так:

local locations_name = {
["l01_escape"] = "На кордоне",
["l02_garbage"] = "На свалке",
["l03_agroprom"] = "На агропроме",
["l04_darkvalley"] = "В тёмной долине",
["l05_bar"] = "В баре",
["l06_rostok"] = "На Ростке",
["l07_military"] = "На арм.складах",
["l08_yantar"] = "На янтаре",
["l10_radar"] = "На радаре",
["l11_pripyat"] = "На Припяти"
}

-- anti_sp_news[math.random(#anti_sp_news)]
function news_of_npc_kill(victim)
if (IsStalker(victim) or victim:id()==db.actor:id()) then
local victum_name = victim:character_name()
level_name = level.name() --\имя_локации
local gde_text = locations_name[level_name]
local dead_news = "Погиб:"..victum_name..""..gde_text
end
db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 1, 4000)
end


Artos
    
Посты: 4176
Откуда:
Возраст: 65
02-02-2011 19:40 GMT3 час. #1429446   
erlik
Разница есть, т.к. парсер LUA в Сталкере все же порой различает разницу и возникают коллизии.
Если в исходном варианте выборка ждет:

  local gde_text = locations_name.level_name

то в измененном по:

  local gde_text = locations_name[level_name]

т.е. как в кодах функции.

отредактировал(а) Artos: 02-02-2011 21:15 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
02-02-2011 19:49 GMT3 час. #1429453   
В чём же может быть ошибка?Исправил таблицу,поправил переменную,а вылетает всё равно при убийстве,даже без лога.




Форумы Архив » Свалка Модификации ТЧ, вопросы и ответы (старое, по 14.06.11)


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

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