Jump to content
Sign in to follow this  
cbfasi

Proxy Problem

Recommended Posts

Requirement..

Solid Hedge base with moving greenery on top.

Problem...

Created solid hedge in O2, no problem

Created a 'Fern' (its part of the ArmA1 bis Fern clutter)

Added Fern:Geometry Property AutoCenter = 0

Save Fern in Folder Proxies, under the addon folder CBF_UKEx2

Added proxies to the hedge, hedge saved in CBF_UKEx2\Naturals

Now the proxies DO show in O2

ArmA0327.jpg

BUT in game and visitor they do not!

ArmA0330.jpg

But to make it more odd, the fern DOES show in game if not used as a proxy..

ArmA0328.jpg

This means its NOT a texture issue but something else!

Now... the config.cfg

#define true	1
#define false	0

#define private		0
#define protected		1
#define public		2

#define TEast		0
#define TWest		1
#define TGuerrila		2
#define TCivilian		3
#define TSideUnknown		4
#define TEnemy		5
#define TFriendly		6
#define TLogic		7

#define VSoft 0
#define VArmor 1
#define VAir 2


// *************************************************************
// *************************************************************

class CfgPatches
{
class CBFExtras
{
	units[] =
	{

	};
	weapons[] = {};
	requiredVersion = 0.10;
	requiredAddons[] = {"CAData"};
};
};
class CfgVehicles
{
class Thing;
class Building;
class Strategic;
class NonStrategic: Building
{
	class DestructionEffects;
};
class HouseBase;
class Land_VASICore;
class House : HouseBase
{
	class DestructionEffects;
};
class Hedge5mFerned : House
{
	scope=protected;
	model="CBF_UKEx2\NaturalszHedge5mFerned.p3d"
	displayName = "";
	destrType=DestructNo;

}

};


class CfgNonAIVehicles
{
class ProxyFern01
{
	scope = public;
	model = \CBF_UKEx2\Proxies\Fern01.p3d;
	autocenter = false;
	reversed = false;
	simulation = "alwaysshow";
};
class ProxyBush01
{
	scope = public;
	model = \CBF_UKEx2\Proxies\Bush01.p3d;
	autocenter = false;
	reversed = false;
	simulation = "alwaysshow";
};
class ProxyBush02
{
	scope = public;
	model = \CBF_UKEx2\Proxies\Bush02.p3d;
	autocenter = false;
	reversed = false;
	simulation = "alwaysshow";
};
class ProxyLongBush01
{
	scope = public;
	model = \CBF_UKEx2\Proxies\LongBush01.p3d;
	autocenter = false;
	reversed = false;
	simulation = "alwaysshow";
};
};

The model.cfg from the Naturals subfolder (has the hedge itself in)

class CfgSkeletons
{
class Building;
class ProxyCfgObjBonesCBF : Building
{
	isDiscrete=1;
	skeletonInherit= "";
	skeletonBones[]={};
};
};
// *************************************************************
// *************************************************************
class cfgModels
{
class Building;
class Hedge5mFerned: Building
{
	skeletonName = "ProxyCfgObjBonesCBF";
	sectionsInherit = "";                     
	sections[] = {};
};
};

The Model.cfg from the Proxies subfolder

class CfgSkeletons
{
class Building;
class ProxyCfgObjBonesCBF : Building
{
	isDiscrete=1;
	skeletonInherit= "";
	skeletonBones[]={};
};
};
// *************************************************************
// *************************************************************
class cfgModels
{
class Building;
class Bush01: Building
{
	skeletonName = "ProxyCfgObjBonesCBF";
	sectionsInherit = "";                     
	sections[] = {};
};
class Bush02: Building
{
	skeletonName = "ProxyCfgObjBonesCBF";
	sectionsInherit = "";                     
	sections[] = {};
};
class BushLong01: Building
{
	skeletonName = "ProxyCfgObjBonesCBF";
	sectionsInherit = "";                     
	sections[] = {};
};
class Fern01: Building
{
	skeletonName = "ProxyCfgObjBonesCBF";
	sectionsInherit = "";                     
	sections[] = {};
};
};

I have likely done more than I need here but nothing I seem to do will make the proxies show!

Binarized or unbinarized makes no difference either!!

Anyone got an idea on why this is not working ??

Share this post


Link to post
Share on other sites

Surely we have someone around who knows more than me that can help ??

Share this post


Link to post
Share on other sites

Does the rpt says something like proxy not found?

Share this post


Link to post
Share on other sites

George. Try removing the "\" at the beginning of each proxy path. Its a longshot but it might be the problem.

I have another suggestion. You could always use the 'attachto' command.

You'd have to create a config entry for each fern etc in the class vehicles section. Name each fern class "cbfasi_fern_01" etc or something appropriate. You will use this name in the init.sqs file below

Your base hedge would then run an init eventhandler to a init.sqs file with the appropriate attachto command for each fern/bush you wanted to attach to the hedge. example

class eventhandlers

{

init = "[_this select 0] exec "\your path to script folder\init.sqs

};

In the hedge memory lod you would place as many mem points as you need to cover the hedge in ferns. name them appropriately; e.g.

fern.01, fern.02 etc Use the mem point at the 90 degree angle of the proxy you use to place the ferns originally (delete the other two proxy mem points and rename to fern.01 etc)

the init.sqs file

_hedgebase = _this select 0

_fern01 = "cbfasi_fern_01" createvehicle[0,0,0] ; creates fern at map 0,0,0

_fern01 attachto [_hedgebase,[0,0,0], "fern.01"] ;attaches _fern01 to mempoint "fern.01" on to the hedge

;repeat for all fern attachments

You can randomize the direction with:

_rnd = random 360

_fern01 setdir _rnd

Now I don't know what impact having a lot of objects created with createvehicle will be on framerate etc. I haven't experimented with this since VBS1 and only again recently with ArmA 2. So far in my limited experiments I havent noticed any frame lag.

BTW this probably won't work in Visitor without some fancy scripting.

Cheers

Edited by Colonel_Klink

Share this post


Link to post
Share on other sites

ArmA2.Rpt says little in relation to the problem

Attachto wont put the items at the angles they need to be, already done lots of playing with attachto (pics will get out one day but /detach M1A2 from flying C130 looks SO funny when the M1A2 skids along ground!.)

Also nice to see your still around Ck, I still remember the old days

---------- Post added at 03:24 PM ---------- Previous post was at 03:03 PM ----------

Tried your idea CK of removing the first / , no differance

Also the thought of 25 ferns on each 5m section then by over 1000 !!! attachto will go nuts!

Ths btw is JUST the fern one, there going to be 5-6 variations, the fern is the test one!!

Worst case I make the greenery physically part of the model and loose the ArmA2 movement etc

Share this post


Link to post
Share on other sites

in ur cpp proxy defenitions shouldnt the proxy class inherit from some other native class? ie:

class BushProxy;

class ProxyFern01:BushProxy

{

scope = public;

model = \CBF_UKEx2\Proxies\Fern01.p3d;

autocenter = false;

reversed = false;

simulation = "alwaysshow";

};

replace BushProxy with the right class.

Share this post


Link to post
Share on other sites

I used the actual config from BIS as guide and they do not generally inherit from others, and there are non suitable class's to inheirit.

I cant even find ANY config data for the furniture used as proxies by BIS..

Quite simply I cannot find out how BIS have done this in ArmA2, I have even got a BIS ArmA1 sample building and its proxies dont show either!

I am almost ready to give up the idea of a Devon/Cornwall style hedge, prety much ruins the map I was going to build as its a core feature of the terrain in this area.

Maybe just place empty banks until it works...

Share this post


Link to post
Share on other sites

Try it without the CfgNonVehicle class.

Share this post


Link to post
Share on other sites

You generaly use proxies defined in CfgNonAIVehicles if they have special properties and simulations, like NV Goggles, Weapons, flags or random proxy selections e.t.c

But if you do use the CfgNonAIVehicles method, then they are referenced differently in O2.

For example your proxy config:

class ProxyFern01

Would look like this in O2:

proxy:Fern01.001

Just create a new proxy in O2, and put Fern01 as the proxy name. The engine automatical applies the prefix "proxy" when seaching through the configs.

Edit:

I should mention with this method they will only show up in game and not in Buldozer.

But as T_D said, you may as well link directly to the p3d. Unless this is a requirement to get your proxies animated or map based objects?

Edited by UNN

Share this post


Link to post
Share on other sites

The O2 is directly linked to the p3d name, in fact when I started it, it was orginally but didnt show, thats why I went down the line of the CfgNonAIVehciles method, still didnt work

Share this post


Link to post
Share on other sites
I went down the line of the CfgNonAIVehciles method, still didnt work

But you can display a regular object thats normaly used as a proxy, just to make sure your current method is correct?

Share this post


Link to post
Share on other sites

Yes, this is why I am so confused, its not the proxy model either, I cannot even get ArmA2 furniture to show as proxies when when I know for fact they are used as such.

The ArmA1 building sample models do not show their proxies either under ArmA2, there definately looks like a change.

Part of me is now thinking that I may need to wait for ArmA2 Modelling tools to get proxies to show on buildings.

Share this post


Link to post
Share on other sites

Ok here's a thought. in your CfgNonAIVehicles section of your config change the Proxyfern01 to Proxy_fern01. I have a vehicle with a dozen or so jerrycans plus ammoboxes attached to it using proxies and the proxy model names are jerrycan.p3d etc, but the CfgNonAIVehicles entries are proxy_jerrycan etc.

this might help.

or

Heres a thought, just try class fern01 without the proxy bit

CK

Edited by Colonel_Klink

Share this post


Link to post
Share on other sites

Hi George. This is really weird. I've just added a proxy of a fence to a building as an experiment and it worked. Are the ferns animated? If so try adding animated=true to the CfgNonAI.. bit. Else try another non animated object as a proxy and try that.

Ok. I'm not sure if this is relevant or not, I've just added a proxy to a model without any CfgNonAIVehicles entry at all and the proxy showed in ArmA np.

Here's a long shot

I'm guessing now that even though the proxies show for you in O2, the models in the proxies folder might not be compiled when the addon is. I'd do a depbo and check that the folder is being included in the compile. Although that should give a "cannot find model" error.

If you like, I can have a look at the addon for you.

Edited by Colonel_Klink
Brain not fuctioning. Thought processes went into limbo.

Share this post


Link to post
Share on other sites

I am having the very same problem. Proxy does work in O2's Bulldozer, but neither in Visitor 3 Bulldozer or Arma2 itself...

Is there a 100% solution to this problem?

Share this post


Link to post
Share on other sites

I never managed to solve this one, sort of low on priority

Share this post


Link to post
Share on other sites
If you like, I can have a look at the addon for you.

Yeah, if you have the time to put a basic example together? I would be like to check it out to, I have a general interest in anything proxy related.

Share this post


Link to post
Share on other sites

you may already have thought of that but i'm gonna say it anyways...just in case.

u said u need the movement from the wind...right? why not put a property class=bushsoft/treesoft in the model itself. i know it's kinda noobish compared to theproxy stuff but i always use that on my custom plants. if u only want to have the fern moving just seperate it into two models, one solid one leaves, and use the attachto thingy. dunno. maybe i'm thinking to simple here but sometimes that's the way to go:D

Share this post


Link to post
Share on other sites

After searching the Biki I found this entry describing Proxies and their usage.

One particular sentence seems to hold the key to get those proxies working:

There should also then be added a note in the configuration file that will set the simulation class and the path of the proxy model.

Does anyone of you have any clue what is meant by "simulation class"?

Something inside of CfgVehicles like

simulation = "SomethingThatMakesProxiesWorking"

or a completely new Class of some type (not CfgNonAiVehicles) like this:

class CfgSomeClassThatDoesWorkingProxies {
blah="";
};

Share this post


Link to post
Share on other sites

Probably CfgNonAiVehicles class is meant.

Share this post


Link to post
Share on other sites

I have found a solution for this problem:

You have to define an config-entry in cfgVehicles for the object that is containing proxies.

Example:

If you place in Visitor 3 a custom made building (eg. XYZ_restaurant.p3d) that uses proxies, you'll have to define "Land_XYZ_restaurant" in cfgVehicles. After doing this, all the proxies, ladders and custom animations (e.g. doors) will work properly and instantly when placed on an island (via Visitor 3).

Share this post


Link to post
Share on other sites

The only difference here that I see is the Land_ from what I have already tried.... will try it!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×