Map making

Moderators: GSH, VSMIT, Red Devil, Commando

Post Reply
Jackal-Ita
Scrap
Posts: 5
Joined: Mon Mar 19, 2012 4:53 pm

Map making

Post by Jackal-Ita »

Hey all, I'm new here!
I want try to make a map, but trying it I have various problems..
Can someone give me ( or create ) a link/guide "for dummies" that explain how to create maps? Thank you :D
Jackal-Ita
Scrap
Posts: 5
Joined: Mon Mar 19, 2012 4:53 pm

Re: Map making

Post by Jackal-Ita »

Thanks, but for make one MPI or IstantAction what I have to do? I tryed, but I have problems with the recyclers.
User avatar
Zero Angel
Attila
Posts: 1536
Joined: Mon Feb 21, 2011 12:54 am
Contact:

Re: Map making

Post by Zero Angel »

What I suggest you do, is take a look at an existing MPI map and then copy the design from that.

If you havent set the map's DLL yet, you really should. In the editor there is a button called 'Path', make sure the text box has MPInstant.dll if you want your map to be an MPI Map.

That's not all, though. If you're making an MPI or IA, you need to add components called 'path points', which tell the game where to spawn the enemy recycler, as well as preplaced turrets and other things.

To do this, you need to go into the 'path editor' view by holding down [shift] and pressing [F9]. Then you need to press [1] to select the path editor mode, and then [2] to go into 'edit path' mode. At this point you can look for hollow squares which indicate path points, click on them to get their name, and then rightclick on them to deselect them. Using this method you can infer what path points should be on your map and where they should go.

I suggest you get the TVEditor Editor Launcher and Interface, install it to your Battlezone 2 directory, and then on the shortcut it makes on your desktop, launch it. There will be a text box in the launcher which allows you to specify the map (by bzn name). I suggest you type here mpibridges.bzn -- and use that map for learning.
Jackal-Ita
Scrap
Posts: 5
Joined: Mon Mar 19, 2012 4:53 pm

Re: Map making

Post by Jackal-Ita »

Thanks all for the links! The recycler path run. Now, I have two new questions/problems :? .
http://imageshack.us/photo/my-images/25 ... ema2m.png/
http://imageshack.us/photo/my-images/68 ... ema1s.png/
User avatar
GSH
Patch Creator
Posts: 2486
Joined: Fri Feb 18, 2011 4:55 pm
Location: USA
Contact:

Re: Map making

Post by GSH »

If it asks you to make a pathpoint, then do so. Those messages show up for a reason.

If it asks you to make a dxtbz2, then look at http://matesfamily.org/bz2/ for something that might be relevant.

-- GSH
Jackal-Ita
Scrap
Posts: 5
Joined: Mon Mar 19, 2012 4:53 pm

Re: Map making

Post by Jackal-Ita »

Yes but for the options when I choose the map? If you see in the screen there are only "Pilot" or "Commander" and the classic options.. but there aren't "scion" or "isdf" for me and pc and "extra options" .
Josiah
Sabre
Posts: 213
Joined: Mon Feb 21, 2011 6:45 am
Contact:

Re: Map making

Post by Josiah »

make sure you have the latest patch installed? do you have any shell mods installed?
Jackal-Ita
Scrap
Posts: 5
Joined: Mon Mar 19, 2012 4:53 pm

Re: Map making

Post by Jackal-Ita »

I have the latest patch, and no mods installed.
User avatar
GSH
Patch Creator
Posts: 2486
Joined: Fri Feb 18, 2011 4:55 pm
Location: USA
Contact:

Re: Map making

Post by GSH »

The map's .inf file contains info about the map that the shell uses. You should look at one of the stock 1.3 maps' .inf file, and use that as a basis for yours. You don't need Pak explorer or anything, just open up maps13\Missions\instant\BRIDGES\bridges2i.inf and use that as a basis for your map's .inf file. Note that your .bzn and .inf files need to have identical filenames to the left of the period (.) in the filename, as you can see in maps13\Missions\instant\BRIDGES

If you have the Windows default of hiding file extensions turned on, then get away from that nonsense asap. It'll make modding much easier to always view file extensions.

-- GSH
User avatar
Red Spot
Attila
Posts: 1629
Joined: Mon Feb 21, 2011 6:14 pm
Location: The Netherlands

Re: Map making

Post by Red Spot »

Put the vars together .. some time ago ..

Code: Select all

ivars: [32-bit unsigneds]

0: Kill Limit (0 for unlimited)

1: Time Limit (0 for unlimited)

2: Player Limit

3: Teamplay. 1=On 0=off

4: Bitfields saying which vehicles are selectable

5: 0=All, DM=1, Strat=2, all other values undefined (used in filtering
   out games by type). MPI is technically 3, but any Strat w/ Teamplay
   (ivar3=1), w/ only one team (ivar12=1) will be listed as that. I'd
   recommend leaving ivar5=2 for MPI to avoid any quirks in the code.

6: Bitfields II for selectable vehicles out of MPVehicles.txt [Unimplemented so far]

7: Strat & MPI: starting vehicles bitfield mask, for selecting out of
   StratStarting.txt . Strat forces this value to be either 0 or 3
   (nothing or 2 turrets). MPI uses all the bits.

7: Deathmatch01: Used to set the game type. 0 = normal; 1 = KOH;
2 = CTF 3=Loot, 4=[RESERVED], 5 = Race (respawn as person), 6= Race
(respawn in craft), 7= Normal but vehicle-only combat

8: Sync Join. 1=on, 0=off

9: Unit Limit (0 for unlimited). In DM/Race, this is the # of laps.
In DM/non-race, this is the # of AI bots (units) sent to harass everyone.

10: Nonblocking-joins. If 0 (default), everyone will pause on a join
    until movepackets from that player come in. If non-0, the
    'thundering herd' approach is taken-- everyone keeps going,
    bandwidth usage be damned. [I.e. modem-crushing for >4 players]

11: Teamplay locked. 1=on, 0=off

12: 0: Allow 2 teams. 1: 1 team only. 

13: MPInstant only, opponent race. Default is 105 (ascii for 'i') =
isdf, 102 (ascii for 'f') = scion, other races as appropriate.  [See
websites like http://en.wikipedia.org/wiki/ASCII or
http://www.asciitable.com/ for a table converting from the character
glyph to decimal]

13: DM only: # of seconds after a respawn for a spawn kill (0=off, 15=
default).

14: Score (points) for killing AI craft. (Default 1 via code
now). Negative points are awarded for killing own/ally AI craft.

15: If 1, +1 kill is awarded for killing an enemy AI unit (and -1 kill
for killing ally), No change to kills if this ivar is 0. Default 1.

16: Strat/MPI: If 1, Strat/MPI players respawn with sniper rifle. Default 0.

16: DM: if 1, humans vs bots is the mode.

17: Strat/MPI AI skill level for human turrets in Strat (0..3). Default 3.

18: AI skill level for all human other units in Strat. Default 3.

19: DM: if 1, 1-shot-kill mode is on. Default 0.

20: Multiworld frequency, from server.

21: AI skill level for CPU turrets in MPI (0..3). Default 3.

22: AI skill level for all other CPU units in MPI. Default 3.

23: MPI Level of scrap cheat for humans in MPI (0..3). Default 0

23: DM: if 1, "rabbit" mode (everyone attacks the person who's "it"

23: Strat: FFA alliances. 0 = FFA. 1 = 1,2 vs 3,4. 2 = 1,3 vs 2,4.
    3 = 1,4 vs 2,3

23: MPI: Level of scrap cheat for humans in MPI (0..3). Default 0.

24: (MPI) Level of scrap cheat for CPU in MPI (0..3). Default 2.

25: DM: If 1, respawn in ship, and can't eject/hop out.

25: MPI: if 1, then AI team's race (from ivar13) is locked, and can't
be changed.

25: Strat: minutes of recycler invulnerability. Default 0.

26: DM: Damage multiplier, divided by 10. Thus, if ivar26 is 10, the
damage mult is 100% (unchanged). If 20, 200% (double-normal), etc.
Defaults to 10 in DM, 0 other gametypes.

26: MPI: Time (in seconds) before the AIPs are kicked out of the
*0.aip stage, and into the 1/3 stage. A value of 0 is treated as the
default of 180 seconds. If this value is less than 0, it'll never
trigger.

27: (DM) Number of animals in the map. Default 0. Max is 8.

28: (All) Lifespan of a non-player pilot in MP. This value is the
number of seconds an AI pilot that ejected/hopped out of a craft has
in MP is allowed to live before they get killed. [Human players,
soldiers from APCs aren't subject to this.] Values <= 0 are treated as
unlimited. Default if unspecified is 120 (2 minutes). This is
something done by the exe, not the DLL.

29: (All) Flag as whether the server disables the TLI line on targeted
objects. 0 = server enables TLI (local pref valid), 1 = server
disables TLI for all.

30: Flag as to whether weapon linking is enabled or not.

31: (DM) World gravity. This is encoded as an integer 2x the floating
point value, so that ivar30 == 25 -> gravity==12.5. Default = 25

32: (All) Flag as to whether friendly fire is enabled (==1) or not (== 0)

63: 0= server not launched; 1=server launched. 


svars:
0: map name (e.g. foo.bzn)

1: Teamgroup #1 name, usually "Team Red"

2: Teamgroup #2 name, usually "Team Blue"

// Custom AIP name base. The MPInstant.dll will look for several files
// based on this base, with 3 characters tacked on. Those 3 are as
// follows: (1) CPU race (f=Scion, i=isdf), (2) Human race, (3) AIP
// Type (0=Start, 1-3 = begin game types, 'a' == anti-assault, 's' ==
// siege, 'l' = lategame).
//
// If an AIP file is not found, results may be unpredictable.
//
// For example, if svar3 == "foo", at the start of the game, the AIP
// used will be one of these 4 files:
// fooii0.aip  -- CPU ISDF, Human ISDF
// fooif0.aip  -- CPU ISDF, Human Scion
// foofi0.aip  -- CPU Scion, Human ISDF
// fooff0.aip  -- CPU Scion, Human Scion
3: MPI Only: base name for AIP files. If not present, defaults used.
[This var will be reset to empty if not specified in .inf]

4: If specified, this is treated as an alternate filename for the
MPVehicles.txt list; if absent, the game reverts back to the stock
one. This alternate can be in a .pak file, or anywhere in the file
search path. 

5: If specified, this is treated as an alternate recycler base name.
The first character of this is replaced by the race ('i' or 'f'), so
that if svar5=="xGSHrecy", the objects spawned will be either
"iGSHrecy[.odf]" or "fGSHrecy[.odf]" (.odf is implied). If this isn't
present, 'Xvrecy_m' is used, just like before.

6: If specified, this is a file formatted the same as MPVehicles.txt,
but used in the shell config to be a starting force setup for strat.
Default (if not specified) is 'stratstarting.txt' . Strategy02.dll
only lets you pick between 0 and 2 starting turrets; MPInstant.dll
(and the config files) let you use the full set of items.

7: Shell configuration file, for the "Extra Options" page to bring up.
It is extended in code, so that "ctf" tries to bring up
"bzshell_multi_ctf.cfg" for the server, and
"bzshell_multi_client_ctf.cfg" . In each of those pages, there must be
a "ExtraOptions" control, which is used to control all of its
sub-options. When ExtraOptions is deactivated, *all* things must go
away.

   Also, note that if there is a "ExtraOptions.VehicleList" block found,
it is filled in with the contents of the file mentioned in svar6. Note
that if svar6 is empty, the VehicleList section will be blanked out.

8: ODF file of more files to check in the asset list. This is intended
for MODs to be able to protect their assets from cheating. New ODFs
included by a MOD will be checked if either (1) they are referenced
from the .bzn, or (2) they're listed in this file. Assuming svar8
contains say "GSHCheck.odf", then the file 'GSHCheck.odf' (located
somewhere under addon) should contain lines of the following form:

[Check]
Check1 = "ibGSHarmo" // .odf is implied and should NOT be added
Check2 = "ibGSHfact"
Check3 = "ibGSHrecy_m"

   Check numbers must be steadily increasing; if a Check# isn't
present, then processing that file stops. It is recommended that you
list ODFs from lowest on the hierarchy to greatest for smooth loadbar
progression, like I did above. If the recy is first, it'll recursively
load everything (and take a while to do so), and sub-items will go by
in the blink of an eye.

9: Alternate file to be used instead of recylist.txt. If not specified,
recylist.txt is used instead.

10: MPI Only: Alternate file to be used instead of aiplist.txt. If not
specified, aiplist.txt is used instead. 

10: Strat Only: Alternate file to be used instead of
stctfgoallist.txt . If not specified, stctfgoallist.txt is used instead.

11: MPI Only: Team name for a craft on team "group" 3 (teams
11..15). Teams must be on for this to take effect. This is not an
officially supported team group, but support was added for named items
on it. If this svar is empty, the default "Unknown Team" string is
used instead.

11: StratCTF Only: If specified, this is treated as an alternate stratctf
goal odf name. If this isn't present, 'stctf_goal' is used. ".odf" is
implied in the name, and must NOT be on the end

12: DM Only: Config for DM animals. Only valid if DM & ivar27 > 0

12: (MPI only): base config for CPU recyclers present on map.
Defaults to "ivrecycpu" if not specified. ".odf" is implied in the
name, and must NOT be on the end. The specified string is used to
calculate what CPU recyclers (and therefore races) are available by
scanning all 26 possible races of that form. if svar12 = "ivrecyCPU1",
ivrecyCPU1 is the ai's recycler. If ivrecyCPU1.odf does not exist, but
fvrecyCPU1.odf and evrechCPU1.odf exist, the only available options
for the ai team are Scion and Hadean. ISDF can't be chosen for the AI
team due to that odf not existing.

13: DM Only: Alternate file to be used instead of animallist.txt. If
not specified, animallist.txt is used instead.


civars:
0: Which team this player is on (0==team1, 1==team2)

1: Vehicle selection (as bitfield paralleling ivar4; only 1 bit allowed on)

2: Team commander prefs (but overridden by server as needed)

3: Autolevel (0 = off, 1 = on)

csvars:
0: Player name
1: Nav name for next-created one.

----------------------------------------------------------------------

Instant Action variables

options.instant.hisrace, options.instant.myrace : integers with the
side character (e.g. 105 for 'i'sdf, 102 for 'f'(scion)) for the CPU
and human sides, respecively. [See websites like
http://en.wikipedia.org/wiki/ASCII or http://www.asciitable.com/ for a
table converting from the character glyph to decimal]

options.instant.bool0 : Flag if the user can respawn if they die. If
true (==1), respawning is allowed. Default is off (== no respawning)

options.instant.string0 : Custom AIP base name, e.g. "stock13_" .

options.instant.string1 : ODF name for Human's recycler, e.g. "ivrevy"
or "ivrecy_m" First char will be replaced with appropriate race

options.instant.string2 : ODF name for CPU's recycler, e.g. "ivrevy" 
or "ivrecy_m" First char will be replaced with appropriate race
User avatar
GSH
Patch Creator
Posts: 2486
Joined: Fri Feb 18, 2011 4:55 pm
Location: USA
Contact:

Re: Map making

Post by GSH »

RS - that's just a dump of vars.txt from the DLL source I hand out, and those variables are for multiplayer. The screenshot above is from Instant Action, and MP-specific items don't count.

-- GSH
User avatar
Red Spot
Attila
Posts: 1629
Joined: Mon Feb 21, 2011 6:14 pm
Location: The Netherlands

Re: Map making

Post by Red Spot »

You're right, though I put it together as I added a lot for my own needs and though it was home made .. oops :oops:
Post Reply