Is there a scripting doc?

Post new mods and scenarios here.

Moderator: Vic

Post Reply
User avatar
Blond_Knight
Posts: 998
Joined: Sat May 15, 2004 3:52 am

Is there a scripting doc?

Post by Blond_Knight »

Vic, really enjoying Case Blue.
Ive never played one of your games before and Im looking for a doc explaining the scripting language. The examples on your blog are great, and the comments in the game scripts themselves are helpful but I was wondering if you had something like a listing of each command, its syntax, what it does, etc?
User avatar
Redmarkus5
Posts: 4454
Joined: Sat Dec 01, 2007 1:59 pm
Location: 0.00

RE: Is there a scripting doc?

Post by Redmarkus5 »

+1 :)
WitE2 tester, WitW, WitP, CMMO, CM2, GTOS, GTMF, WP & WPP, TOAW4, BA2
User avatar
Vic
Posts: 9284
Joined: Mon May 17, 2004 2:17 pm
Contact:

RE: Is there a scripting doc?

Post by Vic »

Not everything has been documented. But here are all checks with their arguments.


1) CheckTurn()
2) CheckHexOwner([X],[Y])
3) CheckRound()
4) CheckRegimeMorale([RegimeNr])
5) CheckWinner()
6) CheckWar([RegimeNr in Question],[Relation with RegimeNr])
7) CheckPeace([RegimeNr in Question],[Relation with RegimeNr])
8) CheckUnitsFrom([AreaSlot],[AreaCode],[RegimeNr],[Not From PeopleNr])
10) CheckRandomPercent()
11) CheckLandscapeType([X],[Y])
12) CheckLandscapeSprite([X],[Y])
13) CheckSlot([X],[Y],[Slot#])
14) CheckMapWidth()
15) CheckMapHeight()
16) CheckYear()
17) CheckMonth()
18) CheckDay()
19) CheckIfAI([Regime#])
20) CheckPolPts([Regime#])
21) CheckVP([Regime#])
22) CheckDifferenceInDays([Year],[Month],[Day])
23) CheckSupplyNeeded([Regime])
24) CheckHQFor([X],[Y])
27) CheckActionCard([Regime Owner],[Card Nr])
28) CheckDipBlock([Regime#])
29) CheckSleep([Regime#])
30) CheckHistoricActionCard([Regime Owner],[Card Nr])
31) CheckSFTypeInArea([AreaSlot],[AreaCode (-1=all hexes)],[SFType],[Regime])
32) CheckPowerPointsInArea([AreaSlot],[AreaCode],[Regime],[Land only (0=no check, 1=land theater only)])
33) CheckSFTypeInXY([X],[Y],[SFType (-1=all)],[Regime])
34) CheckRegimeKills([Regime],[SFType (-1=all)],[Round (-1=all rounds)],[Report 0=qty, 1=power pts])
35) CheckRegimeLosses([Regime],[SFType (-1=all)],[Round (-1=all rounds)],[Report 0=qty, 1=power pts])
36) CheckRegimeProduction([Regime],[SFType (-1=all)],[Round (-1=all rounds)],[Report 0=qty, 1=power pts])
37) CheckRegimeCount()
38) CheckIfNeighbour([X],[Y],[X2],[Y2])
39) CheckDistance([X],[Y],[X2],[Y2])
40) CheckSFTypeGroupInXY([X],[Y],[SFType Group (-1=all)],[Regime])
42) CheckAIThinkSpeed([Regime]) : Gives back the AI think speed level. 0=Normal, 100=Slow, 250=Very Slow. (in old AT this was the production bonus- if ever merge keep this in mind)
43) CheckTotalUnits()
44) CheckUnitOwner([Unit Nr])
45) CheckUnitHQ([Unit Nr])
46) CheckUnitX([Unit Nr])
47) CheckUnitY([Unit Nr])
48) CheckUnitHistorical(ID)([Unit Nr])
49) CheckUnitIsHQ([Unit Nr])
50) CheckRegimeRelation([Reg1],[Reg2]) : Returns 0 for war, 1 for peace, 2 for alliance
51) CheckUnitInHQChain([Unit Nr],[HQ Nr])
52) CheckUnitCommanderStaffPercent([Unit Nr])
53) CheckUnitHQPower([Unit Nr])
54) CheckFirstUnitWithHistoricalNr([Historical Nr])
55) CheckLocTypeXY([X],[Y])
56) CheckStrucPtsXY([X],[Y])
57) CheckClosestCommanderUnit([X],[Y],[Regime])
58) CheckStringList([Stringlist ID],[Row],[Col])
59) CheckStringReplace([From String],[Which substring],[Replace with what])
60) CheckRegimeVar([Regime Nr],[Var Nr])
61) CheckHistoricalUnitTempVar([Unit Nr (or -1 to use hist.)],[TempVar Nr (1-5)],[Use Historical Unit Nr])
62) CheckCommanderDescript([Unit Nr])
63) CheckCommanderXP([Unit Nr])
64) CheckStringListRows([StringList ID])
65) CheckStringListCols([StringList ID])
66) CheckStringListLastID()
67) CheckUnitRdn([Unit#])
68) CheckUnitSFType([Unit #],[SFType Group (-1 for none)],[Specific SFType (-1 for none)]) : Returns the number of individuals in this unit
69) ReturnCRLF()
70) CheckUnitName([Unit#])
71) CheckRegimeUnitsMorale([Reg]) : Returns the average morale of all units on map for this regime
72) CheckRegimeUnitsExperience([Reg]) : Returns the average experience of all units on map for this regime
73) CheckUnitTempOwner([Unit Nr]) : Returns the real owner. If this is a subregime it will actually give back the subregime regime # instead of the uberregime which the normal CheckUnitOwner will return.
75) CheckUnitPower([Unit Nr]) : Returns the real total power points in the unit.
76) CheckSpecialType([X],[Y])
77) CheckSpecialSprite([X],[Y])
78) CheckUnitSelectable([Unit Nr]) : Returns 0 if not selectable. returns 1 if selectable.
79) DistanceClosestEnemyHex([Minimum (AI)VP value? 0=any],[from X],[from Y],[Max distance (-1=no maximum)]) : Returns the distance. Max distance can be set to keep processing time down if necc.
80) CheckEnemyTroopsCloseBy([Max Distance],[from X],[from Y],[Distance divider modifier (0=none)]) : Max distance sets circle in which too look. Distance divider modifier set by what the power points of a unit are divided. if 0 they are not divided. if 1 they are divided by distance. if 2 by double distance.. etc..
81) CheckUnitMor([Unit#]) : Keep in mind this is an average of the subformations.
83) CheckSFTypePower([SFType#],[SFType Targetgroup],[1=attack score, 2=defend score])
84) CheckSFTypeDescription([SFType#])
85) CheckSFTypeHP([SFType#],[SFType Targetgroup],[1=attack hp, 2=defend hp])
86) CheckSFTypeMoveType([SFType#])
87) CheckSFTypeMoveRedux([SFType#])
88) CheckSFTypeModelLastState([SFType#],[Research#])
89) CheckSFTypeLogo([SFType#],[Logo#])
92) CheckSFTypeFuelUse([SFtype#],[1=ForMovement, 2=ForCombat])
93) CheckGameVar([Nr])
94) CheckTempVar([Nr])
95) CheckRegimePeople([Regime])
96) CheckSFTypeVar([SFType],[Var#])
97) CheckSFTypeItem([SFType#])
98) CheckHexVP([X],[Y])
99) CheckDipOffer([From Regime],[Too Regime])
101) CheckDefinedAreaID([Slot#(0-9)],[Value#]) : Returns first Defined area with that slot&value coupled to it.
102) CheckHexPeople([X],[Y]) : Returns people number of location here. if any. if not returns -1.
104) CheckNonSleepingRegimesToCome() : Returns the number of regimes that are still to be played in this round that are not put to sleep.
108) CheckCalcGetPercent([Var X],[of Var Y]) : Returns the percentage that var X makes up of var Y.
109) CheckLocCounter() : Returns the number of locations. remember counting starts at 0.
110) CheckLocX([Location#]) : Returns the number of locations. remember counting starts at 0.
111) CheckLocY([Location#]) : Returns the number of locations. remember counting starts at 0.
113) CheckMaxFuelUse([Regime (-1=all)],[Fuel Type (-1=all)])
115) CheckHexName([X],[Y])
116) CheckLocName([LocNr])
117) CheckHexLocNr([X],[Y]) : Returns -1 if no Location in hex. 0 or higher if present.
118) CheckHexUnitCounter([X],[Y]) : Returns -1 if no units. Returns 0 is one unit (in slot 0). Returns 1 if two units present (one in slot 0, one in slot1), etc..
119) CheckHexUnit([X],[Y],[Unit Slot]) : You should use CheckHexUnitCounter to determine the number of units on the hex. Start with slot=0!
120) CheckStringLength([String]) : Return of 0 means an empty string has been tested.
121) CheckUnitStaffPercent([Unit Nr],[CheckMode=0,1,2]) : Return the staff % of the unit... you might want to use this check in combination with CheckUnitHqPower since distance is not checked for in this event. Check Mode 0 returns staff%. Check Mode 1 returns combat mod%, Check Mode 2 returns morale mod%.
122) CheckSFTypeRatio([SFType#])
123) CheckSFTypeName([SFType#])
124) CheckRoadType([X],[Y],[Direction]) : Direction: 0=n, 1=ne, 2=se, 3=s, 4=sw, 5=nw. Use direction -1 to test for all directions: first type found is returned. -1 is returned if none.
125) CheckRiverType([X],[Y],[Direction]) : Direction: 0=n, 1=ne, 2=se, 3=s, 4=sw, 5=nw. Use direction -1 to test for all directions: first type found is returned. -1 is returned if none.
126) CheckBridge([X],[Y],[Direction]) : Direction: 0=n, 1=ne, 2=se, 3=s, 4=sw, 5=nw. Use direction -1 to test for all directions. Returns 0 for no bridge and 1 for yes bridge.
127) CheckHisVar([His Unit ID#],[Type#]) : Returns value if type is present. If type is not present it returns 0.
128) CheckUnitRecon([Unit#],[Include land theater 0=no, 1=yes],[Include sea theater 0=no, 1=yes],[Include air theater 0=no, 1=yes]) : Returns total recon points in the unit.
129) CheckRoadTypeSpecific([X],[Y],[Specific Road Type]) : Check is specied roadtype is present in this hex. Returns 1 if is. Returns 0 if not.
130) CheckHistoricalUnitAverageXP([Unit#]) : Will look up other units on map with the same historical unit and return average xp
131) CheckRandomRowStringList([Stringlist ID],[Col used as weight (-1=none)])
132) CheckFindInStringList([Stringlist ID],[In Col],[Find Value]) : Returns row# where value is found or -1 if not.
133) CheckTotalHistoricalUnits()
134) CheckGetHistoricalUnitID([Slot#]) : Keep in mind that this function should be used to scroll through all historical units using a looper from 0 to CheckTotalHistoricalUnits. Use this function to get the actual ID to be used in other functions.
135) CheckGetHistoricalUnitRegime([Historical Unit ID#])
136) CheckPeopleUnderHQ([HQ level to check],[Troop people],[HQ people],[regime#]) : A complicated function. HQ level 1 is HQs with historical unit set to Corps. HQ level 2 is only HQs with historical HQ set to Army, 3=armygroup, 4=high command.. Function returns % of total power points of people on map is under a hq whose historical unit people is set to hqppl. This function could for example be used to check if axis minor are under wehrmacht HQs or under their own.
137) CheckGetHistoricalUnitPeople([Historical Unit ID#])
138) CheckGetHistoricalUnitType([Historical Unit ID#]) : Returns the type. 5=corps, 6=army, etc..
139) CheckGetHistoricalUnitOfficer([Historical Unit ID#]) : returns 1 if officer, returns 0 if not. Basicly the length of officer name is checked.
140) CheckCompareString([String1],[String2],[Mode]) : Case insensitive. Mode=1 means it looks if the strings are exactly alike. Mode=2 same but all spaces are removed. Mode=3 means it looks if part of string1 is equal to string 2. Function returns 1 if equal or 0 if not.
141) CheckMin([Value1],[Value2]) : Returns the lowest of the 2 values entered
142) CheckMax([Value1],[Value2]) : Returns the highest of the 2 values entered
143) CheckGetHistoricalUnitName([Historical Unit ID#])
144) CheckGetHistoricalSubparts([Historical Unit ID#])
145) CheckTotalSupplyUse([Regime #]) : Returns the BasicSupplyUse of all troops on the map added up.
146) CheckUnitAP([Unit#]) : Keep in mind this is the lowest AP subformations.
147) CheckPbemPlayer([Regime#]) : Expert use only! Returns either 1 for pbem player 1 (challenger), 2 for pbem player 2(opponent) or 0 if not set (not a started pbem++ game for example)
148) CheckDrawGame() : Returns 0 if not. Returns 1 if this is a draw game.
149) CheckTotalActioncards([Regime #],[Category # (-1=all)],[Color # (-1=all)]) : Returns the total number of action cards the regime has in hand.
150) CheckAICombatMod([Regime]) : Gives back the AI combat modifier. 0=none, >0 is the percentual bonus. (This is the AI difficulty in the scenario setup screen)
151) CheckIsUnitAPreDef([Unr#]) : Returns -1 if not a predef. Returns the predef ID # if it is a predef.
152) CheckRuleVar([RuleVar#],[Mulitply by 100? 0=no 1=yes]) : Multiply option is there because some rulevar have single values like 0.4 or 0.03. And the scripting sytem can only handle integers.
153) CheckUnitXP([Unit#],[Only if staff (0=no,1=yes)]) : Keep in mind that it returns the highest XP found in any subformation.
154) CheckGetHistoricalUnitCommanderName([Historical Unit ID#]) : Returns the commandername (not the his.unit name!). If no commander empty string is returned.
155) CheckFindHistoricalUnitWithCommanderName([Commander Name]) : Returns the first historical unit ID number of a unit ON the map with this commander name present. -1= none find.
156) CheckUnitHQChanged([Unit Nr]) : Returns 1 if the unit HQ has been changed in this turn. Returns 0 if not.
Visit www.vrdesigns.net for the latest news, polls, screenshots and blogs on Shadow Empire, Decisive Campaigns and Advanced Tactics
User avatar
Vic
Posts: 9284
Joined: Mon May 17, 2004 2:17 pm
Contact:

RE: Is there a scripting doc?

Post by Vic »

And here are the execs:


1) ExecGiveRegimePP([RegimeNr],[PP])
2) OldStyleMessage (DEPRECIATED)([Regime1],[Regime2],[BackPic#],[FrontPic#]) : Is depreciated. Avoid using it
3) ExecChangeDip (DEPRECIATED)([RegimeNr1],[RegimeNr2]) : Reverses the diplomatic relation from war to peace. Or from peace to war. Use a check to see current relation. IS DEPRECIATED. USE EXECCHANGERELATION INSTEAD.
4) ExecSetWinner([RegimeNr])
5) ExecAddRegimeMorale([RegimeNr],[Mutation +/- pts])
6) ExecAddUnit([UnitPreDef#],[X],[Y],[Regime#])
7) ExecLoad()
8) ExecSetSleep([Regime#],[Sleep=1, Awake=0])
9) ExecJoinRegime([Losing Regime#],[Added to Regime#],[Including Units 1=yes,0=no])
11) ExecMessage([Regime1],[Regime2],[Overwrite scndesc >0=yes],[Event Pic Nr (-1=none)]) : if reg1=-1 and reg2=-1 then message is send to all regimes.
12) BlockEvent()
13) ExecChangeRegimeName([Regime#])
14) ExecJoinArea([Areaslot# (0-9)],[Areacode],[To Regime#],[Units flee too areacode (-1=destr,-2=keephex)]) : All units not allied with the new owner will be either flee or be destroyed or removed or keep hex.
15) ExecDisbandUnits([Regime#],[People#])
16) ExecChangeDipBlock([Regime#])
17) ExecDoStructuralDamage([x],[y],[damage pts]) : If you give negative ammount of points it is handled as a repair
18) ExecSetLandscape([X],[Y],[New LT#])
19) ExecSetSprite([X],[Y],[New Sprite#])
20) ExecSetSlot([X],[Y],[AreaSlot],[AreaCode])
21) ExecChangePeopleCombatMod([People#],[PeopleGroupOwner#],[New Combat Mod in %])
22) ExecMoveTypeModifier([MoveType#],[Percentage of normal movecost (100%=normal)])
23) ExecUnitTypeModifier([UnitType#],[Percentage of normal combat att/def (100%=normal)])
24) ExecWheaterColor([Red Component (0=no change, 255=full)],[Green Component (0=no change, 255=full)],[Blue Component (0=no change, 255=full)]) : Changes the colour of the prehex sprite. But only of its core sprite not if its optional 64 border sprites.
25) ExecChangeRiver([X],[Y],[From River #],[Too River #])
26) ExecChangeRoad([X],[Y],[From Road #],[Too Road #])
27) ExecChangeBridge([X],[Y],[Direction = 0(North),1,2,3,4,5(NorthWest)],[-1=no bridge, >=0 = bridge])
28) AI_SetAIVP([X],[Y],[Regime Nr#],[AIVP amount. 0(none) - 999])
29) ExecChangeLocationType([X],[Y],[Loctype (-1=remove any location)],[People #])
30) ExecGiveSupply([X ],[Y],[Supply Points to the top hq of the closest hq to x,y],[Overrule recipient regime with regime #]) : Overule recipient is inactive if put to 0. If no overrule the supplies are given to closest unit owned by regime that owns hex. But >0 is overrule 1=reg 0, 2=reg1 !!!! This +1 shift is inhere to keep backwards compatible with AdvTactics scenarios.
31) ExecSetRuleVar([Rulevar # ],[New Value],[Behind comma... 0=no action.. >0=divide new value by 100 to set a decimal.])
32) ExecChangePeople([X],[Y],[Changes the people at location x,y])
33) ExecGiveReinforcement([X],[Y],[Predef# to use],[Multiplier])
34) ExecGiveActionCard([Card Nr],[Regime Nr])
35) ExecReduceReadiness([Regime Nr (-1=all)],[People Nr (-1=all)],[%rdn loss],[%chance per unit])
36) ExecAddHistoryActionCard([Card Nr],[Regime Nr])
37) ExecRemoveHistoryActionCard([Card Nr],[Regime Nr])
39) ExecLTReduceReadiness([Regime Nr],[People Nr (-1=all)],[%rdn loss],[LandscapeType Nr])
40) ExecLTReduceMorale([Regime Nr],[People Nr (-1=all)],[%mor loss],[LandscapeType Nr])
41) ExecSetItemCost([ItemType Nr],[Set Prod Cost])
42) ExecSetBaseMorale([Regnr],[Basemorale]) : Not only sets base morale of regime, but also of unterregimes to the same as well as reducing all morale of all units with the same percentual ammount as the basemorale lost.
43) ExecChangeVP([X],[Y],[new VP amount. 0(none) - 999])
44) ExecRemoveActionCard([Card Nr],[Regime Nr])
45) ExecAIConservative([Regime Nr],[Convervative.. 100% = normal >100% more defensive. <100 more aggressive])
46) ExecPlayActionCard([Regime Nr],[Action Card Nr])
47) ExecExecuteEvent([Event Nr]) : IS DEPRECIATED BY CallFunction. tempvar 0,1,4,5 are passed on (but not returned).
48) ExecActionCardName([Actioncard Nr])
49) ExecActionCardPPCost([Actioncard Nr],[New PPCost (-1 = keep same)],[PPCost absolute increase or decrease (0=no change)],[PPCost % increase or decrease (0=no % change)])
50) ExecReplaceLandscapeSprite([Landscape nr]) : Actually loads a new PreHex graphic from the graphics directory.
52) ExecMutateSFType([AreaSlot],[AreaCode],[From Sftype#],[Too Sftype# (-1=remove)]) : After completion sets # of changed individuals in tempvar[999].
53) ExecSingleMutateSFType([AreaSlot],[AreaCode],[From Sftype#],[Too Sftype# (-1=remove)]) : Note: Currents turn units take precedence
54) ExecSingleMutateSFTypeXY([X],[Y],[From Sftype#],[Too Sftype# (-1=remove)]) : Note: Currents turn units take precedence
55) ExecAntiSupplyRangeMod([MoveType#],[Percentage of current AP (100%=normal)])
56) ExecChangePeopleCombatModVS([People#],[Versus PeopleGroupOwner#],[New Combat Mod in %])
57) ExecRemoveTroops([X],[Y],[SFType group],[Percentage to remove])
58) ExecRemoveTroopsByPeople([X],[Y],[specific people #],[Percentage to remove])
59) ExecRemoveTroopsByLowMorale([X],[Y],[Morale =< then],[Percentage to remove])
60) ExecSetLabel [old]([X (tempvar999>0 overwrites datastring)],[Y],[Type (0-10)],[Slot (1-2)]) : If there is a value > 0 in tempvar999 it is ammended to the end of the string.
61) ExecReadinessLossByArea([Areaslot],[Value of slot],[Readiness loss],[Chance to lose this (x%)])
62) ExecOffensiveMod([X],[Y],[SfTypeGroup# (-1=all)],[Absolute Modifier (0=none, -50 = -50%, +50 = +50%)])
63) ExecDefensiveMod([X],[Y],[SfTypeGroup# (-1=all)],[Absolute Modifier (0=none, -50 = -50%, +50 = +50%)])
64) ExecOffensiveModByPeople([X],[Y],[People# (-1=all)],[Absolute Modifier (0=none, -50 = -50%, +50 = +50%)])
65) ExecDefensiveModByPeople([X],[Y],[People# (-1=all)],[Absolute Modifier (0=none, -50 = -50%, +50 = +50%)])
66) ExecOffensiveModByRegime([Regime # (-1=all)],[People # (-1=all)],[SfTypeGroup# (-1=all)],[Absolute Modifier (0=none, -50 = -50%, +50 = +50%)])
67) ExecDefensiveModByRegime([Regime # (-1=all)],[People # (-1=all)],[SfTypeGroup# (-1=all)],[Absolute Modifier (0=none, -50 = -50%, +50 = +50%)])
69) ExecLoad_UnitTransfer([Regime # ],[AreaSlot #],[Max Per Hex])
72) ExecAreaSpreadOut([AreaSlot # ],[Divideby ])
73) ExecSetLoctypeDestruct([LocType#],[LandscapeType#],[Sprite #])
74) CheckPreDef([Predef#]) : Returns unit# of this predef ID#.
76) ExecCopyActionCard (+Set Name)([From#],[Too#]) : If the Too# specified is a slot higher then existing number of actioncards, the number of actioncards slots will be extended
77) ExecSetActionCard (+Set Text)([Card#],[TempVar0],[TempVar1],[EventPic#])
79) ExecGetReconFrom([From Regime#])
80) ExecAddExperience([People# (-1=all)],[Points to add (+/-)],[Minimum XP],[Maximum XP])
81) ExecMaxResearch() : Every Suformation thats not in a predef unit that can upgrade if its regime has the research will upgrade
82) ExecHexActionCard([X],[Y],[ActionCard# (-1=no actioncard)]) : Will place an action card on the hex in question. The card is executed immediatly upon the player conquering the hex. And will cause a popup to appear immediatly (if message used) Only if hex is conquered by combat or direct move in. So always place on locations because they cannot be conquered by ZOC. If an AI regime takes the card it cannot load a new game, select a unit or a hex.
83) ExecSetHistoricUnitMove([Historic HQ #],[Defend Defined Area #],[Attack Defined Area #],[Stance (1=def,2=norm,3=att)])
84) ExecChangeAIPower([Regime],[X],[Y],[Power Points]) : If positive power points given it is meant to help influence the behaviour of the AI. This way you can set reinforcements to a certain regime in the area that hex x,y is in. But you can also use this function to set negative powerpoints versus a regime to simulate immediate pressure and force the AI to keep a certain reserve in the area.
89) ExecPlayEventWav() : Adds a sound file from the sound directory to the next ExecMessage, it will be played when the message is actually shown. So the effect is synchronized.
90) ExecLoadCampaignRoomBackground([Event Picture# to be used])
91) ExecSetCampaignRoomTitle()
92) ExecPlayEventBackgroundWav() : Loads the sound file from the sound directory and plays it immediatly.
93) -DEPRECIATED- ExecHistoricalUnitForAddUnit([Historical Unit#],[Copy? (1=yes,0=no)],[Number (only if copy)],[NATO counter # (only if copy, <1=keep same)]) : You should use ExecAddHistoricalUnit instead. Old description: If you want added units to be linked to a historical unit you have to call this exec before you call the addunit. If you make a copy, we'll use the given historical unit as a template but change its name to number + string. By putting a ',' in the string you can then specify the shortname. The shortname is always number+string. Once set it stays valid till changed or end of event in which it is declared.
94) ExecSetAI([Regime #],[AI (1=yes,0=no)],[ProdBonus(0,100,250)]) : If you want to set a regime to AI player or make an AI a human player.
95) ExecUnitRdnModify([Unit #],[Absolute modifier pts +/-],[People (-1=all)],[SFTypeGroup (-1=all)]) : Change stats of subformations in a specified unit.
96) ExecUnitMorModify([Unit #],[Absolute modifier pts +/-],[People (-1=all)],[SFTypeGroup (-1=all)]) : Change stats of subformations in a specified unit.
97) ExecUnitXpModify([Unit #],[Absolute modifier pts +/-],[People (-1=all)],[SFTypeGroup (-1=all)]) : Change stats of subformations in a specified unit.
98) ExecUnitApModify([Unit #],[Absolute modifier pts +/-],[MoveTypeGroup (-1=all)],[SFTypeGroup (-1=all)]) : Change stats of subformations in a specified unit.
99) ExecUnitGiveTroops([Unit #],[Predef Unit#]) : Add all troops in PreDef unit to this Unit.
100) ExecUnitOffensiveBonus([Unit #],[Absolute modifier pts +/-],[People (-1=all)],[SFTypeGroup (-1=all) (>=100 = specific sftype -100)]) : Change stats of subformations in a specified unit. If you set modifier to 0 it resets the offmod to 0. Each point is a percentage point. If you specify a sftypegroup >=100 then you are actually specifiying a specific SFType Nr.
101) ExecUnitDefensiveBonus([Unit #],[Absolute modifier pts +/-],[People (-1=all)],[SFTypeGroup (-1=all) (>=100 = specific sftype -100)]) : Change stats of subformations in a specified unit. If you set the modifier to 0 it resets the defmod to 0. Each point is a percentage point. If you specify a sftypegroup >=100 then you are actually specifiying a specific SFType Nr.
102) ExecUnitSelectable([Unit #]) : The specified unit will now be selectable in the 'select a unit' popup screen. Use this exec in a pre-event from an actioncard.
103) ExecSetMessageStyle([Message Style (0,1,2)]) : The specified style will be used for the remainder of this event. 0=normal. 1=black, 2=text cloud+black. It also allows you to set an optional footnote (messageNote1). only shown in style 1 + 2. Directly under the main message in italics.
104) ExecSetMessageNote2() : Sets a string for underwriting of picture of character with text cloud. Shown in style 2.
105) ExecChangeRelation([RegimeNr1],[RegimeNr2],[Diplomatic Relation #],[Hide Message (1=yes hide)]) : Sets the relation between regime 1 and 2 to relation 0-2. 0=war, 1=peace, 2=allied.
106) ExecAddRegime([Copy From],[Set Uberregime]) : EXPERT USE ONLY!!!. Only use before start of game. Adds a regime and copies all settings from specified reigme. You can also set name of new regime. You can also set an uberregime here. Automaticly will ally with uberregime.
107) ExecRemoveRegime([RegimeNr],[Add stuff too RegimerNr]) : EXPERT USE ONLY!!!. Only use before start of game. You can set RegimeNr to -1 and then the exec will try to find a regime with the specified name to delete.
108) ExecAddOOB([Regime],[Historical Unit]) : Sets the historical unit to the regime and also everything in the OOB of the selected historical unit.
109) ExecSetRegimeColor([Regime],[Red (0-255)],[Green (0-255)],[Blue (0-255)]) : Sets the color of the regime. And you can overwrite the Name if you want too. Leave string blank to keep name.
110) ExecAddHistoricalUnit([X],[Y],[Historical Unit],[Dispersion in Hex]) : If Historical unit is a Model an instance of it will be created. If it is not it will be put on the map itself. If you set Dispersion to 0 all will go normal. Set dispersion>0 to simulate scatter effect on same sea/land type and regime type as selected for target hex.
111) ExecRemoveHistoricalUnit([Historical Unit]) : All units assigned to this exact Historical Unit will be removed.
112) ExecSetGameVar([GameVar #],[New Value])
113) ExecSetTempVar([TempVar #],[New Value])
114) ExecSetRegimeVar([Regime #],[Variable #],[New Value])
115) ExecSetTempString([Tempstring #],[New Value])
116) ExecSetStringList([Stringlist ID #],[Row],[Col],[New Value])
117) ExecMoveRegimeUp([RegNr]) : EXPERT USE ONLY!!!. You can overrule with using name and setting Regnr=-1. Moves this regime to the end of the list of regimes. Do only use in editor or startup screen for it might screw up things if used in game.
118) ExecSetRecon([X],[Y],[RegNr],[Pts]) : Sets recon for this regime only on this hex only.
119) ExecChangeCommanderSkill([Unit#],[CombatMod +/-],[MoraleMod +/-],[StaffPts +/-]) : Inrease or diminish the officers stats.
120) ExecChangeCommanderTemp([Unit# (-1= use hist.unit#)],[TempVar#(1-5)],[New Value],[Use Historical Unit#])
121) ExecChangeCommanderDescript([Unit#],[New Description])
122) ExecChangeCommanderOverlay([Unit#],[New overlay filename]) : Reloads the overlay file for this commander. specifying an empty string '' will result in no overlay
123) ExecCommanderAddDeckCardUsingStringList([Unit#],[StringList CardList ID#]) : Picks a weighted chance card from the stringlist in question. will not take doubles. will add text to description
124) ExecCommanderAddAutoEventUsingStringList([Unit#],[StringList EventList ID#]) : Picks a weighted auto-event from the stringlist in question. will not take doubles. will add text to description
125) ExecAddStringList([Rows],[Cols]) : Adds a whole new stringlist object to the game data. Use the CheckStringListLastID to get its ID, which you need to change or read anything from it.
126) ExecAddStringListCells([StringList ID],[Extra Rows],[Extra Cols]) : If you specify 0 will NOT add anything. specify 1 for adding one row or col. You can add rows and cols at the same time. Rows are added at the bottom, Cols on the right.
127) ExecRemoveStringListRow([StringList ID],[Row Number])
128) ExecRemoveStringListCol([StringList ID],[Col Number])
129) ExecChangeAIDefensive([Regime],[X],[Y],[Defensive Bonus %]) : >0 is a percentual defensive bonus for defending this area for this regime. NEW AI ONLY
130) ExecGiveCommanderXP([Unit#],[XP to give or take +/-])
132) ExecMoveUnit([Unit #],[New X],[New Y]) : Keep in mind combat can occur immediatly after the move. Rebel Battle Mode will be used.
133) ExecChangeUnitRegime([Unit #],[New Regime#]) : Keep in mind combat can occur immediatly after the move. Rebel Battle Mode will be used.
134) ExecChangeLandscapeMoveCost([Landscape #],[MovementType #],[AP Cost])
135) ExecModifyHitpoints([SFType # (-1=all)],[SFTypeGroup # (-1=all)],[Modifier (100=same, 50=half, 200=double) #])
136) ExecModifyAirOverrule([SFType # (-1=all)],[SFTypeGroup # (-1=all)],[Modifier (100=same, 50=half, 200=double) #])
137) ExecModifyEntrenchmentSpeed([SFType # (-1=all)],[SFTypeGroup # (-1=all)],[Modifier (100=same, 50=half, 200=double) #])
138) ExecModifySupplyStock([SFType # (-1=all)],[SFTypeGroup # (-1=all)],[Modifier (100=same, 50=half, 200=double) #])
139) ExecModifyAttackScore([SFType # (-1=all)],[SFTypeGroup # (-1=all)],[Versus SFTypeGroup # (-1=all)]) : Modifies AttackArt,AttackPower,AttackPowerDef all 3.
140) ExecModifyUnitSupply([Regime (-1=none)],[Specific Unit (-1=none)],[Modifier % (100=keep same, 50=half, 200=double)],[Modifier absolute (0=nill, -x , +x )]) : Increases or decreases supplies of the unit. cannot go over max supplystore.
141) ExecRemoveUnits([Regime #])
142) ExecLoad_HistoricalTransfer([Regime # ])
143) ExecRemoveTroopsByReinforcementGroup([X (-1 = from unit)],[Y (or unit #)],[Reinforcement group],[Percentage to remove])
144) ExecChangeCommander([Unit#],[Historical Unit#]) : Replace the commander with that from a historical unit.
145) ExecSetSupplyMatrix([Source X],[Source Y],[AreaSlot #],[Regime #]) : Sets movecost value on each hex. if not in supply value will be set to 9999. It will not overwrite a lower value with a higher value. So make sure you set the areaslot matrix to 9999 before you call. this is done to allow multiple sources for making the matrix.
146) ExecClearMatrix([AreaSlot #],[Value]) : Sets the specified slot for all hexes to specified value
147) SetUberRegime([ForRegime],[UberRegime (-1=none)])
148) SetCardXY([X],[Y]) : If you are calling a card who needs a hex input. set it with this exec.
149) ExecRemoveTroopsForNextHistorical([Reinforcement group],[Loss %]) : For each event you have to set the loss levels. These values are reset per event. If set any unit added with AddHistorical will suffer these losses.
150) ExecSetHistoricalCounter([Historical Unit],[New Counter Value])
151) ExecSetHistoricalUnitHQ([Historical Unit],[New unit # HQ],[Historical Unit # HQ]) : Sets all units that belong to this historical unit to the unit or historical unit HQ # specified.. Historical <= 0 means unit is used.
152) ExecAddAntiSupply([X],[Y],[Regime],[Points]) : Must be used in early turn check in order to be used after regular setting of AS and before Supply system...
153) ExecChangeDate([Day],[Month],[Year])
154) ExecQuit() : Quits the player back to the main menu. Can only be played from the research hand cards screen!
155) ExecAIStance([Regime],[Stance (0=no overrule, 1=att, 2=def, 3=meeting)]) : If 0 the regime with most powerpoints is considered the attacker. If 3 too, but if 3 then this regime also gets the meeting flag.
156) ExecReduceLandInitialEntrench([LandscapeType (-1=all)],[Percentage (100=same. 50=less >100=more)])
157) ExecSetSpecial([SpecialType],[SpecialSprite],[X],[Y])
158) ExecReduceAntiStructural([SFType (-1=all)],[Percentage (100=same. 50=less >100=more)])
159) ExecReduceTroops([SFType (-1=all)],[PeopleType (-1=all)],[Remove x%],[+ remove between 0-y% random])
161) ExecSFTypePower([SFType],[Targetgroup# (-1=all)],[Attack score],[Defend score])
162) CallFunction([Name of function to call]) : Case of name does not matter, but must be exact otherwise. The tempvar900-999 and tempstring900-999 will be copied to the receiving function and can be altered by it and will be returned back to the calling function. this way you dont have to use gamevars like in ExecExecute. (You can use these call by name feature to make functionlibs that can be loaded by import all). Tempvar 0,1,4,5 are copied to called function, but not back again.
163) ExecSFTypeDescription([SFType#],[Description])
164) ExecSFTypeHP([SFType],[Targetgroup# (-1=all)],[Attack HP],[Defend HP])
165) ExecSFTypeMoveType([SFType#],[Type])
166) ExecSFTypeMoveRedux([SFType#],[Redux])
168) ExecSFTypeLogo([SFType#],[Logo#],[value])
170) ExecSFTypeFuelUse([SFType#],[ForMove (10ap)],[ForAttack (combatround)])
171) ExecSetRegimePeople([Regime# ],[People # (or -1=to leave as is) ],[officerpool # (or-1=to leave as is)])
172) ExecSetHQ([Unit],[HQ])
173) ExecSetMatrix([Slot],[Operation],[Disallow over sea (0=no, 1=yes)]) : You cannot set operation yet. For now it just subtracts 1 of the value and copies if higher then neighbour. Thus make sure to make a clearmatrix(0) and then set coordinates you want to spread out.
174) ExecSetHexOwner([X],[Y],[Owner #])
175) ExecRewardPowerOn([X],[Y],[Power Above],[Multi]) : If AI can get more then power above on X,Y coordinate. all pts above this treshold will be multiplied by multi and added to score. This gives AI incentive to get a certain build up here. so it must be able to hold it to get it.. This is only used in Init AI so if you use uberregime only the uberregime needs this setting. This setting is wiped clean after every AI has played. You thus need to set this in early turn event.
176) ExecRemoveunit([Unit #]) : Removes specific Unit
177) ExecSetTurnString([Short String]) : if you set it to '' then it will not overrule the date or round. Keep the string short to make it fit.
178) ExecSetRound([Round]) : Do not use! It will screw with the statistics. Never set higher. You can only set lower then current round.
179) ExecSortStringListID([Column# to sort on],[]) : Remember first column is column 0. Highest ends at bottom, lowest at top.
180) ExecChangeUnitEntrenchment([Unit#],[-/+ entrenchment pts]) : Will auto cut at 0 or maximum entrench for sftype in hex..
181) ExecSetSFTypeVar([SFType],[Var#],[Value])
182) ExecSetHistoricUnitToGroup([Historic HQ/Unit/Div #],[To Group with HQ/Unit/Div# in it]) : This should be called in an 'AI Init Check' since it re-orders strategic groups (after makegroups) and before going into strategic analysis (findbeststrategy).
183) ExecMoveHistoricalUnit([Historical Unit #],[New X],[New Y],[Optional Historical HQ #]) : If you specify >0 for optional HQ all units attached to the HQ will be moved. you can specify -1 for historical unit if you specify hq.
185) ExecSetUnitName([Unit#],[New Name],[]) : Will set name of all belonging to units historical unit if using historical units. Shortname is only applied if historical unit is present.
186) ExecDateMode([0=rounds, 1=dates],[days per round])
187) ExecUnitPeopleModify([Unit #],[Change People# (-1=all)],[Too People#]) : Change the people in the unit.
188) ExecSetUnitSelected([Unit #]) : Set the unitselected. -1= no unit selected.
190) ExecAICombatMoveMod([Regime #],[Combat Bonus],[Movement Bonus]) : Combat bonus can be everything between 0-999%, movement bonus between 0-100%.
191) ExecAIChangeRoleScore([SFType #],[AI Role # (0-49)],[New score]) : Allows you to change AI role scores ingame so to influence AI production
192) ExecReloadGraphic([Current filename],[New filename]) : expert use only. part or whole of filename (current filename) is looked for in all loaded graphics and replaced by new filename. use only the filename itself like 'background2.png' for the file to be replaced. use only filename like 'background2b.png' for the string that replaces it.
193) ExecAIProductionResourceComplient() : Will call the AI function that makes sure that production is research complient. If rulevar(875) is active this is called by AI after setting production. However if you script the production with events you might want to call this function add the end of that scripting in some scenarios or give the AI unlimited resources instead.
194) ExecChangeDipOffer([RegimeNr1],[RegimeNr2],[Diplomatic Offer # (0=none or 1=offer)]) : Does not give message. You have to that manually. Sets the offer mode to either 0= cancel offer or 1=give offer
197) ExecSetLabel([X ],[Y],[Type (0-10)],[String]) : Slot 1 is always used. Auto complete is used and name can stretch several hexes.
198) ExecClearAllLabels()
199) ExecMutateRandomSFType([People (-1=all)],[Random percentage],[From Sftype#],[Too Sftype# (-1=remove)]) : The random percentage determines ammount of sftype to mutate. After completion sets # of changed individuals in tempvar[999].
200) ExecRemoveTroopsGlobal([SFType group (-1=all)],[People (-1=all)],[Reinforcement Type (-1=all)],[Percentage to remove]) : Remove percentage is not exact in this function... its the chance for each individual that it will be removed. If it is set to 999 empty HQ units will also be removed. If not only empty normal units will be removed.
201) ExecGiveReinforcement2([SFType#],[People#],[Experience],[Multiplier]) : Uses SetCardXY for coordinate to drop troops input.
202) ExecSetMoveMatrix([Source X],[Source Y],[AreaSlot #],[MoveType #]) : Sets movecost value on each hex for specified movetype. if not reachable will be set to 9999. It will not overwrite a lower value with a higher value. So make sure you set the areaslot matrix to 9999 before you call. this is done to allow multiple sources for making the matrix. The matrix is calculated for the regime that owns the hex.
203) ExecSetHisVar([His.Unit ID#],[Type #],[Value],[Nato Counter (0= do not set)])
204) ExecRemoveHisVar([His.Unit ID#],[Type #])
205) ExecCommanderAddDeckCard2([Unit# (or -1)],[Historical Unit# (or -1)],[DeckCard#],[Percentage Chance % (or -1,-2,-3,-4,-5,-6)]) : Either specify a normal unit# or a historical unit#. If instead of percentage you specify -1 your remove specified card if present, if you specifify -2 you remove all deck cards. if you specify -3 you'll remove all hand cards and all deck cards. If you specify -4 you'll only remove the hand card and not the deck card. If specify -5 you will not add any card but if the card is present set its chance to 0%. If -6 then you will also not add a card but if card is present set its chance to 100%.
206) ExecCommanderAddAutoEvent([Unit#],[AutoEvent#],[Percentage Chance %])
207) ExecSetReconUnit([X],[Y],[RegNr],[Recon points]) : Sets recon for this regime only on this hex and all its neighbours up to range. Uses the ammount of recon points the specified unit# has.
208) ExecCommanderPool([Historical unit #],[In Pool? 1=yes, 0=no])
209) ExecClearCommander([Historical Unit# (or -1)],[Clear HandCards (1=yes)],[Clear DeckCards (1=yes)],[Clr Events,StaffSiz,Mormod,combatmod (1=yes)]) : Allows you to clean all cards & events associated with a historical unit.
210) ExecChangeCommanderSkill2([Historical Unit#],[CombatMod],[MoraleMod],[StaffPts]) : Same as other function. But here the historical unit# instead of the unit# is targeted. And the setting is absolute not +/-.
211) ExecSwitchUnitModel([Unit#],[To Model ID#],[Change name as if new unit 0=no ,1=yes]) : This function will attempt to change the whole historical unit# of unit# to a new model and will implement the changes immediately. A new name will be also be given if specified so.
212) ExecClearStringList([Stringlist ID #]) : Delets all rows of this stringlist.
213) ExecSetPeopleMorale([People #],[Under People Group#],[New Morale],[Reset all troops 0=no,1=yes]) : Reset=1 sets all morale to regime base morale * people morale as if in start of scenario.
214) AI_SetTacticalScript([Historical Unit ID#],[Hex Target X],[Hex Target Y],[Attack Towards (1-6) -1=no attack])
215) ExecActionCardText([Actioncard Nr],[New Title],[New Text on card]) : The difference with ExecActionCardName is that you can here also set the text on the card + input can be done with tempstrings with this exec
216) ExecSetUnitCapacityPoints([Unit#],[LandCap Pts +/-],[RailCap Pts +/-],[]) : Allows you to remove or add capacity points to a unit. Use in late turn so the unit Cap point gain has already been processed before use of this exec.
217) ExecRemoveTroopsUnderHistorical([SFType group (-1=all)],[Historical Unit],[Reinforcement Type (-1=all)],[Percentage to remove]) : Remove percentage is not exact in this function... its the chance for each individual that it will be removed. Compared to its namesake exec this one only affects units under command of the historical unit (HQ!) specified. Only units directly under the historical unit are affected and HQs are always excluded. (if you want to set the HQs you'll have to do it manually)
218) ExecSetHistoricalUnitOwner([Old owner #],[New owner #])
219) ExecSetPbemPlayer([Regime #],[PBEM++ Player number #]) : Expert use only!. You can switch PBEM++ player here. only set to 1=player 1(challenger) or 2=player 2(opponent).
220) ExecSetDrawGame() : When this is set the game will be considered game over by the PBEM++ server and a draw game at it. Same for non PBEM++ games by the way.
221) ExecRemoveSupplyUnderHistorical([Historical Unit],[Percentage of supply to leave],[New Supply Consumption % (normal is 100%)]) : this one only affects units under command of the historical unit (HQ!) specified. Only units directly under the historical unit are affected and HQs are always excluded. (if you want to set the HQs you'll have to do it manually)
222) ExecSetInterceptRdnStop([For Regime (-1=all)],[Percentage for intercept]) : Only affects units with air units in them. percentage example: 75 means only at 75% rdn.
223) ExecSetHistoricalUnitMaxRecruit([ID#],[MaxRecruit#(-1=unl,0=none)]) : A function that allows you to change the max recruit
224) ExecSetHistoricalUnitType([ID#],[Type#(5=corps,6=a,7=ag,8=high)]) : A function that allows you to change the type. this is usefull to make 1st panzer army immobile and the sov front too.
225) ExecChangeDateAdd([add x Day],[add x Month],[add x Year])
226) ExecSetAllUnitReady([regime. -1=all]) : Sets all units with max supply, ap and readiness.
227) ExecRemoveActiveOfficersFromStringlist([regime#],[stringlist ID]) : Looks up the officer historical ID in column 0 and sets availability to 0 in column 1. Active officers are officers that are in the pool or on the map in a unit.
228) ExecMutateRandomSFTypeUnderHis([HistoricalID],[Random percentage],[From Sftype#],[Too Sftype# (-1=remove)]) : The random percentage determines ammount of sftype to mutate. After completion sets # of changed individuals in tempvar[999].
229) ExecRemovePeopleOfficersFromStringlist([people#],[stringlist ID]) : Looks up the officer historical ID in column 0 and sets availability to 0 in column 1 if the officer has specified people#.
230) ExecRemoveFromOfficerPool([regime# (-1=all)],[people# (-1=all)],[VarType (-1=ignore condition)],[=VarQty]) : Removes any officers from the officerpool of specified regime who has the specified characeristics. You can deted vartype = varqty to tailormake catch a specific officer.
231) ExecModifyStockpiles([Under Historical Unit#],[Modifier (100=same, 50=half, 200=double) #]) : The function will cap at maximum stockpiles. So you can specify 999 or more modifier to give unit max. and 0 to set stockpile to nothing.
Visit www.vrdesigns.net for the latest news, polls, screenshots and blogs on Shadow Empire, Decisive Campaigns and Advanced Tactics
User avatar
Keunert
Posts: 885
Joined: Thu Sep 09, 2010 5:58 am
Contact:

RE: Is there a scripting doc?

Post by Keunert »

^looks like fun [X(]
User avatar
Blond_Knight
Posts: 998
Joined: Sat May 15, 2004 3:52 am

RE: Is there a scripting doc?

Post by Blond_Knight »

Thanks Vic.

Heres a very rough pdf of Vic's response and examples from his blog:
Unofficial scripting doc
User avatar
Redmarkus5
Posts: 4454
Joined: Sat Dec 01, 2007 1:59 pm
Location: 0.00

RE: Is there a scripting doc?

Post by Redmarkus5 »

This is what halted my efforts to develop a new scenario... map, modded graphics, SFTs and OOB = no problem. Then I opened up the Events and...!!!
WitE2 tester, WitW, WitP, CMMO, CM2, GTOS, GTMF, WP & WPP, TOAW4, BA2
alex0809
Posts: 82
Joined: Tue May 15, 2012 4:52 pm

RE: Is there a scripting doc?

Post by alex0809 »

I think the ingame documentation is very helpful, though. And most of the execs are self-explanatory. It's just a question of finding what you need mostly.
Plainian
Posts: 208
Joined: Fri Sep 22, 2006 2:45 pm
Location: Dundee in Scotland

RE: Is there a scripting doc?

Post by Plainian »

Had a quick look at the execs and checks but couldn't quite see what I'm looking for. Is it possible to add a breakdown/recombine type of option in the game?

Say you decide to go for a Divisional level mod where basic unit is Divisions for both sides(apart from German/Soviet Mech/Tank units) but you want the Germans to have some kind of breakdown ability for their Infantry Divisions so that they can remove the Division unit and replace it with 3 Rgt sized units.....is this possible?

So it would be play a card - Check strength of unit - remove unit - add to map 3 units each 1/3 strength of 1st unit - card is recycled and available for play next turn?

User avatar
Captain Cruft
Posts: 3636
Joined: Wed Mar 17, 2004 12:49 pm
Location: England

RE: Is there a scripting doc?

Post by Captain Cruft »

CHECK reads game state.
EXEC writes game state.
Reverse Polish arithmetic.
Self-documenting functions.

It's easy and very difficult at the same time. You have to just fool around and see what happens basically.

I would have preferred a Python API or something (with proper text editing), but compared to every other wargame out there it's totally stupendous. It's open not closed, and there are no proprietary impediments, just practical ones ;-)
bwheatley
Posts: 3654
Joined: Mon Dec 13, 2004 4:08 pm
Contact:

RE: Is there a scripting doc?

Post by bwheatley »

ORIGINAL: Captain Cruft

CHECK reads game state.
EXEC writes game state.
Reverse Polish arithmetic.
Self-documenting functions.

It's easy and very difficult at the same time. You have to just fool around and see what happens basically.

I would have preferred a Python API or something (with proper text editing), but compared to every other wargame out there it's totally stupendous. It's open not closed, and there are no proprietary impediments, just practical ones ;-)


A python API would make me a happy boy..but since this is vb.net even a vb script api would be nice. :) But yea it's a great editor.
-Alpha Tester Carrier Force
-Beta Tester ATG
- Mod Maintainer (past) for ATG's WAW mod
- Mod Maintainer (past) for ATG's GPW mod
-Beta Tester WITE
-Alpha Tester WITW
-Alpha Tester WITE2
-Alpha Tester Wif
-Beta Tester Command
bwheatley
Posts: 3654
Joined: Mon Dec 13, 2004 4:08 pm
Contact:

RE: Is there a scripting doc?

Post by bwheatley »

ORIGINAL: Plain Ian

Had a quick look at the execs and checks but couldn't quite see what I'm looking for. Is it possible to add a breakdown/recombine type of option in the game?

Say you decide to go for a Divisional level mod where basic unit is Divisions for both sides(apart from German/Soviet Mech/Tank units) but you want the Germans to have some kind of breakdown ability for their Infantry Divisions so that they can remove the Division unit and replace it with 3 Rgt sized units.....is this possible?

So it would be play a card - Check strength of unit - remove unit - add to map 3 units each 1/3 strength of 1st unit - card is recycled and available for play next turn?


I don't think so the limitations are based on the OOB setup. But there is the changel model command which lets you go from 1 OOB to another as long as the 2nd has the same # of parts or more.

So you could in theory have a Corp Unit that is 3 divisions then have the unit change to Regimental so the 3 division would turn into 9 regiments but that is one way you can't go back. Well i mean you could with events but what a pain in the ass it would be.
-Alpha Tester Carrier Force
-Beta Tester ATG
- Mod Maintainer (past) for ATG's WAW mod
- Mod Maintainer (past) for ATG's GPW mod
-Beta Tester WITE
-Alpha Tester WITW
-Alpha Tester WITE2
-Alpha Tester Wif
-Beta Tester Command
bwheatley
Posts: 3654
Joined: Mon Dec 13, 2004 4:08 pm
Contact:

RE: Is there a scripting doc?

Post by bwheatley »

To put this someplace that it should be i added it to the AT/DC wiki
-Alpha Tester Carrier Force
-Beta Tester ATG
- Mod Maintainer (past) for ATG's WAW mod
- Mod Maintainer (past) for ATG's GPW mod
-Beta Tester WITE
-Alpha Tester WITW
-Alpha Tester WITE2
-Alpha Tester Wif
-Beta Tester Command
bwheatley
Posts: 3654
Joined: Mon Dec 13, 2004 4:08 pm
Contact:

RE: Is there a scripting doc?

Post by bwheatley »

Four games into the engine we need to start keeping the wiki upto date so we stop asking the same questions.
Let me know if anything needs to be updated or let anyone else with write access to the wiki know.
-Alpha Tester Carrier Force
-Beta Tester ATG
- Mod Maintainer (past) for ATG's WAW mod
- Mod Maintainer (past) for ATG's GPW mod
-Beta Tester WITE
-Alpha Tester WITW
-Alpha Tester WITE2
-Alpha Tester Wif
-Beta Tester Command
User avatar
Strategiusz
Posts: 237
Joined: Sat Sep 13, 2008 10:46 am
Location: Upper Silesia, Poland
Contact:

RE: Is there a scripting doc?

Post by Strategiusz »

181) ExecSetSFTypeVar([SFType],[Var#],[Value])

What does it do? What is Var#?
User avatar
Vic
Posts: 9284
Joined: Mon May 17, 2004 2:17 pm
Contact:

RE: Is there a scripting doc?

Post by Vic »

@All,

Keep in mind that DC:Case Blue players now together with DC:Barbarossa have access to the DC:Community Project.
(it will eventually also be extended to DC1 owners)

The DC:Community Project is fully documented and is much easier to use to create your own scenarios.

For more info hop and downloading it hop over here:

http://www.vrdesigns.net/?page_id=1331

Best wishes,
Vic
Visit www.vrdesigns.net for the latest news, polls, screenshots and blogs on Shadow Empire, Decisive Campaigns and Advanced Tactics
Post Reply

Return to “Mods and Scenarios”