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

Garry's mod — наверное, единственная модификация для Half-Life 2, которая имеет громадное число поклонников и обновляется с завидной регулярностью.
Сообщение
Автор
Аватара пользователя
0003Spi
Сержант
Сержант
Сообщения: 45
Зарегистрирован: 24.08.2009
Откуда: Хабаровск

#1 Сообщение 13.11.2011, 08:32

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

Аватара пользователя
Badmin
Полковник
Полковник
Сообщения: 3510
Зарегистрирован: 13.05.2008
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 258 раз
Контактная информация:

#2 Сообщение 13.11.2011, 12:35

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

Аватара пользователя
0003Spi
Сержант
Сержант
Сообщения: 45
Зарегистрирован: 24.08.2009
Откуда: Хабаровск

#3 Сообщение 13.11.2011, 15:12

Я не уточнил, провернуть я это хочу на своём сервере, просто если заменить файл текстуры, то он не будет передаваться клиентам, ибо у них он уже есть, а вот через консоль это уже интересно, как?
Изображение

Аватара пользователя
Atomeh
Майор
Майор
Сообщения: 561
Зарегистрирован: 05.08.2008
Благодарил (а): 9 раз
Поблагодарили: 2 раза
Контактная информация:

#4 Сообщение 14.11.2011, 03:06

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

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.
Последний раз редактировалось Atomeh 20.11.2011, 00:12, всего редактировалось 1 раз.

Аватара пользователя
0003Spi
Сержант
Сержант
Сообщения: 45
Зарегистрирован: 24.08.2009
Откуда: Хабаровск

#5 Сообщение 14.11.2011, 11:24

Большое спасибо, а вот ещё вопрос, как нибудь можно тем же макаром изменить light_environment? Например сделать темнее или светлее освещение на уровне.
Изображение

Аватара пользователя
F1_GTR
Игровой Администратор
Игровой Администратор
Сообщения: 409
Зарегистрирован: 24.08.2009
Откуда: Volgograd
Благодарил (а): 13 раз
Поблагодарили: 19 раз
Контактная информация:

#6 Сообщение 16.11.2011, 11:56

Не знаю точно, но вроде бы это статичный источник света и после компиляции карты его уже ни как не "загасить"
Dropbox - 2gb + additional 500 mb
Minus - free 10gb
Bezpalivo[DNIWE EBANOE]: Значит Whadda это ф1 , ф1 1 ты ф1 2, ф1 3 это ф1?
Whadda: ЧЕГО
Whadda: ЛУЛ
Whadda: Ф1 1-3 - Ф!
Whadda: ф1
Bezpalivo[DNIWE EBANOE]: Whadda меняет ник на F1_GTR F1_GTR меняет ник на Whadda
Whadda: А я это я
Whadda: Дак это как был я так и остался
Bezpalivo[DNIWE EBANOE]: ДА пошли вы нахуй
Bezpalivo[DNIWE EBANOE]: D:

Аватара пользователя
0003Spi
Сержант
Сержант
Сообщения: 45
Зарегистрирован: 24.08.2009
Откуда: Хабаровск

#7 Сообщение 17.11.2011, 14:13

Тогда как можно изменить освещение на уровне?
Изображение

Аватара пользователя
Atomeh
Майор
Майор
Сообщения: 561
Зарегистрирован: 05.08.2008
Благодарил (а): 9 раз
Поблагодарили: 2 раза
Контактная информация:

#8 Сообщение 17.11.2011, 22:47

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

Аватара пользователя
0003Spi
Сержант
Сержант
Сообщения: 45
Зарегистрирован: 24.08.2009
Откуда: Хабаровск

#9 Сообщение 18.11.2011, 17:49

Ну давайте попробуем, а с помещениями мож что нибудь и придумаем.
Изображение

Аватара пользователя
Badmin
Полковник
Полковник
Сообщения: 3510
Зарегистрирован: 13.05.2008
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 258 раз
Контактная информация:

#10 Сообщение 18.11.2011, 18:09

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

Аватара пользователя
0003Spi
Сержант
Сержант
Сообщения: 45
Зарегистрирован: 24.08.2009
Откуда: Хабаровск

#11 Сообщение 19.11.2011, 04:18

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

Аватара пользователя
Badmin
Полковник
Полковник
Сообщения: 3510
Зарегистрирован: 13.05.2008
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 258 раз
Контактная информация:

#12 Сообщение 19.11.2011, 12:39

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

Аватара пользователя
0003Spi
Сержант
Сержант
Сообщения: 45
Зарегистрирован: 24.08.2009
Откуда: Хабаровск

#13 Сообщение 19.11.2011, 16:36

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

Аватара пользователя
Atomeh
Майор
Майор
Сообщения: 561
Зарегистрирован: 05.08.2008
Благодарил (а): 9 раз
Поблагодарили: 2 раза
Контактная информация:

#14 Сообщение 19.11.2011, 18:22

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

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

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

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

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

Аватара пользователя
0003Spi
Сержант
Сержант
Сообщения: 45
Зарегистрирован: 24.08.2009
Откуда: Хабаровск

#15 Сообщение 23.11.2011, 08:14

Wantuz

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

Ответить