Перейти к содержимому


Фотография

Clutter и Surfaces


Лучший Ответ dos622 , 16 September 2016 - 22:00

A3 1.28) Surface types:
"#GdtStratisConcrete"
"#GdtStratisDryGrass"
"#GdtStratisGreenGrass"
"#GdtStratisRocky"
"#GdtStratisForestPine"
"#GdtStratisBeach"
"#GdtStratisDirt"
"#GdtVRsurface01"
"#GdtDirt"
"#GdtGrassGreen"
"#GdtGrassDry"
"#GdtSoil"
"#GdtThorn"
"#GdtStony"
"#GdtConcrete"
"#GdtMarsh"
"#GdtBeach"
"#GdtSeabed"
"#GdtDead"

это те что выдает по https://community.bi...iki/surfaceType

 

еще тут https://forums.bistu...ter-collection/

 

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

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 22

#1 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 15 September 2016 - 04:34

Доброго времени. Вопрос встал в кустах. Ну никак не хотят они отображаться... Я даже не знаю как вопрос сформулировать, перепробовал штук 5 конфигов, и с отдельными файлами cfgClutter, cfgSurfaces, и в общем конфиге карты. С отдельными файлами просто нет кустов, в общем конфиге ругается на не определенный класс. Кусты стоковые армовские подключаю. Может бисы с обновой чё поменяли, куда копать?


  • 0

#2 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 15 September 2016 - 05:06

Момент ещё, пбо прожект ругается на отсутствующие файлы кустов. Может быть проблема в кривом отображении диска п? У меня вин10 и она чего то мутит с этим диском. Аддон билдер всё собирает без проблем.


  • 0

#3 OFFLINE   dos622

dos622

    Ст. Прапорщик

  • Пользователи
  • 702 сообщений

Отправлено 15 September 2016 - 10:07

если ругается на не определенный класс, возникает логичный вопрос, как в конфиге у тебя описан этот класс. Т.к. обычно если с путями что то не так, он пишет:

Warning Message: "лалалла" not found


  • 0

#4 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 15 September 2016 - 12:56

Блок с моделями кустов начинается с class clutter. Стоит отдельно, хотя где-то видел, что должен быть в блоке cfgworlds.

Где почитать про определение классов? Т.к. не совсем понятна логика определения. В конфиге многовато строк class Defaultclutter. И повторюсь, что класс он не может определить только с общим конфигом (в котором всё прописано, и сами кусты, и сурфейсы). Если в общем конфиге ссылка на отдельные конфиги, то сборка проходит. Вообще имеет значение где прописаны эти кусты и сурфейсы? Я имею ввиду либо в отдельных файлах cfg***, либо в общем config.cpp


  • 0

#5 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 15 September 2016 - 17:38

class CfgWorlds {
	class DefaultWorld {
		cutscenes[] = {"Stratis_Intro1", "Stratis_Intro2"};
		
		class Weather {
			class Overcast;
		};
		class WaterExPars;
	};
	
	class CAWorld : DefaultWorld {
		class Grid {};
		class DayLightingBrightAlmost;
		class DayLightingRainy;
		class DefaultClutter;
		
		class Weather : Weather {
			class Lighting;
			
			class Overcast : Overcast {
				class Weather1;
				class Weather2;
				class Weather3;
				class Weather4;
				class Weather5;
				class Weather6;
			};
		};
	};
	class DefaultLighting;
	
	class Stratis : CAWorld {
	
		/*
			объявляем базовый класс, чем даём понять компилятору, что мы собираемся
			использовать свойства данного класса для наследования другими классами
			созданными на базе данного класса
		*/
		class DefaultClutter;
		
		class Clutter {
		
			/*
				определяем класс StrBigFallenBranches_pine, те обязательные свойства которые не указаны
				при создании данного класса будут взяты из базового класса DefaultClutter.
				
				Это Си, разница с Си только в синтаксисе написания, и отсутствие наследования методов объекта.
				Так что про классы вы найдёте в туториалах про Си, "Классы и наследование классов.",
				делая естественно поправки на то, что писаться будут эти классы в конфиге армы. 
				И тем не менее суть одна, это создание классов, и правильное их наследование.
			*/
			class StrBigFallenBranches_pine : DefaultClutter {
				model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine.p3d";
				affectedByWind = 0.0;
				swLighting = 0;
				scaleMin = 0.3;
				scaleMax = 0.7;
			};
		};
	};
	
	class MyNewMap : Stratis {
		class Clutter : Clutter {
			class StrBigFallenBranches_pine : StrBigFallenBranches_pine {
				/*
					модифицируем ранее определённый класс StrBigFallenBranches_pine в классе карты Stratis,
					с целью изменить модель, ранее определённую в данном классе
				*/
				model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine02.p3d";
			};
		};
	};
};

  • 1

#6 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 15 September 2016 - 17:50

 

Я имею ввиду либо в отдельных файлах cfg***, либо в общем config.cpp

 

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

В таком случае нужно указать в файле config.cpp пути то этих отдельных блоков конфигурации

#include "filename.hpp"

/* расширение файлов не имеет значения, строки ниже так же верны */

#include "filename.inc"
#include "filename.txt"

Сообщение отредактировал SteelRat: 15 September 2016 - 17:51

  • 1

#7 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 15 September 2016 - 18:02

Спасибо, понемногу разбираюсь.  :)


  • 0

#8 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 15 September 2016 - 20:16

Всё равно, пбо проджект ругается на отсутствующие файлы моделей кустов... Пути как в туториалах, папка а3 распакована, лежит в корне п диска. Но! Винда упорно не желает его отображать... 10-ка. Поэтому все операции провожу через папку, в которой живет диск п. Ее же указываю при запаковке. Это может быть причиной?


  • 0

#9 OFFLINE   dos622

dos622

    Ст. Прапорщик

  • Пользователи
  • 702 сообщений

Отправлено 15 September 2016 - 20:25

в путях попробуй перый слеш убрать или поставить типа такого:

 

\my_addon\folders.file.p3d

поменяй на 

my_addon\folders.file.p3d

или наоборот, у них както в этом месте криво все:)

 

и глупый вопрос, но все же: а эти файлы есть, на тех путях что ты прописываешь?


  • 0

#10 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 15 September 2016 - 23:01

в путях попробуй перый слеш убрать или поставить типа такого:

 

\my_addon\folders.file.p3d

поменяй на 

my_addon\folders.file.p3d

или наоборот, у них както в этом месте криво все :)

 

и глупый вопрос, но все же: а эти файлы есть, на тех путях что ты прописываешь?

 

скорее всего у человека байда с путями, как вариант не стыкуются пути по которым лежат модели с путём указанном в префикс файле например.


 

лежит в корне п диска. Но! Винда упорно не желает его отображать... 10-ка.

Хоть двадцатка, этого диска по факту нет, папка, это и есть диск Р


  • 0

#11 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 15 September 2016 - 23:58

Я понимаю, что его нет. Файлы на месте. Где-то засада с присвоением класса surface к текстуре. Я думаю.. Свойства поверхности, пыль там, макс. скорость, не меняются. 


  • 0

#12 OFFLINE   dos622

dos622

    Ст. Прапорщик

  • Пользователи
  • 702 сообщений

Отправлено 16 September 2016 - 00:16

DarkEndless, покажи конфиг, будет проще, хоть гадать не будем, как там и что. 


  • 0

#13 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 16 September 2016 - 01:34

#define _ARMA_ //IMPORTANT!!

//Class map_stratis : config.bin{
class CfgPatches
{
	class z //
	{
		units[] = {""}; //not sure if it must be filled, as Stratis didn't, but A2 Maps did...
		weapons[] = {};
		requiredVersion = 0.1;
		requiredAddons[] = {"A3_Data_F"};
		author = "CAPTNCAPS"; //Author Name (this entry exists twice!)
		mail = "AuthorsEmail@Adress.com";
	};
};
class CfgVehicles{}; //I think useless in ArmA3
class CfgWorlds
{
	class DefaultWorld
	{
		cutscenes[] = {""}; //Сцена в меню. Создайте миссию и укажите путь.
		class Weather
		{
			class Overcast;
		};
	};
	class CAWorld: DefaultWorld
	{
		class Grid{};
		class DayLightingBrightAlmost;
		class DayLightingRainy;
		class DefaultClutter;
		class Weather: Weather
		{
			class Lighting;
			class Overcast: Overcast
			{
				class Weather1;
				class Weather2;
				class Weather3;
				class Weather4;
				class Weather5;
				class Weather6;
			};
		};
	};
	
	class DefaultLighting;
	class z: CAWorld
	{
		dynLightMinBrightnessAmbientCoef = 0.5;
		dynLightMinBrightnessAbsolute = 0.05;
		class Sea
		{
			seaTexture = "";
			seaMaterial = "#water";
			shoreMaterial = "#shore";
			shoreFoamMaterial = "#shorefoam";
			shoreWetMaterial = "#shorewet";
			WaterMapScale = 20;
			WaterGrid = 50;
			MaxTide = 0;
			MaxWave = 0.25;
			SeaWaveXScale = "2.0/50";
			SeaWaveZScale = "1.0/50";
			SeaWaveHScale = 1.0;
			SeaWaveXDuration = 5000;
			SeaWaveZDuration = 10000;
		};
		class Underwater
		{
			noWaterFog = -0.001;
			fullWaterFog = 0.001;
			deepWaterFog = 200;
			waterFogDistanceNear = 10;
			waterFogDistance = 40;
			waterColor[] = {0.04,0.16,0.22};
			deepWaterColor[] = {0.0,0.001,0.009};
			surfaceColor[] = {0.04,0.16,0.22};
			deepSurfaceColor[] = {0.0,0.001,0.009};
		};
		class SeaWaterShaderPars
		{
			refractionMoveCoef = 0.03;
			minWaterOpacity = 0.0;
			waterOpacityDistCoef = 0.4;
			underwaterOpacity = 0.5;
			waterOpacityFadeStart = 60;
			waterOpacityFadeLength = 120;
		};
		startWeather = 0.3; //sets weather when opening map in editor
		startFog = 0.0; //sets fog value when opening map in editor | same as fog slider in editor (probably)
		forecastWeather = 0.3; //sets forecast when opening map in editor
		forecastFog = 0.0;//~
		startFogBase = 0.0;//~
		forecastFogBase = 0.0;//~
		startFogDecay = 0.013;//~
		forecastFogDecay = 0.013;//~
		fogBeta0Min = 0.0;//~
		fogBeta0Max = 0.05;//~
		
		class Lighting: DefaultLighting //Too much D: (https://sites.google.com/site/islandconfigs/cfgworlds-overview/cfgworlds-lighting-weather)
		{
		};
		class DayLightingBrightAlmost;
		class DayLightingRainy;
		class Weather: Weather //WAY too much Dx (https://sites.google.com/site/islandconfigs/cfgworlds-overview/cfgworlds-weather)
		{
			
			class Lighting;
			class Overcast: Overcast
			{
				class Weather1;
				class Weather2;
				class Weather3;
				class Weather4;
				class Weather5;
				class Weather6;
			};
		};
		
		hazeDistCoef = 0.1; //??
		hazeFogCoef = 0.98; //??
		hazeBaseHeight = 150; //??
		hazeBaseBeta0 = 6e-005; //??
		hazeDensityDecay = 0.0006; //??
		horizonParallaxCoef = 0.045; //??
		horizonFogColorationStart = "0.8f"; //??
		skyFogColorationStart = "0.7f"; //??
		soundMapSizeCoef = 4; //??
		satelliteNormalBlendStart = 10; //?when satellite and HD texture blend?
		satelliteNormalBlendEnd = 100; //?when satellite and HD texture blend?
		access = 3; //unknown, leave 3 set
		worldId = 1337; //unknown, change to any number you like
		cutscenes[] = {""}; //Сцена в меню. Создайте миссию и укажите путь.
		description = "DEMO, The Village"; //Описание, название острова
		icon = ""; //Иконка острова
		worldName = "z\z.wrp"; //path to your WRP file
		pictureMap = ""; //Editor Picture
		pictureShot = ""; //Loadingscreen Picture
		plateFormat = "AS$-####"; //unknown
		plateLetters = "ABCDEGHIKLMNOPRSTVXZ"; //unknown
		author = "CAPTNCAPS"; //Автор
		mapSize = 2048; //Размер карты
		mapZone = 35; //unknown
		longitude = 16.482; //west is negative!!
		latitude = -35.097; //south is positive!!
		elevationOffset = 0;//??
		envTexture = ""; //reflection image, you probably want to change this, so it's not greece anymore...
		newRoadsShape = ""; //Файлы дорог
		class OutsideTerrain //so-called "Debug" area of ArmA
		{
			satellite = "A3\map_Stratis\data\s_satout_co.paa";
			enableTerrainSynth = 0;
			class Layers
			{
				class Layer0
				{
					nopx = "";
					texture = "";
				};
			};
			colorOutside[] = {0.294118,0.333333,0.372549,1};
		};
		class Grid: Grid 
		{
			offsetX = 0; //grid offset from maps edges
			offsetY = 8192;
			class Zoom1 //Different Grid When Zooming in/out
			{
				zoomMax = 0.2; //Very Zoomed In
				format = "XY";
				formatX = "000"; //Shown on border of map, to determine grid (can also be Aaa)
				formatY = "000"; //Shown on border of map, to determine grid (can also be Aaa)
				stepX = 100; //100m Grid?
				stepY = -100; //100m grid?
			};
			class Zoom2
			{
				zoomMax = 0.95; //Zoomed in a little
				format = "XY";
				formatX = "00"; //Shown on border of map, to determine grid (can also be Aa)
				formatY = "00"; //Shown on border of map, to determine grid (can also be Aa)
				stepX = 1000; //1km grid?
				stepY = -1000; //1km grid?
			};
			class Zoom3
			{
				zoomMax = 1e+030; //completely zoomed out
				format = "XY";
				formatX = "0"; //Shown on border of map, to determine grid (can also be A)
				formatY = "0"; //Shown on border of map, to determine grid (can also be A)
				stepX = 10000; //10km grid?
				stepY = -10000; //10km grid?
			};
		};
		startTime = "12:00"; //Time set when you load this Island in Editor
		startDate = "6/7/2035"; //Date set when you load this Island in Editor
		centerPosition[] = {2500,5650,1024}; //where the editor focuses on when you start the map (probably)
		seagullPos[] = {1024,150.0,1024}; //if player respawns as seagull??
		ilsPosition[] = {1531,5019}; //Airport position (https://www.youtube.com/watch?v=0S623la_QBg)
		ilsDirection[] = {-0.2588,0.08,-0.9659}; //Airport "rotation"
		ilsTaxiOff[] = {1776.33,5943.46,1796.3,5994.64,1800.18,6000.15,1808.87,6001.77,1846.74,5991.52,1875.43,5943.27,1845.88,5831.4}; //Taxiway Waypoints when Landing
		ilsTaxiIn[] = {1845.88,5831.4,1613.95,4953.91,1610.09,4947.58,1601.67,4945.44,1528.24,4964.76,1522.46,4968.34,1520.47,4976.63,1525.46,4998.98}; //Taxiway Waypoints when Taking Off
		class ReplaceObjects{};//??
		class Sounds//??
		{
			sounds[] = {};
		};
		class Animation//??
		{
			vehicles[] = {};
		};
		clutterGrid = 1.5; //not sure, I think lower number needs better pc, just don't touch
		clutterDist = 125; //Max Distance to see grass (in meters)
		noDetailDist = 65; //not quite sure
		fullDetailDist = 15; //probably how far you see HD ground textures
		midDetailTexture = "A3\Map_Data\middle_mco.paa"; //I'd just leave it 
		minTreesInForestSquare = 4;//??
		minRocksInRockSquare = 4;//??
		
		class Subdivision //Subdivision of Terrain Mesh (https://sites.google.com/site/islandconfigs/cfgworlds-overview/cfgworlds-subdivision-ambient)
		{
			class Fractal
			{
				rougness = 5; //texture roughness factor
				maxRoad = 0.02; //max. value for squares containing road
				maxTrack = 0.5; //max. value for squares containing track
				maxSlopeFactor = 0.05;//max. coeficient depending on slope
			};
			class WhiteNoise
			{
				rougness = 2;
				maxRoad = 0.01;
				maxTrack = 0.05;
				maxSlopeFactor = 0.0025;
			};
			minY = -0.0;//do not divide surfaces that are under given limit
			minSlope = 0.02;//do not divide flat surfaces
		};
		
		class Ambient{}; //useless in A3 I guess, leave in just in case
		class AmbientA3 //basically where animals etc. show up (https://sites.google.com/site/islandconfigs/cfgworlds-overview/cfgworlds-subdivision-ambient)
		{
			maxCost = 500;
			class Radius440_500
			{
				areaSpawnRadius = 440.0;
				areaMaxRadius = 500.0;
				spawnCircleRadius = 30.0;
				spawnInterval = 4.7;
				class Species
				{
					class Kestrel_random_F
					{
						maxCircleCount = "((1 - night) * 2 * (1 - (WaterDepth interpolate [1,30,0,1])) + (2 * (hills))) * (1 - night)";
						maxWorldCount = 4;
						cost = 3;
						spawnCount = 1;
						groupSpawnRadius = 10;
						maxAlt = 200;
						minAlt = -10;
					};
					class Seagull
					{
						maxCircleCount = "((sea * (1 - night)) + (2 * houses * sea)) * (1 - night)";
						maxWorldCount = 8;
						cost = 3;
						spawnCount = 1;
						groupSpawnRadius = 10;
						maxAlt = 200;
						minAlt = -10;
					};
					class Rabbit_F
					{
						maxCircleCount = "(20 * (0.1 - houses)) * (1 - sea)";
						maxWorldCount = 4;
						cost = 5;
						spawnCount = 1;
						groupSpawnRadius = 10;
						maxAlt = 80;
						minAlt = -5;
					};
				};
			};
			class Radius40_60
			{
				areaSpawnRadius = 50.0;
				areaMaxRadius = 83.0;
				spawnCircleRadius = 10.0;
				spawnInterval = 1.5;
				class Species
				{
					class CatShark_F
					{
						maxCircleCount = "(4 * (WaterDepth interpolate [1,30,0,1]))";
						maxWorldCount = 10;
						cost = 6;
						spawnCount = 1;
						groupSpawnRadius = 10;
						maxAlt = 10;
						minAlt = -80;
					};
					class Turtle_F
					{
						maxCircleCount = "(2 * (waterDepth interpolate [1,16,0,1]) * ((1-houses) * (1-houses)))";
						maxWorldCount = 6;
						cost = 5;
						spawnCount = 1;
						groupSpawnRadius = 10;
						maxAlt = 10;
						minAlt = -80;
					};
					class Snake_random_F
					{
						maxCircleCount = "(1 - houses) * ((2 * (1 - sea)) + (2 * (meadow)))";
						maxWorldCount = 3;
						cost = 5;
						spawnCount = 1;
						groupSpawnRadius = 5;
						maxAlt = 40;
						minAlt = -5;
					};
					class Salema_F
					{
						maxCircleCount = "(12 * ((WaterDepth interpolate [1,30,0,1]) + 0.07))";
						maxWorldCount = 40;
						cost = 5;
						spawnCount = 2;
						groupSpawnRadius = 5;
						maxAlt = 10;
						minAlt = -80;
					};
					class Ornate_random_F
					{
						maxCircleCount = "(12 * ((WaterDepth interpolate [1,30,0,1]) + 0.05))";
						maxWorldCount = 30;
						cost = 5;
						spawnCount = 3;
						groupSpawnRadius = 5;
						maxAlt = 10;
						minAlt = -80;
					};
					class Mackerel_F
					{
						maxCircleCount = "(8 * ((WaterDepth interpolate [1,30,0,1]) + 0.07))";
						maxWorldCount = 14;
						cost = 5;
						spawnCount = 2;
						groupSpawnRadius = 5;
						maxAlt = 10;
						minAlt = -80;
					};
					class Mullet_F
					{
						maxCircleCount = "(8 * ((WaterDepth interpolate [1,30,0,1]) + 0.07))";
						maxWorldCount = 14;
						cost = 5;
						spawnCount = 2;
						groupSpawnRadius = 5;
						maxAlt = 10;
						minAlt = -80;
					};
					class Tuna_F
					{
						maxCircleCount = "(8 * ((WaterDepth interpolate [1,30,0,1]) - 0.2))";
						maxWorldCount = 10;
						cost = 5;
						spawnCount = 2;
						groupSpawnRadius = 5;
						maxAlt = 10;
						minAlt = -80;
					};
				};
			};
			class Radius30_40
			{
				areaSpawnRadius = 30.0;
				areaMaxRadius = 40.0;
				spawnCircleRadius = 3.0;
				spawnInterval = 3.75;
				class Species
				{
					class DragonFly
					{
						maxCircleCount = "4 * (1 - night) * (1 - (WaterDepth interpolate [1,30,0,1])) * sea * (1 - windy)";
						maxWorldCount = 4;
						cost = 1;
						spawnCount = 1;
						groupSpawnRadius = 1;
						maxAlt = 30;
						minAlt = -5;
					};
					class ButterFly_random
					{
						maxCircleCount = "3 * (1 - night) * (1 - (WaterDepth interpolate [1,30,0,1])) * (1 - windy)";
						maxWorldCount = 6;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 1;
						maxAlt = 30;
						minAlt = -5;
					};
					class FireFly
					{
						maxCircleCount = "(6 * night) * (1 - sea) * (1 - houses) * (1 - windy)";
						maxWorldCount = 20;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 3;
						maxAlt = 30;
						minAlt = -5;
					};
					class Cicada
					{
						maxCircleCount = "(4 * night) * (1 - sea) * (1 - windy)";
						maxWorldCount = 6;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 3;
						maxAlt = 30;
						minAlt = -5;
					};
				};
			};
			class Radius15_20
			{
				areaSpawnRadius = 15.0;
				areaMaxRadius = 20.0;
				spawnCircleRadius = 2.0;
				spawnInterval = 2.85;
				class Species
				{
					class FxWindGrass1
					{
						maxCircleCount = "2 * (1 - (WaterDepth interpolate [1,30,0,1])) * (windy interpolate [0.1,0.25,0,1])";
						maxWorldCount = 3;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 2.5;
						maxAlt = 30;
						minAlt = -5;
					};
					class FxWindGrass2
					{
						maxCircleCount = "2 * (1 - (WaterDepth interpolate [1,30,0,1])) * (windy interpolate [0.1,0.25,0,1])";
						maxWorldCount = 3;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 2.5;
						maxAlt = 30;
						minAlt = -5;
					};
					class FxWindLeaf1
					{
						maxCircleCount = "2 * (trees + 0.5) * (windy interpolate [0.1,0.25,0,1])";
						maxWorldCount = 3;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 2.5;
						maxAlt = 30;
						minAlt = -5;
					};
					class FxWindLeaf2
					{
						maxCircleCount = "2 * (trees + 0.5) * (windy interpolate [0.1,0.25,0,1])";
						maxWorldCount = 3;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 2.5;
						maxAlt = 30;
						minAlt = -5;
					};
					class FxWindLeaf3
					{
						maxCircleCount = "2 * (trees + 0.5) * (windy interpolate [0.1,0.25,0,1])";
						maxWorldCount = 3;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 2.5;
						maxAlt = 30;
						minAlt = -5;
					};
					class FxWindPollen1
					{
						maxCircleCount = "(3 * (1 - (WaterDepth interpolate [1,30,0,1]))) * (windy interpolate [0.05,0.15,0,1])";
						maxWorldCount = 6;
						cost = 1;
						spawnCount = 1;
						groupSpawnRadius = 1;
						maxAlt = 30;
						minAlt = -5;
					};
					class FxWindPaper1
					{
						maxCircleCount = "(4 * (1 - (WaterDepth interpolate [1,30,0,1])) * houses) * windy";
						maxWorldCount = 2;
						cost = 1;
						spawnCount = 1;
						groupSpawnRadius = 1;
						maxAlt = 30;
						minAlt = -5;
					};
					class FxWindPlastic1
					{
						maxCircleCount = "(4 * (1 - (WaterDepth interpolate [1,30,0,1])) * houses) * windy";
						maxWorldCount = 2;
						cost = 1;
						spawnCount = 1;
						groupSpawnRadius = 1;
						maxAlt = 30;
						minAlt = -5;
					};
				};
			};
			class Radius6_10
			{
				areaSpawnRadius = 6.0;
				areaMaxRadius = 10.0;
				spawnCircleRadius = 1.0;
				spawnInterval = 0.1;
				class Species
				{
					class HoneyBee
					{
						maxCircleCount = "4 * (1 - night) * (1 - sea) * (1 - houses) * (1 - windy)";
						maxWorldCount = 8;
						cost = 1;
						spawnCount = 1;
						groupSpawnRadius = 1;
						maxAlt = 30;
						minAlt = -5;
					};
					class HouseFly
					{
						maxCircleCount = "(3 + 3 * (houses)) * (1 - night) * (1 - (WaterDepth interpolate [1,30,0,1])) * (1 - windy)";
						maxWorldCount = 10;
						cost = 1;
						spawnCount = 3;
						groupSpawnRadius = 1;
						maxAlt = 30;
						minAlt = -5;
					};
					class Mosquito
					{
						maxCircleCount = "3 * (1 - (WaterDepth interpolate [1,30,0,1])) * (1 - windy)";
						maxWorldCount = 2;
						cost = 1;
						spawnCount = 1;
						groupSpawnRadius = 1;
						maxAlt = 30;
						minAlt = -5;
					};
				};
			};
		};
		
		#include "cfgClutter.hpp"
		
		class Names //City Names (https://www.youtube.com/watch?v=0S623la_QBg)
		{
		};
		
		safePositionAnchor[] = {3874.47,4093.64}; //??
		safePositionRadius = 1900; //??
		loadingTexts[] = {"Тестовый остров Demo The Village", "Тут ваше описание и различные подсказки", "Тут ваше описание и различные подсказки"}; //Loading Texts
	};
	initWorld = "z";//??
	demoWorld = "z";//??
};
class CfgWorldList//??
{
	class z{};
};
//};
#include "cfgSurfaces.hpp"

class CfgSurfaces 
{
	class Default {};
	class grass_surface : Default
	{	
		 files = "Grass*"; // Класс текстуры из layers.cfg - class grass_green
		 rough = 0.1;
		 dust = 0.05;
		 soundEnviron = "grass";
		 character = "grass_Character";
		 soundHit = "soft_ground";
	};

};

class CfgSurfaceCharacters
{
	class grass_Character
  	{
			probability[]={0.3,0.1,0.2,0.3}; // Частота, в данном случае Grass будет чаще встречаться чем Flowers. Общая сумма не более 1.0 
			names[]={"Grass", "Flowers","Forest_Grass","Shrub"}; // Модели растений из cfgClutter.hpp 
  	};

};
class Clutter	
{
class Grass: DefaultClutter // Имя растения, прописывается в cfgSurfaces.hpp
   {
    model = "A3\plants_f\Clutter\c_StrGrassGreen_group.p3d"; // Путь к модели растения
    affectedByWind = 0.6;
    swLighting = "true"; // Трава будет иметь цвет текстуры.
    scaleMin = 0.3; // Минимальная высота
    scaleMax = 1.1; // Максимальная высота
	relativeColor[]={1,1,1,1}; 
   };
class Flowers: DefaultClutter
   {
    model = "A3\plants_f\Clutter\c_Flower_Medium_White2.p3d";
    affectedByWind = 0.6;
    swLighting = "true";
    scaleMin = 0.3;
    scaleMax = 1.1;
	relativeColor[]={1,1,1,1}; 
   };
   
class Forest_Grass: DefaultClutter
   {
    model = "A3\plants_f\Clutter\c_StrGrassDryMedium_group.p3d";
    affectedByWind = 0.6;
    swLighting = "true";
    scaleMin = 0.3;
    scaleMax = 1.1;
	relativeColor[]={1,1,1,1}; 
   };
class Shrub: DefaultClutter
   {
    model = "A3\plants_f\Clutter\c_StrPlantGreenShrub.p3d";
    affectedByWind = 0.6;
    swLighting = "true";
    scaleMin = 0.3;
    scaleMax = 1.1;
	relativeColor[]={1,1,1,1}; 
   };    
 };
class Layers
{
  class Grass_2
  {
    texture = "";
    material = "z\data\Grass_2.rvmat";
  };
};

class Legend
{
  picture="z\source\mapLegend.png";
  class Colors
  {
	Grass_2[]={{128,128,64}};
  };
};

  • 0

#14 OFFLINE   dos622

dos622

    Ст. Прапорщик

  • Пользователи
  • 702 сообщений

Отправлено 16 September 2016 - 11:47

А у тебя CfgSurfaces не участвует в CfgWorlds, это так и задуммано?

 
и както смущает: class z{};
ты его вроде этим обнуляешь? или нет? Z воде должен что то наследовать?

  • 0

#15 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 16 September 2016 - 14:34

Пошел учить плюсы.... Я в классах пока не разбираюсь, не дошел ещё. Использую конфиг с урока. В террейн билдере надо какие то хитрые операции проделывать? Делаю сборку карты с того же урока, есть трава. Файлы кустов меняю, всё работает. Пытаюсь то же самое собрать на своей карте, нет нихрена. Всё таки думается мне, что с присвоением кустов к текстуре что-то не ладное.


  • 0

#16 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 16 September 2016 - 15:31

В общем косяк был в заглавной букве. В букве, карл! 

 

 

class CfgSurfaces 
{
class Default {};
class grass_surface : Default
{
files = "grass*"; // Класс текстуры из layers.cfg - class grass_green
rough = 0.1;
dust = 0.05;
soundEnviron = "grass";
character = "grass_Character";
soundHit = "soft_ground";
};
 
};
 
class CfgSurfaceCharacters
{
class grass_Character
  { бла бла бла....
 
если вместо grass указать Grass (соотв-но и класс с текстурой в конфиге слоев также) то класс не присваивается. Кто нибудь может объяснить это? Хотя это и не важно уже, но понимать процесс хотелось бы.
 
p.s. по всей видимости это касается только классов из layers.cfg. в строке files = "Grass*" заглавная не допустима

Сообщение отредактировал DarkEndless: 16 September 2016 - 16:52

  • 1

#17 OFFLINE   dos622

dos622

    Ст. Прапорщик

  • Пользователи
  • 702 сообщений

Отправлено 16 September 2016 - 16:21

DarkEndless,офигеть, оно даже так бывает. во бисы дают:)

хотя у них где то тоже встречал различие с заглавными и строчными.

но спасибо за опыт, буду знать:) 


  • 0

#18 OFFLINE   DarkEndless

DarkEndless

    Ефрейтор

  • Пользователи
  • 54 сообщений
  • Откуда:Moscow

Отправлено 16 September 2016 - 16:38

Вот и я 3 дня возился в непонятках)) :dycros_01:   Спасибо всем за участие) Надо денек передохнуть :russian:  а то уже друзьям вместо "привет" пишу class)))


  • 0

#19 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 16 September 2016 - 18:29

DarkEndless,офигеть, оно даже так бывает. во бисы дают :)

хотя у них где то тоже встречал различие с заглавными и строчными.

но спасибо за опыт, буду знать :)

 

Например в Jscript это две разных переменные

var value = 0;
var Value = 1;

А так же некоторые скриптовые команды армы учитываю регистр литер в передаваемом строковом параметре. В этом нет ни чего удивидельного. То что вы пишете в конфиг отправляется прямиком в движок, который говорит на Си, а для Си приведённый пример так же верен, видимо БЕСы местами не делают преобразование данных в нижний регистр, а может эта разница важна, и это норма.


  • 0

#20 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 16 September 2016 - 18:38

class CfgPatches
{
	class z //
	{
		units[] = {""}; // если сюда не чего писать, то и нечего сюда писать что попало)		
                weapons[] = {};
		requiredVersion = 0.1;
		requiredAddons[] = {"A3_Data_F"};
		author = "CAPTNCAPS"; //Author Name (this entry exists twice!)
		mail = "AuthorsEmail@Adress.com";
	};
};

class CfgPatches
{
	class A3_MyAddonName //
	{
		units[] = {}; //not sure if it must be filled, as Stratis didn't, but A2 Maps did...
		weapons[] = {};
		requiredVersion = 0.1;
		requiredAddons[] = {"A3_Data_F"};
		author = "CAPTNCAPS"; //Author Name (this entry exists twice!)
		mail = "AuthorsEmail@Adress.com";
	};
};


Сообщение отредактировал SteelRat: 16 September 2016 - 18:39

  • 0




Яндекс.Метрика