TCL Scripts

F4Browse, CATE, Tacedit, Terrainview & TheaterMaker etc utility related

Moderators: Lone Wolf, Snake Man

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

TCL Scripts

Post by Peled » 2005-11-26 17:54:00

Hi all
We are working on an IsraeliTheater Update.
I Already finished a New third Campaign(Sheleg War-1982).My Plan is to Create from Scretch a "Yom-Kipur-1973" Campaign...as well as "Six Days War" Campaign(Will replace the Fictional one)...
....Ground Units have been located in the SHELEG Campaign Manually.....---meanwhile i got understanding the TCL For Campaign.
Is anyone here Got or created any New TCL scripts for Campaign ?
Second question: I looked over the TCL Sites...Trying to understand how to create my own TXT Files.....---I don't have much time at Daytime to learn it due intensive Work....So---things go slow in that manner....My thought is to create TXT File for TCL Locating Armored Merkava1 (For Sheleg War)...and Another TXT File for Armored Centurion (For Yom Kipur & Six Days War Campaigns) as well with T72 For the Syrian/Egyptian Troops.....How i'm doing this??
meanwhile I Used PMC TCLs for locating the Infantry ,Engineering,Artillery....BUT I Missed these Mentioned Units....
I hope to get here some help with this Interesting & Powerfull Tool ....it really save a lot of time on Campaign'ing.

Thanks!

Peled.
F4ITDG-Israeli Theater Development Group (retired) .

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

Re: TCL Scripts

Post by Peled » 2005-11-29 01:05:00

Over the 2 Last Days---I Spent my "free Time" on Learning the TCL
Method .Very Very Interesting-----I need more Time To Understand
everythings there.....---Meanwhile----I Finished to Create The TCL
TXT Files for Locating The Ground Units In "Sheleg-1982" Campaign &
For "Yom-Kipur-1973" Campaign,The TCL For "Six Days War" Campaign is on it's way too.

The Strange thing is that According Tacedit---Everything is less 100.
For Example :If "SP Artillery Brigade" is ID 209....In TCL The code
is less 100....
eg.
"SP Artillery"-109
and same for each Unit...less 100.....I believe there's No
answer....----That's Just how it works....

Anyone have any explannation for that ??

Peled.
F4ITDG-Israeli Theater Development Group (retired) .

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

Re: TCL Scripts

Post by Peled » 2005-12-14 01:22:00

Is there any Limitation in TCL, For Ground Units ? ? ? ...
....I Just insert probably too much Units in one of my tests...it was Loaded succesfuly to the Save.cam---BUT When Enter the Sim----I Got a CTD...When i removed few Battalions everything was ok...
....It looks like i can't locate more then 40 Battalions in a Division...i read somewhere about this Limitation,BUT I can't find that....Anyone Got excactly how much i'm limit for a Division?

...It Seems that the Ground Units Hirarchy is a very important Factor in the TCL Method....
F4ITDG-Israeli Theater Development Group (retired) .

Bird-FF
Recruit
Posts: 44
Joined: 2004-09-08 22:01:01
Location: Washington, DC

Re: TCL Scripts

Post by Bird-FF » 2005-12-14 07:45:00

code:

Code: Select all

#ifndef CAMPLIB
#define CAMPLIB

#include "FalcLib.h"
#include "F4Vu.h"
#include "FalcList.h"

// =====================================
// Campaign defines and typedefs
// =====================================

typedef ulong CampaignTime;
#define CampaignSeconds   1000
#define CampaignMinutes  60000
#define CampaignHours  3600000
#define CampaignDay   86400000

#define INFINITE_TIME		4294967295		// Max value of CampaignTime
#define VEHICLES_PER_UNIT	16
#define FEATURES_PER_OBJ	32
#define MAXIMUM_ROLES		16
#define MAXIMUM_OBJTYPES	32
#define MAXIMUM_WEAPTYPES	600
#define MAX_UNIT_CHILDREN	5
#define MAX_FEAT_DEPEND		5

// JB 010709 Increase for larger theaters
/*
#define MAX_NUMBER_OF_OBJECTIVES		4000
#define MAX_NUMBER_OF_UNITS				2000	// Max # of NON volitile units only
#define MAX_NUMBER_OF_VOLITILE_UNITS	8000
#define MAX_CAMP_ENTITIES				(MAX_NUMBER_OF_OBJECTIVES+MAX_NUMBER_OF_UNITS+MAX_NUMBER_OF_VOLITILE_UNITS)
*/
#define MAX_NUMBER_OF_OBJECTIVES		8000
#define MAX_NUMBER_OF_UNITS				4000	// Max # of NON volitile units only
#define MAX_NUMBER_OF_VOLITILE_UNITS	16000
#define MAX_CAMP_ENTITIES				(MAX_NUMBER_OF_OBJECTIVES+MAX_NUMBER_OF_UNITS+MAX_NUMBER_OF_VOLITILE_UNITS)

#define MONOMODE_OFF		0
#define MONOMODE_TEXT		1
#define MONOMODE_MAP		2

class UnitClass;
typedef UnitClass* Unit;

// =====================================
// Vu shortcuts
// =====================================
This is from the SP3 code. It lists the maxium allowable units, and such.. Hope this helps!..

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

Re: TCL Scripts

Post by Peled » 2005-12-14 14:56:00

Sure it can Help ! ....Where can i get more such codes information , from?...
....Maybe you got there the code that specifically defined the Units Hirarchy... ...It just will solve me the "Trial & Error " Method ,wich take me lot of time...

Anyway,Thanks for this One .
F4ITDG-Israeli Theater Development Group (retired) .

Bird-FF
Recruit
Posts: 44
Joined: 2004-09-08 22:01:01
Location: Washington, DC

Re: TCL Scripts

Post by Bird-FF » 2005-12-14 17:21:00

don't know if I can pass it on, but if there's anything you would like me to try and look up, just ask! ;)

Bird-FF
Recruit
Posts: 44
Joined: 2004-09-08 22:01:01
Location: Washington, DC

Re: TCL Scripts

Post by Bird-FF » 2005-12-14 17:26:00

code:

Code: Select all

#include <stdio>
#include "CmpGlobl.h"
#include "Unit.h"
#include "Division.h"
#include "CampList.h"
#include "Find.h"
#include "Team.h"
#include "Campaign.h"
#include "CampStr.h"
#include "classtbl.h"
#include "F4Version.h"

Division DivisionData[NUM_TEAMS] = { NULL };

#ifdef USE_SH_POOLS
MEM_POOL DivisionClass:  :DivisionClass (void)
	{
	x = y = 0;
	nid = 0;
	owner = 0;
	elements = 0;
	c_element = 0;
	element = NULL;
	next = NULL;
	}
		
DivisionClass::~DivisionClass (void)
	{
	if (element)
		#ifdef USE_SH_POOLS
		MemFreePtr( element );
		#else
		delete element;
		#endif
	element = NULL;
	next = NULL;
	ShiAssert ( this != DivisionData[owner] );
	}

_TCHAR* DivisionClass::GetName (_TCHAR* buffer, int size, int object)
	{
	return GetDivisionName (nid, type, buffer, size, object);
	}

Unit DivisionClass::GetFirstUnitElement (void)
	{
	c_element = 0;
	return GetUnitElement(c_element);
	}

Unit DivisionClass::GetNextUnitElement (void)
	{
	c_element++;
	return GetUnitElement(c_element);
	}

Unit DivisionClass::GetPrevUnitElement (Unit e)
	{
	for (int i=1; i<elements; i++)
		{
		if (element[i] == e->Id())
			return GetUnitElement(i-1);
		}
	return NULL;
	}

Unit DivisionClass::GetUnitElement (int en)
	{
	Unit	ret = NULL;

	if (en < elements && element[c_element])
		{
		ret = (Unit)vuDatabase->Find(element[en]);
		if (!ret || ret->GetDomain() != DOMAIN_LAND)
			RemoveChild(element[en]);
		}
	return ret;
	}

Unit DivisionClass::GetUnitElementByID (int eid)
	{
	if (eid < elements)
		return GetUnitElement(eid);

	return NULL;
	}

void DivisionClass::UpdateDivisionStats (void)
	{
	Unit			u;
	GridIndex		ex,ey;
	uchar			count[50] = { 0 };
	int				bcount=0,btype=0,i;

	x = y = 0;
	u = GetFirstUnitElement();
	while (u)
		{
		u->GetLocation(&ex,&ey);
		x += ex;
		y += ey;
		count[u->GetSType()]++;
		u = GetNextUnitElement();
		}
	if (elements)
		{
		x /= elements;
		y /= elements;
		}
	for (i=0; i<50; i++)
		{
		if (count[i] > bcount)
			{
			bcount = count[i];
			btype = i;
			}
		}
	type = btype;
	}

void DivisionClass::RemoveChildren (void)
	{
	elements = 0;
	c_element = 0;
	if ( element )
		#ifdef USE_SH_POOLS
		MemFreePtr( element );
		#else
		delete element;
		#endif
	element = NULL;
	}

void DivisionClass::RemoveChild (VU_ID	eid)
	{
	int		i=0,j;
	Unit	e;

	while (i < elements)
		{
		if (element[i] == eid)
			{
			for (j=i; j < elements-1; j++)
				{
				element[j] = element[j+1];
				e = FindUnit(element[j]);
				}
			element[j] = FalconNullId;
			elements--;
			}
		else
			i++;
		}
	}


// ========================
// Other functions
// ========================

void DumpDivisionData (int team)
	{
	DivisionClass	*deadd;

	while (DivisionData[team])
		{
		deadd = DivisionData[team];
		DivisionData[team] = deadd->next;
		delete deadd;
#ifdef DEBUG
		DivisionSanityCheck();
#endif
		}
	DivisionData[team] = NULL;
	}

void DumpDivisionData (void)
	{
	for (int i=0; i<NUM_TEAMS; i++)
		DumpDivisionData(i);
	}

void BuildDivisionData (void)
	{
	Division		dc;
	Division		dd[NUM_TEAMS] = { NULL };
	Unit			u;
	int				d,t;
	VuListIterator	myit(AllParentList);
	uchar			divels[NUM_TEAMS][MAX_DIVISION] = { 0 };
	uchar tempteam; // JB 010220 CTD
	uchar tempdivision; // JB 010220 CTD

	#ifdef USE_SH_POOLS
	if ( gDivVUIDs == NULL )
		gDivVUIDs = MemPoolInit( 0 );
	#endif

	CampEnterCriticalSection();
	DumpDivisionData();

	// Count # of elements in each division
	u = (Unit) myit.GetFirst();
	while (u)
		{
		if (u->VuState() != VU_MEM_DELETED)
		{
			if (u->GetDomain() == DOMAIN_LAND)
			{
				tempteam = u->GetTeam(); // JB 010220 CTD
				tempdivision = u->GetUnitDivision(); // JB 010220 CTD
				if (tempteam >= 0 && tempteam <NUM_TEAMS>= 0 && tempdivision < MAX_DIVISION) // JB 010220 CTD
					divels[tempteam][tempdivision]++; // JB 010220 CTD
					//divels[u->GetTeam()][u->GetUnitDivision()]++; // JB 010220 CTD
			}
		}
		u = (Unit) myit.GetNext();
		}

	// Create/add to the divisions
	u = (Unit) myit.GetFirst();
	while (u)
	{
		if (u->GetDomain() == DOMAIN_LAND)
		{
			d = u->GetUnitDivision();
			if (d > 0)
			{
				t = u->GetTeam();
				dc = dd[t];
				while (dc)
					{
					// Try to find existing one
					if (dc->nid == d)
						break;
					dc = dc->next;
				}

				if (!dc)
				{
					// Create a new one
					dc = new DivisionClass();
					dc->nid = d;
					dc->owner = u->GetOwner();
					ShiAssert(divels[t][d]);
					#ifdef USE_SH_POOLS
					dc->element = (VU_ID *)MemAllocPtr( gDivVUIDs, sizeof( VU_ID ) * divels[t][d], FALSE);
					#else
					if (t >= 0 && t <NUM_TEAMS>= 0 && d < MAX_DIVISION) // JB 010223 CTD
						dc->element = new VU_ID[divels[t][d]];
					#endif
					dc->next = dd[t];
					dd[t] = dc;
				}

				if (!F4IsBadWritePtr(dc, sizeof(DivisionClass)) && dc->elements >= 0 && !F4IsBadWritePtr(&(dc->element[dc->elements]), sizeof(VU_ID))) // JB 010223 CTD
				{
					dc->element[dc->elements] = u->Id();
					dc->elements++;
				}
			}
		}
		u = (Unit) myit.GetNext();
	}

	// Set the division type and location
	for (t=0; t<NUM_TEAMS; t++)
	{
		dc = dd[t];
		while (dc)
		{
			if (F4IsBadReadPtr(dc, sizeof(Division))) // JB 010223 CTD
				break;

			ShiAssert (dc->elements == divels[t][dc->nid]);
			dc->UpdateDivisionStats();
			dc = dc->next;
		}
		// Assign to lists only after we've finalized it.
		// UI doesn't critical section with us.
		DivisionData[t] = dd[t];
	}
	CampLeaveCriticalSection();

#ifdef DEBUG
	DivisionSanityCheck();
#endif
}


/*
void BuildDivisionData (void)
	{
	DivisionClass	*dc,*nextd,*lastd;
	Unit			u;
	int				c,d,t;
	VuListIterator	myit(AllParentList);
	uchar			divlist[256];

	memset(divlist,0,256);

	// Find out what we got, first;
	for (t=0; t<NUM_TEAMS; t++)
		{
		dc = GetFirstDivision(t);
		while (dc)
			{
			if (!dc->BuildDivision(dc->owner,dc->nid))
				{
				// No longer needed, kill off
				if (dc == DivisionData[t])
					DivisionData[t] = dc->next;
				else if (lastd)
					lastd->next = dc->next;
				nextd = dc->next;
				delete dc;
#ifdef DEBUG
				DivisionSanityCheck();
#endif
				dc = nextd;
				}
			else
				{
				divlist[dc->nid] |= (1 <<dc>owner);
				lastd = dc;
				dc = dc->next;
				}
			}
		}

	// Now add any newly found stuff
	u = GetFirstUnit(&myit);
	while (u)
		{
		if (u->GetDomain() == DOMAIN_LAND && u->GetUnitDivision())
			{
			d = u->GetUnitDivision();
			c = u->GetOwner();
			if (!(divlist[d] & (1 << c)))
				{
//				CampEnterCriticalSection();
				dc = new DivisionClass();
				if (!dc->BuildDivision(c,d))
					{
					delete dc;
#ifdef DEBUG
					DivisionSanityCheck();
#endif
					}
				else
					{
					dc->next = DivisionData[u->GetTeam()];
					DivisionData[u->GetTeam()] = dc;
					}
//				CampLeaveCriticalSection();
				divlist[d] |= (1 << c);
				}
			}
		u = GetNextUnit(&myit);
		}
	}
*/

Division GetFirstDivision (int team)
	{
	return DivisionData[team];
	}

Division GetNextDivision (Division d)
	{
	return d->next;
	}

Division GetFirstDivisionByCountry (int country)
	{
	Division	d = DivisionData[GetTeam(country)];

	while (d)
		{
		if (d->owner == country)
			return d;
		d = d->next;
		}
	return NULL;
	}

Division GetNextDivisionByCountry (Division d, int country)
	{
	d = d->next;
	while (d)
		{
		if (d->owner == country)
			return d;
		d = d->next;
		}
	return NULL;
	}

Division GetDivisionByUnit (Unit u)
	{
	Division d;

	d = GetFirstDivision(u->GetTeam());
	while (d)
		{
		if (d->nid == u->GetUnitDivision() && d->owner == u->GetOwner())
			return d;
		d = d->next;
		}
	return NULL;
	}

Division FindDivisionByXY (GridIndex x, GridIndex y)
	{
	int			t;
	Division	d=NULL;

	for (t=0; t<NUM_TEAMS; t++)
		{
		d = GetFirstDivision(t);
		while (d)
			{
			if (d->x == x && d->y == y)
				return d;
			d = d->next;
			}
		}
	return NULL;
	}

int DivisionSanityCheck (void)
	{
	Division	tmp;
	int			i;

	for (i=0; i<NUM_TEAMS; i++)
		{
		tmp = DivisionData[i];
		while (tmp)
			{
			ShiAssert ((int)tmp != 0xdddddddd);
			tmp = tmp->next;
			}
		}
	return 0;
	}
This is the code for divisions in the campaign engine. Seems like the limit in Falcon is 255, but It' also seems like the camp engine dictates who becomes a division..
I could be wrong, I not that great with C...

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

Re: TCL Scripts

Post by Peled » 2005-12-14 19:04:00

Thanks for that one ! I'll take a look at that later....I Learned the c Code long time ago...BUT---It's still looked familiar....You are right,It seem that there is some kinda of looping with the Divisions there...and with choosing wich Unit will be in...
The Engine is Acting in a Differents way for Battalions that are lonely and for Battalions that are in a Division...something with the X,Y Coordinates to the Target...Depending the Hirarchy there....So,i guess that's why the TCL Method is prefered then the Manually----Anyway....i'll take a look at that one...

Translating this ,will be a Good Source for Understanding the way the Campaign Engine Act ....
F4ITDG-Israeli Theater Development Group (retired) .

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

Re: TCL Scripts

Post by Peled » 2005-12-15 00:12:00

I Don't want to make it longer...BUT--- I Must Understand what's the Problem there...
....I Found that Hirarchy is an important Factor in TCL'ing...Look at my TCL ...And for my Notes there,maybe you GOT an Answer:


#
# Sheleg War brigades and batallions
#

# variables for brigade and batallions
# controlling team
set cntrl 2

# brigade type
set brgtype 86

#
# batallion types
set battype 45

# coordinates X Y
set xc 559
set yc 850

# brigade name
set brigname 1

# batallion name
set bname 1

# division
set divsn 1

# orders
set ordr 0

# aobj id
set assign 0

source "create.brig.bat.sub.tcl"

set xc 561
set yc 849

source "create.brig.bat.sub.tcl"

set xc 556
set yc 849

source "create.brig.bat.sub.tcl"

# Israeli INFANTRY

set brgtype 88
set battype 727
set xc 586
set yc 864

source "create.brig.bat.sub.tcl"

set xc 575
set yc 859

source "create.brig.bat.sub.tcl"

set xc 571
set yc 847

source "create.brig.bat.sub.tcl"

set xc 579
set yc 868

source "create.brig.bat.sub.tcl"

set xc 565
set yc 850

source "create.brig.bat.sub.tcl"

set xc 576
set yc 850

source "create.brig.bat.sub.tcl"

set xc 584
set yc 872

source "create.brig.bat.sub.tcl"

set xc 574
set yc 870

source "create.brig.bat.sub.tcl"

--------------------------------
@Now---Why i can't add here more infantry Battalions ??...as it is now ,it's ok...BUT--If i'll add Here more battalions,i'll get a CTD...
--------------------------------

# 86 - Armored
set brgtype 86
set battype 2525
set xc 572
set yc 872

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"

set xc 561
set yc 853

source "create.brig.bat.sub.tcl"


------------------------------------
@Same here.....Undertand what i meant ?
------------------------------------


# 86 - Armored
set brgtype 86
set battype 716
set xc 626
set yc 919

source "create.brig.bat.sub.tcl"

set xc 629
set yc 920

source "create.brig.bat.sub.tcl"

# mechanized m113
set brgtype 87
set battype 573
set xc 589
set yc 895

source "create.brig.bat.sub.tcl"

set xc 629
set yc 920

source "create.brig.bat.sub.tcl"

# mechanized m113
set brgtype 87
set battype 573
set xc 615
set yc 923

source "create.brig.bat.sub.tcl"

# rocket artillery bm21
set brgtype 84
set battype 723
set xc 591
set yc 884

source "create.brig.bat.sub.tcl"

set xc 618
set yc 924

source "create.brig.bat.sub.tcl"

# 101 - SP Artillery
set brgtype 101
set battype 67
set xc 618
set yc 916

source "create.brig.bat.sub.tcl"


# 110 - engineer
set brgtype 110
set battype 79
set xc 579
set yc 880

source "create.brig.bat.sub.tcl"

set xc 582
set yc 875

source "create.brig.bat.sub.tcl"

# 110 - engineer
set brgtype 110
set battype 80
set xc 566
set yc 862

source "create.brig.bat.sub.tcl"

set xc 591
set yc 890

source "create.brig.bat.sub.tcl"


# 110 - engineer
set brgtype 110
set battype 79
set xc 597
set yc 895

source "create.brig.bat.sub.tcl"

set xc 567
set yc 871

source "create.brig.bat.sub.tcl"

#Supply - 109
set brgtype 109
set battype 78
set xc 578
set yc 870

source "create.brig.bat.sub.tcl"
set xc 624
set yc 915

source "create.brig.bat.sub.tcl"

# Air Assault - 99
set brgtype 99
set battype 63
set xc 567
set yc 871

source "create.brig.bat.sub.tcl"

set xc 577
set yc 871

source "create.brig.bat.sub.tcl"

set xc 559
set yc 853

source "create.brig.bat.sub.tcl"

# 101 - SP Artillery
set brgtype 101
set battype 67
set xc 597
set yc 895

source "create.brig.bat.sub.tcl"

set xc 597
set yc 897

source "create.brig.bat.sub.tcl"

-------------------------------------------
*Now ---This is not the complete one :D,that's only for the "blue side" ...
....So...I Hope you got the idea....it's ok as it is now...i just will probably add few more manually...i don't have any problem with the "red side" Units....Weird...Anyway...there must be something there....In Sim. i got 2 Brigades...Air mobile and Armored...so i guess it depends also on the relocatation of the Units in the txt File ? :?
F4ITDG-Israeli Theater Development Group (retired) .

Bird-FF
Recruit
Posts: 44
Joined: 2004-09-08 22:01:01
Location: Washington, DC

Re: TCL Scripts

Post by Bird-FF » 2005-12-15 01:12:00

I never really got into the TCL scripting, but here what PMC did for their Korea Version.
code:

Code: Select all

#
# PMC Korea brigades and batallions
#

# variables for brigade and batallions
# controlling team
set cntrl 2

# brigade type
set brgtype 86

#
# batallion types
set battype 45

# coordinates X Y
set xc 427
set yc 472

# brigade name
set brigname 1

# batallion name
set bname 1

# division
set divsn 1

# orders
set ordr 0

# aobj id
set assign 0

source "create.brig.bat.sub.tcl"

set xc 420
set yc 463

source "create.brig.bat.sub.tcl"

set xc 463
set yc 500

source "create.brig.bat.sub.tcl"

set xc 517
set yc 503

source "create.brig.bat.sub.tcl"

set xc 561
set yc 500

source "create.brig.bat.sub.tcl"

set xc 600
set yc 488

source "create.brig.bat.sub.tcl"


# SOUTH KOREAN INFANTRY

set brgtype 88
set battype 727
set xc 420
set yc 460

source "create.brig.bat.sub.tcl"

set xc 447
set yc 474

source "create.brig.bat.sub.tcl"

set xc 500
set yc 478

source "create.brig.bat.sub.tcl"

set xc 540
set yc 501

source "create.brig.bat.sub.tcl"

set xc 572
set yc 483

source "create.brig.bat.sub.tcl"

set xc 545
set yc 405

source "create.brig.bat.sub.tcl"

set xc 501
set yc 336

source "create.brig.bat.sub.tcl"

# mechanized m113
set brgtype 87
set battype 573
set xc 480
set yc 480

source "create.brig.bat.sub.tcl"

set xc 526
set yc 457

source "create.brig.bat.sub.tcl"

set xc 416
set yc 422

source "create.brig.bat.sub.tcl"


# mechanized m2a2
set battype 54
set xc 417
set yc 448

source "create.brig.bat.sub.tcl"

set xc 595
set yc 506

source "create.brig.bat.sub.tcl"

set xc 437
set yc 390

source "create.brig.bat.sub.tcl"

# rocket artillery MLRS
set brgtype 84
set battype 722
set xc 465
set yc 465

source "create.brig.bat.sub.tcl"

set xc 610
set yc 440

source "create.brig.bat.sub.tcl"


# 101 - SP Artillery
set brgtype 101
set battype 67
set xc 551
set yc 481

source "create.brig.bat.sub.tcl"


# 110 - engineer
set brgtype 110
set battype 79
set xc 441
set yc 419

source "create.brig.bat.sub.tcl"

set xc 543
set yc 372

source "create.brig.bat.sub.tcl"


################# NORTH KOREA ###################

set cntrl 6
set divsn 1
set brigname 1
set bname 1
set brgtype 86
set battype 61
set xc 392
set yc 462

source "create.brig.bat.sub.tcl"

set xc 426
set yc 495

source "create.brig.bat.sub.tcl"

set xc 470
set yc 513

source "create.brig.bat.sub.tcl"

set xc 507
set yc 513

source "create.brig.bat.sub.tcl"

set xc 551
set yc 518

source "create.brig.bat.sub.tcl"


# NORTH KOREAN INFANTRY

set brgtype 88
set battype 726
set xc 578
set yc 549

source "create.brig.bat.sub.tcl"

set xc 540
set yc 520

source "create.brig.bat.sub.tcl"

set xc 462
set yc 525

source "create.brig.bat.sub.tcl"

set xc 396
set yc 485

source "create.brig.bat.sub.tcl"

set xc 347
set yc 467

source "create.brig.bat.sub.tcl"

set xc 482
set yc 550

source "create.brig.bat.sub.tcl"

set xc 275
set yc 517

source "create.brig.bat.sub.tcl"

# mechanized
set brgtype 87
set battype 574
set xc 532
set yc 510

source "create.brig.bat.sub.tcl"

set xc 540
set yc 548

source "create.brig.bat.sub.tcl"

set xc 381
set yc 480

source "create.brig.bat.sub.tcl"

set xc 495
set yc 565

source "create.brig.bat.sub.tcl"

set xc 400
set yc 550

source "create.brig.bat.sub.tcl"

# mechanized btr-80
set battype 55
set xc 401
set yc 512

source "create.brig.bat.sub.tcl"

set xc 311
set yc 558

source "create.brig.bat.sub.tcl"


# rocket artillery bm21
set brgtype 84
set battype 723
set xc 405
set yc 486

source "create.brig.bat.sub.tcl"


# 101 - SP Artillery
set brgtype 101
set battype 12
set xc 460
set yc 511

source "create.brig.bat.sub.tcl"


# 110 - engineer
set brgtype 110
set battype 80
set xc 315
set yc 526

source "create.brig.bat.sub.tcl"


printout "thank you, have a nice day."
Seems to me that your missing some "Set brgtype, Set battype" commands in your unit placing. I'm sure this is important, since this dictates the type of units that make up the battion or brigade.

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

Re: TCL Scripts

Post by Peled » 2005-12-15 01:20:00

Yeh,Thanks... I'll look at the Korean TCL..That's Pobably the Problem...

EDIT: Comparing mine to the Korean TCL ,it looks the same....i probably need to give more Attention to the Units Order...
F4ITDG-Israeli Theater Development Group (retired) .

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

Re: TCL Scripts

Post by Peled » 2006-03-07 00:53:00

Just a Note ,Taken From The Manual ,Refering the Amount of Battalions in a Division :
quote:
Divisions are really just nuber in the division field. The division unit tags in the campaign are created dynamically (or something like that) to the center area of the forces listed in the division. One important detail of divisions is that the amount of units you can assign into one. Seems to me so far in our tests that its about 165-170 batallions, yeah lot of ground buggers. Be careful, falcon campaign rewards you with immediate CTD if you exceed the ground unit amount in one division. When you have more ground forces, just add them to another division.

[/B]
I Hope it will Help in the Future .
F4ITDG-Israeli Theater Development Group (retired) .

Bird-FF
Recruit
Posts: 44
Joined: 2004-09-08 22:01:01
Location: Washington, DC

Re: TCL Scripts

Post by Bird-FF » 2006-03-07 01:52:00

What Manual?..

User avatar
Peled
F4ITDG
Posts: 131
Joined: 2005-04-16 22:01:01
Location: Israel

Re: TCL Scripts

Post by Peled » 2006-03-07 02:20:00

quote:Originally posted by Bird-FF:
What Manual?..

Hee Hee...NOT Mine.... :D

Well..., I got few Manuals/Tuts for Campaign'ing ,I'm not sure exactly where i dig it from , i think it's an old PMC's one , i just added few Tut's in a one Doc. and added my Suggestions/Tips into, it's taken from the Cris Carter Campaign Tutorial....
F4ITDG-Israeli Theater Development Group (retired) .

Who is online

Users browsing this forum: ClaudeBot [Bot] and 0 guests