In this tutorial I'm going to show you how to make a siege map. (This tutorial doesn't guarantee you will make a good one.)
I assume you have basic understanding of mapping and have played at least one siege match on all 3 base maps.
I use GtkRadiant 1.5.0, but probably other versions are very similar to this one. (I tried 1.6 but I missed a lot of things, so it may not work with that).
Things you will need:
- GtkRadiant
- Wordpad, or any text editor will do which can save in any given format.
Siege mapping is mainly logic, and everything is about good targeting. First you need to have a map, or you can create one while you are reading this.
The main difference between siege mapping, and any other kind of mapping is, you can't spawn on info_player_start, this entity is used for the team "spectator", so any spectator will spawn in here (or into info_player_intermission). To spawn the teams in you will need to use info_player_siegeteam1 (or2). We usually use 1(red entity) as the attacker team, and 2 (blue entity) as the defender one.
Objectives are called info_siege_objective (pink entity). They have three keys "side", "objective", and "icon".
Side can be 1 or 2, if it is 1 the offense team supposed to complete this objective.
But wait this means there can be objectives for both teams! That's right, there are some maps out (none of them are mine) which are based on this very thought (e.g.: droid ball).
Objective type a number here (obviously 1 stands for 1st objective etc). I never really tested how many objectives can a map has, base maps have 6, but you may have more (well they probably won't show up on the objective map, or may crash the game).
Icon it should contain the path to a tga file. E.g.: "gfx/mp/siegeicons/hoth/walldoor.tga" (watch for slashes direction, if i remember right it matters which one you use). You should have three of them (staying at the example:) walldoor.jpg (32x32), walldoor_o.tga, walldoor_x.tga these last two doesn't have to be named this way, since you will define this in the .siege file, but this is the logical choice.
(I can't say more about tga files, because they are graphic things, and I usually don't care about these very little things, BUT! if you don't have own icons for active objective and done objective the game will show hoth's by default.
Keys that usually don't appear in the entities' own help menu:
targetname: This one is essential for siege game type, and you probably have already met with this guy. Do not use space button, instead use the "_" mark, and probably you can't go above 128 characters.
target: This one is also essential as well, logically if you want a trigger to fire the right target, you have to check if the value of the target (from the trigger), and the targetname (the target's) are the same.
There are many kind of objectives, like: hack, press a button, advance through a specific point, carry something from here to there, destroy a wall/model or even kill an NPC, but I don't suggest this one. Most of these can be done with a simple trigger_once (do not use trigger_multiple, because it will fire the objective more times than you want, and will end the game before it should).
With triggers you can make the followings of the above: hack, press button, advance through a specific point, and you will need this one as the area where you have to carry something.
Let's start with hack, first you need to add the spawnflag "use button" or you will be able to hack by just standing in the trigger, then you should target the info_siege_objective, or a target_relay or just a func_door if you want to complete a "side objective" (I will talk about this later). So with this you will get an objective where you have to hack something, like the ion station on hoth.
As of talking about triggers I have to mention the idealclass key, which can determine which class/classes can trigger that specific trigger (more about this in the entity's help).
Press a button and complete an objective, obviously you have to add the spawnflag "use_button". Best example: hoth's 2nd objective.
Advance through a specific point, this practically same as above, you just don't add the "use_button" spawnflag. e.g.: hoth's 4th objective.
Carrying a specific something. You will need the misc_siege_item entity for this one, and a trigger_once(/multiple for maps like droidball). The misc_siege_item entity can be used in two ways, so now I am going to mention only the ones which are related.
Startoffradar spawnflag: You have to trigger it to appear on the map (this means you have to give it an icon).
Model you have to give the path to the model you want to carry, like "models/players/droids/r5d2_head.md3".
targetname if it has one it won't spawn until it is used.
target2: target to fire when picked up (usually a target_print so everyone knows when it is picked up)
pickuponlyonce: If it is 1 target2 won't fire, after it is dropped (have not respawned) and picked up again.
target3: will fire this when it is delivered.
canpickup: This one is essential in this case, give it a "1" value.
pickupsound: path to sound file (never used this one, probably has to be*. wav file and mono)
goaltarget: the tagetname of the trigger, where you have to deliver this item.
usephysics: if 1 it will fall down etc. (never used 0, but probably it just stays there where carrier was killed and do nothing, 'till respawn)
From radiant:
"mass" If usephysics, this will be the factored object mass. Default is 0.09.
"gravity" If usephysics, this will be the factored gravitational pull. Default is 3.0.
"bounce" If usephysics, this will be the factored bounce amount. Default is 1.3.
Back to me:
teamnotouch: If "0" everyone can pick it up, if "1" only team 2 can pick it up, if "2" only team 1 can pick it up
teamnocomplete: If both teams can pick it up, then if this value is 1, team 1 cannot complete it and same goes for team 2.
respawnfx: path of fxfile (never used it, e.g. korriban crystals)
noradar: if 1, it won't show up on radar at all
forcelimit: if 1 can't use any light or dark force while carrying this item (like korriban crystals) (you can jump, push, pull, throw saber but cannot speed up and force won't regenerate)
paintarget: Honestly I haven't figured this one out yet, but it should do something with npcs, like on hoth, you have to destroy the droid, and then the head will be at the point where the droid was destroyed. Normally paintarget fires its targets when something hits the given entity.
icon: If anywhere you should use this key it is here, because the item will show up on the radar while it is carried (unless you are mindtricked, then it will stay at the position where you were mindtricked).
Destroy: there are two ways of destroying things.
First you make a brush/patch/ or even both, you assign them and give them the func_breakable option.
Before I start listing the keys and what do they do I have to mention that: on func_breakable the weapon demp2 and DL-44 won't have any effect (in multiplayer).
We usually use this if a wall has to be destroyed, but you can try and build nice things with it.
The spawnflags are nicely defined in the entity's help, so I'm going to mention only the one which are used the most.
"heavy_weap" If you tick this, you can damage this only with: saber, alt attack of the repeater, alt attack of the gollan weapon, rocket launcher, any throwable weapon and the concussion rifle (the purple and black weapon). Theoretically any vehicle's weapon can damage it, too (even swoops).
target: will fire this, when destroyed
paintarget: will fire this, when it is hit and taken damage (usually a target_print)(note: sometimes this can crash the game, even the server)
wait: how many milliseconds should it wait before firing paintarget again
health: this many health points will be given to it
teamnodmg: this team cannot damage it
delay: how many seconds should it wait before blowing up, but already reached 0 hp
numchunks: This many chunk will be spawned when destroyed
chunksize: for scaling up/down the chunks
playfx: path to fx file when it is destroyed and should palyed
showhealth: if 1 you will see its health bar
teamowner: to determine which team will see the its health bar green
spalshdamage: it will damage this many when it's blowing up
splashradius: it will damage "spalshdamage" in this radius
material: this value is a number (to see what is what open up radiant). You should know if you give a number which contains any glass material in it, it will take damage on impact (doesn't matter if spawnflag is ticked or not). This means you start to jump in its direction and when you arrive, you will damage it.
healingclass: same as idealclass, the difference is: with this class you can health the func_breakable
healingsounds: will play this while healing it (usually: "sound/ambience/doomgiver/doom_bridge.wav")
Before I move on, I have to mention that you can use models this way, you clip around the model with a physics clip, and make it func_breakable, then you give a target to the misc_model (not sure if misc_model_static works too, because it's rare I use them). Then give that targetname to the func_breakable. People would think it works reverse, but it doesn't.
And again misc_siege_item. Yes it can be use as a "destroy" objective. The main difference between func_breakable and this, that you can damage this with demp2, DL-44 and you cannot put det packs onto its side.
The tricky part is the physics clip, which is created by the engine itself. It is going to be a big cuboid around the model, so don't use to special models for this one.
You clip them with the following keys:
maxs & mins
"mins" Actual mins of the object. Careful not to place it into a solid,
as these new mins will not be reflected visually in the editor.
Default value is "-16 -16 -24".
"maxs" Same as above for maxs. Default value is "16 16 32".
says radiant, but honestly for a long time I had no idea what did they want to mean with this (maybe it's because english isn't my native language), so I'm going to try and explain how to use them.
First you will use a misc_model
(Note: I suggest you only use the angle: 0;90;180 or 270, because if you make it 45 it will be annoying to destroy with saber, like in desert's 2nd objective)
After you have rotated the model to the way it supposed to be, you have to make a brush around it which fully covers it. You need the cuboid's three lengths (in radiant 1.5 you can easily see its length by pressing "J"). Now you have the lengths of x;y and z. You have to check the model's origin (usually in the middle or at the bottom). Now imagine a coordinate system to that origin its "+" side are the maxs and its "-" sides are the mins. If the model's origin is in the middle you have an easy job, just divide the lenghts by two and write the counts in to the value box in the right order.
Don't forget to swap the misc_model with a misc_siege_item!
(An example: on my project digimon map, I have a bunch of bacta tanks, which are need to be destroyed and I used misc_siege_item-s for this objective, I used the misc_model, measured it with a cuboid and had the following lengths x:96 ;y:96 ; z:192 , so my maxs: 48 48 192 ; and my mins: -48 -48 0, because this model has its origin at the middle bottom).
Another difference is the target, instead of the simple "target" key you should use the "target4" key. (Remember! Target is for carrying objectives.)
deathfx: plays this effect when its health reaches 0, then deletes model.
It has healingclass, healingsound, health, icon, showhealth, teamowner, teamnodmg keys as well and they are the same as above.
Don't forget to add the model key!
In case you want an objective which in you have to kill and NPC.
First I have to say again I don't suggest this, because most of the NPCs are very dumb in siege. In my siege_ktr (Kill the mutant rancor) neither of my tries worked to move the npc when the player sits in a vehicle and you probably have noticed that rancors are very dumb in both base siege map, I tell you this: they are supposed to circle around, but as you have probably noticed they just stand there and rarely attacks people when they get close by. And don't even dream about any script will work on them. On my project digimon map, I have 3 NPCs in the interrogation room, and they have spawnscripts (they supposed to lie on the floor) and boom the game don't even spawns them in siege...
So if you still want to kill an NPC objective, then:
npc_target: fires when npc is killed (won't show the line between target and trigger entity)
npc_target4: fires when NPC is killed by friendly fire (won't show the line between target and trigger entity)
health: This supposed to determine how many health points the npc will have, well on siege_ktr, the mutant rancor has 350, and you have to fire on it with atst for at least ~20 secs, maybe it's just with monster npcs.
Teamnodmg, teamowner, showhealth keys are working here as well.
These are the most basic elements of siege. Now let's see some other entities:
func_door
The most used spawnflags in siege are: toggle, locked, inactive.
Toggle will wait to open/close for triggering event.
Locked starts locked (if possible on the texture, it will be red). It will allow the team from the "teamallow" key. (Can be fired only once)
Inactive it is inactive, have to be used by a target_activate entity, then it operates normally.
Locked & targetname issues: when you give a targetname to any func_door, the engine won't spawn triggers around the door, so you have to make triggers around it, except if you give it the locked spawnflag in which case, it will be like a normal door, and it will have a targetname. So if you have a func_door with targetname and locked spawnflag and a "teamallow: 2" key. The door will be locked for team 1 until a trigger triggers the door. While the door is closed for team 1, team 2 still can use it, and you don't have to make triggers around the door to open for them.
There are four target possibilities for func_doors and they are well written in radiant, but I notify you, some of them doesn't make radiant to show the usual line between trigger and its target (at least in 1.5).
vehopen: if 0, people on/in vehicles cannot use this door, if 1 they can.
soundset: I always use this one "impdoor1", because I don't know of any other. (if you use it as elevator then use "piston")
Another usual func_ we use is the func_usable.
It is used for temporary walls (usually textured as energy fields).
Start_off spawnflag: won't be there until used.
target: will fire when it's toggled OFF.
target2: will fire when it's toggled ON.
There are some usable targets for siege like: target_activate /deactivate (I haven't used that yet), target_delay, target_location, target_print, target_relay, target_siege_end (this one is essential), target_speaker.
target_(de)activate: when fired (de)activates its targets (mostly triggers, and doors)
target_delay: after it is triggered, it waits the given value of seconds determined with the wait key.
target_location: message key's value will determine what will show up on the team overlay screen next to your teammates' name. The count key doesn't work (at least it didn't work for me)
target_print: will print the value of the message key (in multipalyer only 49-50 characters will show up), with the spawnflags you can control who will see the meassge (red team, blue team, or private)
target_relay: You want to use this to activate/deactivate spawn points, which is usually have to be done in siege (theorically you can do it with scripts, but I never tried).
First you place every spawn point for every team, then you give targetnames to them (e.g. for a 8vs8 map 16 spawn points have to have the same targetname, at least for the first time, because it is possible you don't want to move the spawnpoints for defensive team, and move the offensiv team's, like in project digimon). You need two target_realy for most of the objectives, and they should have the same targetname so they will be fired in the same time. One of the target_realy-s will switch off the previous objective's spawns, and the other will activate the next one's. Every spawns which are not in use should have the "startoff: 1" key. When a spawn point is fired from a target_relay it will switch its startoff key.
target_siege_end: give it a targetname, you can either fire it from in game, or from the .siege file (it is usually fired from the .siege file).
target_speaker: if you are a mapper, you probably already have met with this, it is just here not to forget about it
emplaced_gun
count: if can respawn, it can respawn this many times (theoretically -1 makes it infinite)
showhealth, teamnodmg and teamowner, works as above, BUT! alliedteam is reverse for some reason, so 1 is for the actual 2, and vica versa. This is very important because only alliedteam members can use it (if none, both team can use it).
misc_turretG2
notice: these won't show up while testing in singleplayer
spawnflags:
start_off: have to be triggered to work
upside_down: makes it up-side-down
can_respawn: will respawn
turbo: you want to use this for space maps
keys:
teamnodmg: given team cannot damage turret
alliedteam: turret won't shoot to given team
teamowner: will highlighted as green for given team (works with showhealth 1)
dmg: does this many damage/hit
radius: can pick up targets from the given distance
count: will respawn after this many milliseconds have passed
paintarget: same as func_breakable's
painwait: will wait this many milliseconds before firing its paintarget again
shotspeed: the "rocket" which comes out, will travel at this speed (better not touch the default)
splashDamage: This many damage will it do, when hit floor/target. (if you want hoth like turrets don't touch it)
splashRadius: will do splashDamage in this radius
targetname: for toggling it on/off
target: fires it when, it is destroyed
target2: fires it when, it starts shooting to an enemy
showhealth: same as above
icon: same as above
customscale: if you want it bigger write a number 1024>100, if you want smaller write a number <100 (100 is normal)
Notice: You shouldn't let its origin to directly touch a brush, always put it lower/higher, because it won't spawn that way. Turrets usually cause an error while compiling the map, don't bother yourself, it will work and will have no problems, if when the error shows up you got some of your turrets assigned, in any other casses you have probably made another fault.
misc_model_health_power_converter
You should only modify the angle, or maybe the count key, which doesn't really do anything.
You should add the model: models/items/power_converter.md3 key. I know it appears in the editor, but if you don't add this key you won't see anything on the map. (You can add other models to it, but I've never tested them).
(This doesn't need any clipping)
misc_ammo_floor_unit
count: max ammo that can be drained from it
chargerate: will recharge 1/this manny milliseconds
nodrain: if 1, it won't be drained
(This doesn't need any clipping)
misc_shield_floor_unit
count: max shield that can be drained from it
chargerate: will recharge 1/this manny milliseconds
nodrain: if 1, it won't be drained
(This doesn't need any clipping)
misc_turret
same as misc_turretG2 except there are no customscale, painwait, paintarget, count keys (none of them are tested, but you can try) only has start_off spawnflag, and has a "speed" key which determine how fast can it turn.
It can be healed (see above).
These are the entities used in siege game type, of course you can use any other entity from multiplayer.
Now you are ready with the map, but you cannot play it yet (at least not in siege mod). First you need a siege file. At your first time I suggest to use the siege_hoth.siege file (You can get it from the assets0.pk3 file with any program which can unzip zip based files, it is in map/mp/siege_hoth.siege) but just in case I'm going to explain some line here.
First: You have to give your *.siege file the same name as your map's eg.: in case you have a mymap.map file (we usually add the siege_ tag but you don't have to) then you have to have a mymap.siege file (I suggest wordpad, because most of JA's special files can be opened with this and it makes the lines break well).
The siege file has to be in the same folder with the map file.
In the attached file every messages are like this:
message_team1 "@@siege_uwb_hoth_obj_1_new_imp_final"
This is because of translation issues. I don't suggest to use them (once I tried some of the default it crashed the game). Just simply put english messages here, if they were able to download it they are probably able to understand basic English.
Another important issue with the siege file are these marks: {} (on my keyboard they are on B and N keys).
There are many possibilities to fire targets from the siege file, though I don't really use them, because usually I make the map first and the siege file comes afterwards, if something is not working I am always able to check it from radiant, and I don't have to open the siege file. (Believe me in siege maps something usually goes wrong after first compile).
First you have to give the teams in the siege file like:
Teams
{
team1 Imperials
team2 Rebels
}
These names don't have to match with the names in the team file.
mapgraphic "gfx/mplevels/siege1_hoth" this is the graphic which will appear on the objective desk (use only 256*512 pictures)
missionname "''Hoth Assault''"
roundbegin_target it fires its target when there are at least 1 player on each team eg.: on hoth this is the droidhead, so the droid won't spawn until the game begins.
RequiredObjectives in base maps this is 1, but wait - you might say - there are 6 objectives on base maps. Yes it's true, every objective has a "final" key after that, you can type -1,0,1.
-1 means it doesn't influence the end of the game.
0 gives 1 point to requiredobjectives (this means base maps have one objective with a "final 0" line).
If it's 1, completing this objective will immediately fire the roundover_target.
Now I copy an objective and a team describe lines from siege_hoth.siege and show you what does what.
@@siege_uwb_HOTH_TEAM1_IMPERIAL <-- You give the team here
{
RequiredObjectives 1 <<-- see above
the round? <<-- This isn't even in the sdk, you can skip this line, I made 3 working map without it.
Timed 1200 <<-- How many seconds should pass before attackers lost
objectives, otherwise the other team wins. <<-- this does nothing in my opinion (every of my maps work without this line)
UseTeam "Siege1_Imperials" <<-- name from .team file
TeamIcon "gfx/2d/mp_imp_symbol_3"
TeamColorOn "1 0 0 1" <<-- the color of the symbol of the team when you click on it
TeamColorOff ".7 0 0 1" <<-- the color of the symbol of the team when it's not clicked on
Objective1
{
goalname "@@siege_uwb_HOTH_IMP_OBJ_1_NEW" <<-- see picture
final -1 <<-- see above
message_team1 "@@siege_uwb_hoth_obj_1_new_imp_final" <<-- team1 gets this message when team 1 completes this objective.
message_team2 "@@siege_uwb_hoth_obj_1_new_reb_final" <<-- team2 gets this message when team 1 completes this objective.
target "spawn_relay_1a" <<-- this is fired when objective is completed.
sound_team1 "sound/chars/protocol/misc/siege2.mp3" <<-- team1 gets this sound when team 1 completes this objective.
sound_team2 "sound/chars/protocol/misc/siege6.mp3" <<-- team2 gets this sound when team 1 completes this objective.
objdesc "@@siege_uwb_HOTH_IMP_OBJ_1_NEW_DESC" <<-- see picture
objgfx "gfx/mplevels/hoth/imp_objective1_new" <<-- see picture (256*256)
mapicon "gfx/mp/siegeicons/hoth/walldoor_o"
litmapicon "gfx/mp/siegeicons/hoth/walldoor_outline"
donemapicon "gfx/mp/siegeicons/hoth/walldoor_x"
mappos "135 245 16 16" <<-- I don't know how this works
}
An objective is completed, when an info_siege_objective is fired.
wonround "get this message when this team wins the round"
lostround "get this message when this team losses the round"
roundover_sound_wewon "get this sound when this team wins"
roundover_sound_welost "get this sound when this team losses"
roundover_target "targetname of the siege_end entity"
briefing "short mission description"
Classes & Teams
Let me start with the *.team file (it is the easier one). The following path will be ned: ext_data\siege\teams
I am going to copy my siege_ktr map imperial team's file:
name "SIEGE_KTR_IMP" // this name should match the team name you give in the siege file
FriendlyShader "sprites/team_red" //don't change this one, this makes friendly players name green
Classes
{
class1 "KTR Stormtrooper" //this will appear first
class2 "KTR Mercanary" //this will appear second
class3 "KTR IMPERIAL demolition specialist" //this will appear third
class4 "KTR Mercanary Sniper" //this will appear fourth
class5 "KTR_12" //this will appear fifth
class6 "Dark Jedi Invader" //this will appear sisxth
}
Yeahp that's all for the team file (Theoretically you don't have to use "_" instead of space, I just had problems with my technician class and I tried everything )
You can use any classes in this file, you can mix default and non-default classes, just don't forget to attach the non-default classes.
The following path will be needed: ext_data\siege\classes
Now comes the hard part.
(I lost the file I used for making these so I made a little research on the internet and found the weapon,force,holadble,classfalgs names in some page, where I could see some programming stuff about JKA, let's hope I didn't forget anything)
A copy from my "KTR_eliteDEMO.scl" file:
ClassInfo
{
name "KTR IMPERIAL demolition specialist"
weapons WP_thermal|WP_trip_mine|wp_det_pack|wp_blaster_pistol
classflags CFL_EXTRA_AMMO
maxhealth 75
maxarmor 25
startarmor 0
model "human_merc"
skin "racto"
uishader "models/players/human_merc/icon_racto"
class_shader "gfx/mp/c_icon_demolitionist"
holdables HI_MEDPAC
}
description "A demoliton specialist."
name: The name of the class
weapons: You have to list the weapons for this class here, you have to put a "|" mark between two (on my keyboard this is on the key "W"). Possibilities:
WP_STUN_BATON, WP_MELEE, WP_SABER,WP_BRYAR_PISTOL, WP_BLASTER, WP_DISRUPTOR, WP_BOWCASTER,WP_REPEATER, WP_DEMP2, WP_FLECHETTE, WP_ROCKET_LAUNCHER, WP_CONCUSSION, WP_THERMAL, WP_TRIP_MINE, WP_DET_PACK
classflags: these are special abilities
CFL_MORESABERDMG saber does more damage
CFL_STRONGAGAINSTPHYSICAL probably makes it stronger against melee and other attacks
CFL_FASTFORCEREGEN faster force regeneration (like on korriban offense team's tech)
CFL_STATVIEWER you can see the health and ammo quantity of your team mates
CFL_HEAVYMELEE melee does more damage
CFL_SINGLE_ROCKET you have 1 rocket (? never tried)
CFL_CUSTOMSKEL you can add custom skeleton (ask an animator or modeler)
CFL_EXTRA_AMMO will have more ammo (2 times of default)
maxhealth: the amount of health points this class can have
starthealth: the amount of health points this class will start, if you don't give a number or don't use this line, it will automatically start with maxhealth (same goes for shield)
maxarmor: the amount of shield points this class can have
startarmor: the amount of shield points this class will start (usually 0 and can be charged to maxarmor amount)
model: from models\players folder
skin: from models\players\*\ you can check out what skins can you use for that model by opening assets1.pk3
uishader: You will see this picture when you choose the class (in the example, the given shader does not exists, so you can see a white square instead)
class_shader: The icon for the class. The default ones are:
c_icon_demolitionist; c_icon_heavy_weapons; c_icon_infantry; c_icon_jedi_general; c_icon_support; c_icon_tech; c_icon_vanguard You may say: but there's seven, and only 6 classes exist! It's true, but there are two technican icons the *_tech, and *_support.
holdables: Those special items the class can have
HI_SEEKER known as seeker drone
HI_SHIELD That big blue/red shield techs can spawn
HI_MEDPAC known as bacta
HI_MEDPAC_BIG known as big bacta
HI_BINOCULARS binoculars, we don't really use this one
HI_SENTRY_GUN Sentry Gun
HI_JETPACK Boba Fett stly jetpack
HI_HEALTHDISP With this you can give health to a teammate by pressing the use button.
HI_AMMODISP You can deploy ammo cans by pressing the use button
HI_EWEB That cannon thing (assault class has this on desert)
HI_CLOAK The cloaking device.
forcepowers e.g.:
forcepowers FP_TELEPATHY,3|FP_SEE,1
First you give the name of the force, then put a comma and the level (1;2;3) of the force )( theorically there are more, but I don't suggest them)
FP_HEAL
FP_LEVITATION this one means jump
FP_SPEED
FP_PUSH
FP_PULL
FP_TELEPATHY this one means mindtrick
FP_GRIP
FP_LIGHTNING
FP_RAGE
FP_PROTECT protect against physical damage
FP_ABSORB protect against force based damage, and makes your force points regenerate, even if you carry a misc_siege_item which disables force regeneration
FP_TEAM_HEAL
FP_TEAM_FORCE same as team heal just for dark side
FP_DRAIN
FP_SEE
FP_SABER_OFFENSE
FP_SABER_DEFENSE
FP_SABERTHROW
forcealignment: dark or light (I think it has no effect at all)
speed: default is 1 you can see this number when you click on the class, heavy weapon classes usually have 0.75, jedis and scouts have 1.25
saber1: the hilt of the saber e.g.: single_7
saber2: only if you want it to have two sabers
sabercolor: color of the saber 1-6
(1-red, 2-green, 3-yellow, 4-blue, 5-cyan, 6-pink/purple)
saber2color: only if it has 2nd saber
saberstyle: fast, medium or strong
SS_FAST
SS_MEDIUM
SS_STRONG
SS_DUAL if it has 2 sabers
SS_STAFF if it has two sided saber
description: Give a short description of the class.
I hope I could help you understanding how to make a siege map (and also hope didn't forget anything), if you have any question just write me a PM, I will try to answer it as soon as I can.
Recommended Comments
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now