Страница 1 из 2

Как заменить текстуру на карте не редактирую саму карту

Добавлено: 13.11.2011, 08:32
0003Spi
Хочу заменить текстуру травы на текстуру снега, при этом не изменяя файла карты, на луа это возможно, ибо не раз видел такое на серверах, сам пытался понять, но больших успехов не добился, кто нибудь может объяснить, как это сделать?

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 13.11.2011, 12:35
Badmin
0003Spi
Можно просто заменить текстуру травы в клиенте на текстуру снега. ПРавда тогда везде, где стоит текстура, будет снег. Через луа не знаю, подозреваю, что можно так и можно через консоль.

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 13.11.2011, 15:12
0003Spi
Я не уточнил, провернуть я это хочу на своём сервере, просто если заменить файл текстуры, то он не будет передаваться клиентам, ибо у них он уже есть, а вот через консоль это уже интересно, как?

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 14.11.2011, 03:06
Atomeh

Код: Выделить всё

AddCSLuaFile("autorun/snow.lua")

if CLIENT then
	local grassTextures		=		{"building_template/roof_template001a", "gm_construct/grass"}
	local snowTexture		=		"nature/snowfloor001a"
	local snowMaterial		=		Material(snowTexture)
	local snowITexture		=		snowMaterial:GetMaterialTexture("$basetexture")
	
	for somestuff, texture in pairs(grassTextures) do
		local grassMaterial 	= 		Material(texture)
		grassMaterial:SetMaterialTexture("$basetexture", snowITexture)
	end
end
Как-то так, работоспособность не проверял.
Скайбокс на снеговиковый можно поменять переменной sv_skyname.

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 14.11.2011, 11:24
0003Spi
Большое спасибо, а вот ещё вопрос, как нибудь можно тем же макаром изменить light_environment? Например сделать темнее или светлее освещение на уровне.

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 16.11.2011, 11:56
F1_GTR
Не знаю точно, но вроде бы это статичный источник света и после компиляции карты его уже ни как не "загасить"

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 17.11.2011, 14:13
0003Spi
Тогда как можно изменить освещение на уровне?

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 17.11.2011, 22:47
Atomeh
Освещение никак не поменять. Можно цветокоррекцией создать иллюзию того, что оно меняется, но внутри помещений будет джигурда.

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 18.11.2011, 17:49
0003Spi
Ну давайте попробуем, а с помещениями мож что нибудь и придумаем.

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 18.11.2011, 18:09
Badmin
0003Spi
Есть аддон такой. http://www.garrysmod.org/downloads/?a=view&id=87694 но он говницо. Попробуй конечно, но не думаю, что нужный эффект будет. Правда в помещениях с ним эффект остаётся насколько я помню, но что поделать.

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 19.11.2011, 04:18
0003Spi
Знаю такой аддон, пробовал уже, это не то. Кстати о аддонах, я видел один аддон, он изменяет как бы время на карте и положение солнца, от чего становится темнее на уровне или светлее, но сейчас он чего-то не хочет работать и что-то мне подсказывает, что он не работает из-за отсудствия env_sun на карте, я вот подумал, а что если при создании сервера, env_sun поставить на карте с помощью lua скриптов, это реально сделать? Типа как в stargate аддоне есть файл отвечающий за расстановку врат на указаных картах и при создании сервера, врата появляются на указаных координатах и углах, может можно тем же макаром создать и env_sun?

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 19.11.2011, 12:39
Badmin
0003Spi
Насколько я могу судить, Env_sun не отвечает за освещение. Просто за круглешок в небе. За свет отвечает лайт енв, и если его изменить нельзя, то ничего не поделать.

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 19.11.2011, 16:36
0003Spi
Жаль, ладно, а можно тогда создать свою карту так, что бы потом при помощи скриптов можно было бы менять на ней освещение? В таком случае можно было бы сделать смену времени суток. Кстати нечто подобное я видел на нескольких серверах, двух или трёх, у них на одном за пару часов в игре проходит 1 игровой день, на других более длительно идёт смена времени.

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 19.11.2011, 18:22
Atomeh
Менять цвет(и интенсивность соответственно) у light_environment после компиляции можно, можно приглушить освещение. Проблема в том, что эта энтити после компиляции компилятором выкидывается, если с ней ничего не взаимодействует. На картах, где энтитя на месте проблем нет, но если попытаться её заспаунить, появляется джигурда:
Изображение
Можно заспаунить без джигурды, но я имею свойство за полтора года забывать тонкости и просирать скрипты %)

Со скайбоксом проблем больше, текстуру без перезагрузки клиента не сменить(вернее на сервере она меняется, но клиенты этого не увидят), покрасить текстуру тоже нельзя. Я рендерил поверх обычного 2д-скайбокса ещё один трёхмерый, на который был наложен волшебный материал, перекрашивающий скайбокс под ним, причём трёхмерный скайбокс был не просто брашем, а брашевой энтитей, которая, собственно, перекрашивалась.

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

На подготовленых или подходящих картах затемнение-осветление лайтмапа провернуть не сложно, на неподготовленных проблематично\невозможно.

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

Re: Как заменить текстуру на карте не редактирую саму карту

Добавлено: 23.11.2011, 08:14
0003Spi
Wantuz

А где ты учил Lua для игры? Я это к тому, что есть ли какие нибудь рускоязычные источники?