Jump to content

MUG

Members
  • Posts

    902
  • Joined

  • Last visited

Posts posted by MUG

  1. What is a PK3?

    A PK3 (or Pack 3) is a type of file archive (a file containing other files, usually compressed to take up less space) and is essentially the same as a zip folder, just with the extension .pk3. JKA will load files within the gamedata\base (or gamedata\NameOfModYouArePlaying eg japlus) folder as well as the contents of any .pk3 files

     

    Basically, they contain much of the files that make up the game as well as most mods (skins, maps etc) you can download.

     

    Installing PK3s

    • Find the file and copy it with crtl+c (If you downloaded the PK3, it was probably in a zip file, if so open up the zip and copy the pk3 inside.)
    • Find your base folder. This is usually C:\Program Files\Lucas Arts\Jedi Academy\GameData\base
    • Paste the pk3 into your base folder.
    If you are using a mod like JA+ or Clanmod you should usually paste into the gamedata\japlus or gamedata\clanmod folder instead of base. You should only use the base folder if you want whatever you are using to work with the base game or with all mods and remember to check the readme for whatever you are installing as some things work differently. Click here for more details about using different mod folders.

     

    PK3 Naming

    JKA always loads PK3s in alphabetical order. If you have too many pk3s added to your base or mod folder sometimes the mods with the earlier name alphabetically wont work properly. This is because the later pk3s alphabetically are effectively loaded over the top of the earlier ones. This also means that if I install two pk3s each containing a file of the same name, one called "file.pk3" the other called "zzzzzzfile.pk3", the version in "zzzzzzfile.pk3" will be used.

     

    In short, if you want to make sure that one skin is displayed further up the menu, or that one particular file is defiantly loaded fully, add a ton of "z"s to the front of its name.

     

    Opening PK3s

    • Download packscape, winrar, 7zip or any other file archiver that you like to use.
    • Double click a PK3 file to open it. If it asks you what program to use, point it to your choice from above.

       

      Alternatively open the archiver you chose and drag the pk3 you want to open into it.

    If you really don't want to download any programs to do this you can take a pk3 and rename it as a zip. For example if i rename assets1.pk3 to assets1.zip I can then just double click it to open it. Remember to rename it back to a pk3 afterwards if you use this method

     

    Editing The Contents of a PK3

    You can copy any files you like in or out of the PK3 to edit them and put them back in. You can also delete files or add entirely new ones in the same way as you would when navigating folders on windows. (be sure to click save when you are done if you are using Packscape).

    RolyatDerTeufel likes this
  2. First off ALWAYS check the readme as most mods have some specifics that only apply to them.

     

    Most mods of this kind come in a zip archive. if you open them up they usually contain a number of folders generally "base" and a folder with the name of the mod (eg "japlus"). If this is the case here is what you need to do:

    • Right click the zip file and select extract (or extract using your favourite archiver (winrar, 7zip etc))
    • When asked where to extract to choose your gamedata (not base!) folder (usually [plain]C:\Program Files\Lucas Arts\Jedi Academy\GameData[/plain])
    and you are done. If this doesn't work have another look at the readme.

     

    Using pk3s with mods

    (click here for main pk3 tutorial)

    Each folder within "gamedata" represents a different mod. When you start up the game without any mods, the "base" folder will be loaded, along with any pk3s inside it. When you then change to another mod using the menu or start the game up with a mod, the contents of the mods folder (eg japlus or clanmod) will be loaded, along with any pk3s you have placed in that folder. Regardless of whatever mod you are running, JKA will always also load any pk3s from base.

     

    Because there is a limit on the amount of stuff the game can load at once and because of conflicts, it is best to always install things you intend to use with just one mod into that mod's folder rather than base.

  3. First off, you need a Search and Destroy map in your base folder. Here is one: http://jkhub.org/fil...tooine-streets/

     

    How to play:

    There are two teams. Attackers and Defenders.

     

    When you join a team, you will spawn in a weapons room. There will be two rows of guns, and one row of explosives:

    DXzXp.jpg

    Select one weapon from each row, you will be pushed away if you try to take more.

     

    Once the teams are ready, someone can push a button at the exit of the spawn room which will trigger the start of the match. The gates will open and you will be able to enter the map.

     

    A timer will count down from two minutes:

    • If you die, you are out until the end of the round.
    • In a properly set up server, you will have no force other than heal, which you can use to regenerate your health between fire-fights.
    • If either team are all killed, the other team wins.
    • If the timer runs out Defenders win.
    • The Attackers must go to one of two bomb sites and hold down use to arm a bomb.
    • The Defenders should try to prevent them doing this until time runs out.
    KUGpB.jpg

    A bomb site

     

    If the Attackers manage to arm a bomb a new 45 second timer will appear:

    • If time runs out, the bomb explodes violently, and Defenders loose.
    • If the Defenders die they loose.
    • The Defenders must attempt to defuse the bomb by holding down use. If they do this, they win.
    • If the Attackers are all killed, the defenders must still defuse the bomb to win.
    At the end of a round, all players are returned to their spawn room, and there is a 30 second delay before the next round begins. I suggest that during the intermission, the teams switch, so that they have to play both as Attackers and Defenders. I suggest you play best of three rounds (first team to win twice) or best of five (first team to win three rounds) per match, switching teams every round.

     

    That's all there is to it!

     

     

    Hosting a Game of Search and Destroy:

     

    Search and Destroy MUST be run within the capture the flag gametype, or it will not work. To set your server to capture the flag, put this command into either your server cfg, or into rcon:

    seta g_gametype 8
    To enable weapons and set up force correctly so that only heal is available, and force regenerates at the right speed, use these lines in your cfg:

    seta g_weaponDisable 0
    seta g_maxForceRank 7
    seta g_forceRegenTime "150"
    seta g_forcePowerDisable "262142"
    I recommend the use of clanmod on your server (your players don't need to install it, but can if they wish) this will allow you to have much more dangerous guns, and to remove the lightsaber (to stop all the bullets getting deflected).

     

    Once you have clanmod installed, go to gamedata/clanmod and open the file called "damages.cfg" (create it with notepad if it doesn't exist), delete everything in it and paste these lines into it:

    ///////////////////////////////////////////////////////////////////////
    //CUSTOM SABER DAMAGES
    
    set g_saberLocking "1"
    set g_saberLockFactor "2"
    set g_locationBasedDamage "0"
    set g_saberTraceSaberFirst "0"
    
    set cm_customSaberDmgs "0" //Change this to 1 to use saber damages below
    
    set g_mSaberDMGTwirl "10"
    set g_mSaberDMGKick "2"
    set g_mSaberDMGDualKata "90"
    set g_mSaberDMGStaffKataMin "60"
    set g_mSaberDMGStaffKataMax "70"
    set g_mSaberDMGMultiMin "2"
    set g_mSaberDMGMultiMax "70"
    set g_mSaberDMGSpecialMin "2"
    set g_mSaberDMGSpecialMax "90"
    set g_mSaberDMGRedNormal "100"
    set g_mSaberDMGRedNormalMin "2"
    set g_mSaberDMGRedNormalMax "120"
    set g_mSaberDMGRedDFAMin "2"
    set g_mSaberDMGRedDFAMax "180"
    set g_mSaberDMGRedBackMin "2"
    set g_mSaberDMGRedBackMax "30"
    set g_mSaberDMGYellowNormal "60"
    set g_mSaberDMGYellowOverheadMin "2"
    set g_mSaberDMGYellowOverheadMax "80"
    set g_mSaberDMGYellowBackMin "2"
    set g_mSaberDMGYellowBackMax "25"
    set g_mSaberDMGBlueNormal "35"
    set g_mSaberDMGBlueLungeMin "2"
    set g_mSaberDMGBlueLungeMax "30"
    set g_mSaberDMGBlueBackMin "2"
    set g_mSaberDMGBlueBackMax "30"
    
    
    ///////////////////////////////////////////////////////////////////////
    //CUSTOM WEAPON DAMAGES
    
    set cm_E11_BLASTER_DAMAGE "70"
    set cm_E11_BLASTER_VELOCITY "9001"
    
    set cm_DISRUPTOR_MAIN_DAMAGE "100"
    set cm_DISRUPTOR_ALT_DAMAGE "200"
    
    set cm_BOWCASTER_DAMAGE "160"
    set cm_BOWCASTER_VELOCITY "6500"
    
    set cm_REPEATER_DAMAGE "60"
    set cm_REPEATER_ALT_DAMAGE "50"
    set cm_REPEATER_SPLASH_DAMAGE "30"
    set cm_REPEATER_VELOCITY "9001"
    
    set cm_DEMP2_DAMAGE "120"
    set cm_DEMP2_ALT_DAMAGE "16"
    set cm_DEMP2_VELOCITY "2000"
    
    set cm_FLECHETTE_DAMAGE "35"
    set cm_FLECHETTE_ALT_DAMAGE "60"
    set cm_FLECHETTE_VELOCITY "6000"
    
    set cm_ROCKET_DAMAGE "150"
    set cm_ROCKET_SPLASH_DAMAGE "100"
    set cm_ROCKET_VELOCITY "2000"
    
    set cm_CONCUSION_DAMAGE "150"
    set cm_CONCUSION_SPLASH_DAMAGE "80"
    set cm_CONCUSION_ALT_DAMAGE "200"
    set cm_CONCUSION_VELOCITY "3000"
    
    set cm_STUN_BATON_DAMAGE "200"
    
    set cm_MELEE_SWING1_DAMAGE "200"
    set cm_MELEE_SWING2_DAMAGE "9001"
    
    set cm_THERMAL_DETONATOR_DAMAGE "999"
    set cm_THERMAL_DETONATOR_ALT_DAMAGE "999"
    set cm_THERMAL_DETONATOR_VELOCITY "1000"
    
    set cm_TRIP_MINE_DAMAGE "9999"
    
    set cm_DET_PACK_DAMAGE "999"
    set cm_DET_PACK_SPLASH_DAMAGE "999"
    
    set cm_BRYAR_PISTOL_DAMAGE "20"
    set cm_BRYAR_PISTOL_VELOCITY "9001"
    
    ///////////////////////////////////////////////////////////////////////
    Then save the file. This will give you the improved gun damages and projectile velocities. Also look near the bottom of your server.cfg and check there is a line:

     

    exec damages.cfg
    If there isn't, add it just before where you start the map and the very bottom of the server.cfg.

     

    Also look for the line

    set cm_starting_weapons "1"
    and set it to "1" if it isn't already. If the line isn't there, simply copy it into your server.cfg.

     

    All you need to do now is start up the map using the map command eg:

    map SD_Tatooine
    You can either place this at the bottom of your server.cfg, or by typing it into rcon.
  4. Hydroball is a game in which two teams try to get a ball into each others goal. First to 10 goals wins. Both teams start near their goal, with the ball starting in the centre. Whenever someone scores the ball is immediately put in the centre with no break.

     

    To install it, download this http://jediknight3.f...com/file/;69338 (sorry for the jk2files link, we don't have it here yet) and extract it to your gamedata folder. That should give you a hydroball folder containing a hydroball.pk3 and a few text files.

     

    Your Moves and Controls

    • Swim around just like in base JKA, aiming with the mouse and using W,A,S,D and your crouch/jump keys to move. The more force you have the faster you go. If you have the ball, your force will go down as you move.
    • Punch with mouse 1 when you don't have the ball. This will slow you down, and your force won't regenerate while you are punching. Punching another player will lower their force and sometimes make them drop the ball.
    • Diving tackle with mouse 2. This uses 50 force, so you wont be much use for a while after doing it. You will fly forwards when you release mouse 2, and can smash into other players. This will knock them over for a moment, and usually makes them drop the ball if they have it.
    • Throw the ball with mouse 1. Hold this down a long time to charge up a big throw.
    • You can also use force push and pull to move players and the ball. Doing so will quickly drain away all your force leaving you useless for some time however.
    Good Tactics

     

    Some people like to assign set player positions, others like to switch around as the game goes on, either method works well, so I wont list positions and how to play each role, I will give you a general overview of what you need to do as a team to win a game of Hydroball.

    • Hold The Centre At All Costs

      Whenever either team scores, the ball immediately returns to the centre. If you go on the offensive, bringing your entire team to the enemy goal, the moment you score the enemy may already have someone waiting at the centre, and can often immediately score, sometimes several times in a row. For this reason, you should always keep at least one player in the centre to get the ball, or stop the enemy from getting it.

    • Getting The Ball

      When the enemy has the ball, the nearest player with enough force to catch him should chase him and use a tackle to make him drop the ball. Now, ideally, a second player on your team with more force should get the ball and get it out of there. If no one else is to hand get the ball, and get rid of it as soon as you can. You wont have enough force to do much with it yourself, and the player you just tackled will no doubt try to tackle you back, so throw it to the nearest team-mate.

    • Scoring With The Ball

      Now that you have the ball, you will loose force as you move, making you slow down quite quickly. If you try and swim too far with the ball, other faster players will tackle you easily. As soon as you get the ball:

      -If you are near enough, and no enemy is near enough to tackle you while you charge up, take a shot at goal.

      -If you are too far away, pass to the player nearest the goal who isn't surrounded by enemies.

      -If you are about to get tackled, pass to the nearest other player, even if he is behind you. If you pass backward, your team-mate can probably pass forward again before anyone can reach him, so this is far better than getting tackled.

      -If you are the closest player to the enemy goal, and don't have time to score, try to pass to an ally behind you, if that isn't an option, throw the ball forward as far as you can, and hope an ally gets to it first.

    • Getting Into Position

      After throwing the ball or getting tackled, you are probably low on force and wont be much use for a moment. While your force increases, get into a useful position:

      -If no one is guarding centre, go straight there, this way, regardless who scores, you can get an easy goal, or prevent your enemy getting one.

      -If your allies are going for goal ahead of you, get in position to get the ball back if your team drops it.

      -If your allies have the ball and are behind you, get in a good place to receive the ball and score.

      -If the enemy has the ball and you are near your goal, position yourself to tackle anyone they might pass to, or to tackle them if they come your way.

      -If the enemy has the ball and you are near their goal, you probably wont be of much use getting it back, so position yourself to receive the ball and score if your team gets it.

      Obviously, be intelligent, and spread your team out throughout the arena. If you just all get into a massive scrum around the ball, you wont achieve anything.

    • Defending Your Goal

      For the most part, if someone takes a good shot at your goal, you cant really stop them, as the ball goes too fast. Your only real chance is to use force push on the ball as it approaches you. Usually, you are far better off going after the man with the ball than trying to block the ball as he throws it. As such, if you want to assign a goal keeper, you are usually better off having a defender, who stays back keeping his force high, and can quickly take out anyone who is about to score.

    Hope this helps you all.
  5. Here is the end result we are aiming for:

    UFM4g.jpg

    It lets us connect the top of a cylinder to other flat brushes, allowing us to make a round hole in a floor or similar. It doesnt matter if you are using a cylinder, or an inverted cylinder, this should work for both.

     

    Method:

    First off, because radiant doesnt know how to cap a cylinder, we need to make a bevel.

     

    Make a brush around the lower right corner of your cylinder:

    zXC8Q.jpg

     

    Now, go into the "Curve" menu, and select bevel:

    U0RP0.jpg

     

    now cap it like so:

    JjAuk.jpg

     

    c45kp.jpg

     

    Delete the bevel and the top part of the endcap:

     

    epqCQ.jpg

     

    now move the bottom part up to the top and copy/paste/rotate it around:

     

    UFM4g.jpg

     

    Add brushes if you need it to be wider:

     

    mytp7.jpg

  6. MUG gives us his explanation on how to create your own skin of any kind!

     

    This guide will teach you how to make a custom skin and get it into the game. I will assume you know how to open a pk3 for this tutorial.

     

    1. Getting all the files you will need and setting up a workspace

    A skin consists of several different elements which we need to include. If you want to use a custom model you should find everything you need in its pk3. If you want to use a base model, you will find what you need in base\assets1.pk3 As an example for this tutorial I will use "Rodian" from base.

    • Create a new folder wherever you like (on the desktop, in my documents or whatever) and name it something like "workspace". Doesnt matter what you call it.
    • Inside "workspace" make a folder called "base"
    • Inside of that make a folder called "models"
    • and inside that make a folder called "players"

    Now we can grab the model and texture files

    • Go into assets1.pk3 (or the pk3 for the custom model if you are using one) and navigate to models\players. Then find the folder for the model you want (in my case "rodian") and copy it into the models\players folder we made earlier.
    • We also need to copy over the folder called "_humanoid" from models\players in assets1. We wont include this in the finished pk3, it just allows us to use modview to look at how the skin will look when we are making it. If you are working on a jk2 model, you will need the jk2 humanoid folder which can be found in the game's assets or download it here.

    These are the most important files, I will cover how to add shaders, custom sounds, npc support and bot support etc further down.

    Our workspace should be looking like this:

    https://jkhub.org/images/bS99z.jpg

    and we should have a load of files inside the modelname (rodain) folder:

    https://jkhub.org/images/KSSB1.jpg

    I will quickly outline what all of these types of files are. I'll give you more details on each further down.

    Texture files - (usually .jpg or .tga) These are the actual images that are wrapped around a model and are the main thing we are here to change.

    Icon files - (usually .jpg or .tga) These are the menu images for each different skin the model has.

    .skin files - These tell the game which textures to wrap around which part of the model. There is one for each team skin, the default skin (no team) and any extra varients added (usually for sp npcs)

    model.glm - This is the actual model which we wont be editing. We don't need to include it if we are using a base model, but we need it while we are working on it for modview to work.

    sounds.cfg - This tells the game which sound set to give the model.

     

    2. Modview

    In order to look at the skin, we can use a program called modview.

    To load a model in modview:

    • Start up modview
    • hit open and navigate to the folder we created (workspace\base\models\players\rodian)
    • open model.glm

    A couple of error messages will pop up telling you that modview couldn't find any shaders and a stormtrooper caps texture. Hit OK on those and you should be presented with this:

    https://jkhub.org/images/GPsUf.jpg

    If that didnt work check that you copied the _humanoid folder correctly and that all your folders are laid out propperly (base\models\players\WhateverModelYouAreEditing) You may also need to use the JK2 _humanoid folder instead if it's a jk2 model. You can get that here.

    You can click and drag about to rotate the model and right-click and drag to zoom. You can also use this button:https://jkhub.org/images/L23d4.jpg to fit the camera to the model. The button to the right of this refreshes textures (if we have saved changes to any images since we opened modview it will update them)

     

    On the left there are a load of things of interest.

    The options under "skins available" allow us to switch to the different team skins and variants set up by the .skin files in our model's folder by double clicking them.

     

    "Sequences" lets us take a look at the model doing any of the game's player animations (these come from the _humanoid folder). You can use the play/stop/forward/back etc buttons on the tool bar too.

     

    3. Editing The Textures

    This is probably the main thing you wanted to do. First thing you need to do is work out which textures you want to edit. Are you just making a new version of the default skin? Which parts do you need to change? It should be fairly evident which textures are what if you look at them. If you aren't sure which textures you need to edit, take a look in the relevant .skin file (ie model_default.skin to see what textures are used in the default no-team skin option) It will list all of the textures used.

     

    To edit the textures you need some kind of graphics editor. I use The GIMP which is free, most people prefer Photoshop. I'm not going to teach you how to get good at editing the images, there are tons of tutorials for that all over the net but I will walk you through the process:

    • Open the texture you want to edit in your chosen graphics package
    • Edit it however you like
    • To see your changes, save the image then press this button in modview: https://jkhub.org/images/bR3s0.jpg
    • Repeat for any other textures you want to edit.

    4. Overwrite or Model Copy or .skin or what

    At the moment, our skin is set up to replace the default Rodian textures. This would mean that every rodian you see, be it another player, yourself or an NPC, will have your altered textures.

     

    If that is what you were aiming for then you are done! You don't need to worry about shaders, bot files etc, the game will just load the default ones from assets. All you need to do is remove the _humanoid folder and any files in the rodian folder that you didnt change and then throw the "models" folder into a pk3. If you are using a custom model, you will need to include all of the files you didn't change too, so all you need to delete is _humanoid

     

    There are several other options at this point, that allow you to not replace the default skin but create an edited copy of the model with a different skin which wont replace it.

     

    The simplest way is Making A New .Skin Option:

    This lets us just create an extra skin option for the existing model (much like the team skins) The base game doesnt display these on the profile menu (many mods such as japlus do) but they can always be accessed via the console with /model modelname/skinname (eg /model rodian/blue or /model rodian/mugsedit) The upside of doing things this way is that if someone doesn't have your skin installed, they will see you as the default skin for the model instead of kyle. The downside, is you have to use the base sounds and team skins.

     

    Alternatively there is Making A Renamed Copy of The Model which is the most common way that people make skins. This lets you change everything about the model (sounds, team skins, bot files, etc) The downside is that there are way more things you need to set up, the file size is bigger and you will look like kyle to anyone without the skin installed.

     

    Finally there is Making A Customisation Species which allows users to choose/mix up various head/torso/legs options for the model. You aren't limited to using head/torso/legs, if you like you can have something like bag colour selection on a wookie instead of leg options or things of that nature. This is the most complex and time consuming option to set up (especially if you want lots of parts to choose from) but is by far the most complete method. Players without the mod will see the model/default skin for the model if you are adding customisation options to a base model. If it's a custom model other players will see kyle.

     

    4.1 Making A New .Skin Option

    • Rename all of the textures you have changed (eg i'm changing "head.jpg" to "head_mugsedit.jpg" etc)
    • Make a copy of "model_default.skin" and rename it to model_whatever (eg "model_mugsedit")
    • Open the copy in notepad or notepad++ or whatever you like to use to edit text files.
    • Replace every instance of the old name for a texture you have renamed with your new name (eg i need to replace every "head" with "head_mugsedit") ctrl+h is your friend here. See 5. for more info on .skin files.
    • Save the file

    An easy way to test if this has worked is to load up the model in modview and select your skin on the left. If any parts look wrong or are missing (or indeed if your option isn't listed), check if you messed up that part of the .skin.

     

    Now you need to make an icon for the new .skin. (See 7. below)

    You will also need to make a shader if any of the textures you altered use one. See the Shaders section below.

    All you need to do now is remove _humanoid, any unaltered textures, all the original icons and .skin files. Basically delete everything that isn't renamed by you or made by you. Finally, copy all the contents of your "base" folder into a pk3.

     

    4.2 Making A Renamed Copy of The Model

    For this method you do not need to rename any of the textures

    • Rename the model's folder (eg rodian) to a name of your choice (eg mugsrodian)
    • Open model_default.skin in notepad or any other plain text editor.
    • Press ctrl+h to bring up the replace menu
    • Replace all /OriginalModelFolderName/ with /NewModelFolderName/ (eg replace all /rodian/ with /mugsrodian/) include the "/" as sometimes you might replace something you shouldn't.
    • Remove _humanoid and paste everything in the "base" folder into a pk3

    You will need to make copies of any shaders relating to the model (see 7. below) as well as bot file npcs etc.

     

    4.3 Making a Custom Species

     

    This lets you set up a character creation menu where you can select A torso, a head and a lower part from a list. This is pretty involved to do, so I would recommend reading the rest of the tutorial (especially sections 4.1 and 5) before you attempt it. You can still make a default skin, team skins and alternate skin options (as in 4.1) which can be selected from the menu as normal in addition to the character being on the custom menu. I would also suggest having a pk3 for a custom species model to look at as you read this. (here's one I made earlier. Take note that all the actual textures are base, so not included in the pk3)

     

    The way this works, is we create a .skin file for each "part" that the player can choose. Each part will need its own icon, so that it can be selected from the menu. The naming convention is that all head parts are named head_a1.skin head_a2.skin etc, torsos: torso_a1.skin and leg parts are lower_a1.skin. The matching icons should be icon_head_a1.jpg etc.

     

    The head .skin files should each only include the lines from the model_default that relate to the head, the torso .skins should only include the lines from the torso and the lower parts only including the lines for the legs. For example, if adding Species support to the Jedi (as in the link above) the lines should be divided like so:

     

    model_default

    hipsa,models/players/jedi/legs.tga
    hipsa_torso,models/players/jedi/torso.tga
    l_lega,models/players/jedi/boots_hips.tga
    l_lega_cap_hips_off,models/players/stormtrooper/caps.tga
    r_lega,models/players/jedi/boots_hips.tga
    r_lega_cap_hips_off,models/players/stormtrooper/caps.tga
    hipsa_cap_r_leg_off,models/players/stormtrooper/caps.tga
    hipsa_cap_l_leg_off,models/players/stormtrooper/caps.tga
    hips_cap_torso_off,models/players/stormtrooper/caps.tga
    torso,models/players/stormtrooper/caps.tga
    torsoa,models/players/jedi/torso.tga
    torsoa_l_shoulder,models/players/jedi/torso.tga
    torsoa_r_shoulder,models/players/jedi/torso.tga
    r_arma,models/players/jedi/torso.tga
    r_handa,models/players/jedi/basic_hand.tga
    r_handa_wrist,models/players/jedi/torso.tga
    r_handa_cap_r_arm_off,models/players/stormtrooper/caps.tga
    r_arma_cap_r_hand_off,models/players/stormtrooper/caps.tga
    r_arma_cap_torso_off,models/players/stormtrooper/caps.tga
    l_arma,models/players/jedi/torso.tga
    l_handa,models/players/jedi/basic_hand.tga
    l_handa_wrist,models/players/jedi/torso.tga
    l_handa_cap_l_arm_off,models/players/stormtrooper/caps.tga
    l_arma_cap_l_hand_off,models/players/stormtrooper/caps.tga
    l_arma_cap_torso_off,models/players/stormtrooper/caps.tga
    torsoa_cap_l_arm_off,models/players/stormtrooper/caps.tga
    torsoa_cap_r_arm_off,models/players/stormtrooper/caps.tga
    head,models/players/jedi/torso.tga
    heada,models/players/jedi/head_01.tga
    heada_face,models/players/jedi/face_01.tga
    heada_eyes_mouth,models/players/jedi/mouth_eyes.tga
    headb,*off
    headb_face,*off
    headb_eyes_mouth,*off
    head_cap_torso_off,models/players/stormtrooper/caps.tga
    torso_cap_head_off,models/players/stormtrooper/caps.tga
    torso_cap_hips_off,models/players/stormtrooper/caps.tga

    head_a1

    head,models/players/jedi/torso.tga
    heada,models/players/jedi/head_01.tga
    heada_face,models/players/jedi/face_01.tga
    heada_eyes_mouth,models/players/jedi/mouth_eyes.tga
    headb,*off
    headb_face,*off
    headb_eyes_mouth,*off
    head_cap_torso_off,models/players/stormtrooper/caps.tga

    torso_a1

    hipsa_torso,models/players/reborn/forc_torso.tga
    torso,models/players/stormtrooper/caps.tga
    torsoa,models/players/reborn/forc_torso.tga
    torsoa_l_shoulder,models/players/reborn/forc_torso.tga
    torsoa_r_shoulder,models/players/reborn/forc_torso.tga
    r_arma,models/players/reborn/forc_torso.tga
    r_handa,models/players/reborn/forc_hand.tga
    r_handa_wrist,models/players/reborn/forc_torso.tga
    r_handa_cap_r_arm_off,models/players/stormtrooper/caps.tga
    r_arma_cap_r_hand_off,models/players/stormtrooper/caps.tga
    r_arma_cap_torso_off,models/players/stormtrooper/caps.tga
    l_arma,models/players/reborn/forc_torso.tga
    l_handa,models/players/reborn/forc_hand.tga
    l_handa_wrist,models/players/reborn/forc_torso.tga
    l_handa_cap_l_arm_off,models/players/stormtrooper/caps.tga
    l_arma_cap_l_hand_off,models/players/stormtrooper/caps.tga
    l_arma_cap_torso_off,models/players/stormtrooper/caps.tga
    torsoa_cap_l_arm_off,models/players/stormtrooper/caps.tga
    torsoa_cap_r_arm_off,models/players/stormtrooper/caps.tga
    torso_cap_head_off,models/players/stormtrooper/caps.tga
    torso_cap_hips_off,models/players/stormtrooper/caps.tga

    lower_a1

    hipsa,models/players/reborn/forc_legs.tga
    l_lega,models/players/reborn/forc_boots_hips.tga
    l_lega_cap_hips_off,models/players/stormtrooper/caps.tga
    r_lega,models/players/reborn/forc_boots_hips.tga
    r_lega_cap_hips_off,models/players/stormtrooper/caps.tga
    hipsa_cap_r_leg_off,models/players/stormtrooper/caps.tga
    hipsa_cap_l_leg_off,models/players/stormtrooper/caps.tga
    hips_cap_torso_off,models/players/stormtrooper/caps.tga

    Once you have decided how you wish to separate the parts, it's just a case of copying the .skin file, renaming it and editing it with the new texture paths for the alternate part options, then making the icons for each.

     

    Finally, all that is left to do is include a "playerchoice.txt" file. This allows you to set up colour options for the character, in combination with shaders. I never use this option as I always favoured adding more texture options instead. In order for the Species menu to work, you will need to include a defaulted version of playerchoice.txt however, even when not using the feature. Simply save a notepad file with these contents to the model folder:

     

    playerchoice.txt

    *white
    {
    setcvar ui_char_color_red 255
    setcvar ui_char_color_green 255
    setcvar ui_char_color_blue 255
    }

    It is also vital to include a model_default.skin as not including it can cause crashes for some players when a player uses invalid part names. If you don't want model_default to be selectable from the menu, simply don't include the icon for it.

     

    And finally, remember to remove the humanoid folder before distributing your mod.

     

    5. .Skin Files

    These tell the game which textures to wrap around which part of the character model. There is usually one for each of the team colours (model_red.skin and model_blue.skin) and one for the default skin (model_default.skin). Sometimes models have a few extra ones which are meant to be hidden (model_whatever.skin) but are usable via /model modelname/skinname. Some models also add hidden skins to the profile menu. .Skin files are also used for each selectable part in a Customisation Species (see 4.3 for details)

     

    A .skin file is just a list of each part of the model and the name of the texture to wrap around it. Presented like this: part_name,location/of/texture.tga (eg hips,models/players/rodian/l_leg.tga)

     

    Base .skins seem to always have .tga at the end of a line even if the texture isn't a tga, I'm pretty sure that it just makes no difference at all what extension you put at the end, so basically don't worry if it says tga and you used a jpg, it will still work.

     

    If you want to completely hide part of the model, instead of typing a texture name put: *off (eg head_tophat,*off)

     

    You will see models/players/stormtrooper/caps.tga several times on nearly ever model. This is the texture that is used for basically every "cap" in the game. A cap is, in layman's terms, the stump when limbs are dismembered.

     

    6. Making Icons

    The easiest way is to copy "icon_default" and rename it to match your .skin file (eg "icon_mugsedit"). If you want to make your own icon, there are a few ways of doing it, you can either use a screenshot (click here for lots of useful commands for screenshots) or you can use these replica base icon backgrounds made by SiLink and a shot from modview to make an icon to match the base ones.

     

     

    7. Shaders

    A shader is basically something the lets you apply various visual effects and a few other properties to textures. Often, a .skin file points to a shader instead of a texture. A single .shader file can contain multiple shaders. They can be opened in notepad and look like this:

    https://jkhub.org/images/3VXrz.jpg

    The highlighted part is one shader, named c3po_leg if we were to put models/players/protocol/c3po_leg in a .skin file, that would point to this. This particular shader takes a texture of the same name "models/players/protocol/c3po_leg" and applies a environment map to it (gfx/effects/chr_inv) and then also applies a specular map (models/players/protocol/c3po_leg_s), this basically makes it shiny. I wont go into how you can design shaders of your own here, I will just teach you how to fix up a shader to work for your modified skin. (ie if we had made a new version of the texture models/players/protocol/c3po_leg and wanted to give it the same shiny maps as the original one)

     

    Setting up the shaders for a reskin of a base model can be awkward as they hide nearly all of the character shaders in one file. Unsurprisingly, shaders can be found in the "shaders" folder.

     

    How to adjust a shader to work for renamed textures (if you have made new textures for a .skin file/Customisation Species) or for a renamed model:

    First we need to find the original shader we need to change. If we are using a custom model, there is probably just a .shader file in the shaders folder of it's pk3. Just copy paste it and give the copy a new name. If there are multiple .shader files, you probably need to copy and paste them all with new names.

     

    If we are using a base model this is a bit more awkward:

    • open up base/assets1.pk3
    • go into /shaders and open players.shader

    This file lists a load of shaders from all the playermodels in the game. We need to track down all the relevant shader files for our model, and paste them into a new .shader file.

    • go to your workspace and make a base/shaders folder if you don't already have one
    • save a blank txt file as a .shader file (eg mugsrodian.shader) The name doesn't matter but keep it relevant so you know what it is.
    • in players.shader hit ctrl+f and search for the original name of the model you are editing (eg players/rodian)
    • This should bring you to the name line for a shader. If you don't find anything your model probably doesn't have any shaders so you can skip this entire section. If you do find a shader, copy the whole thing across to the blank .shader file we made
    • Click find next and copy any other shaders you find.

    Here is how my mugsrodian.shader looked for the rodian

    models/players/rodian/fins
    {
    culltwosided
    {
    map models/players/rodian/fins
    blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
    rgbGen lightingDiffuse
    }
    }
    models/players/rodian/tint_torso
    {
    {
    map models/players/rodian/tint_torso
    rgbGen lightingDiffuseEntity
    }
    {
    map models/players/rodian/tint_torso
    blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
    detail
    rgbGen lightingDiffuse
    }
    }
    models/players/rodian/tint_l_leg
    {
    {
    map models/players/rodian/tint_l_leg
    rgbGen lightingDiffuseEntity
    }
    {
    map models/players/rodian/tint_l_leg
    blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
    detail
    rgbGen lightingDiffuse
    }
    }
    models/players/rodian/tint_boots_belt_vest
    {
    {
    map models/players/rodian/tint_boots_belt_vest
    rgbGen lightingDiffuseEntity
    }
    {
    map models/players/rodian/tint_boots_belt_vest
    blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
    rgbGen lightingDiffuse
    }
    }
    models/players/rodian/tint_l_boot
    {
    {
    map models/players/rodian/tint_l_boot
    rgbGen lightingDiffuseEntity
    }
    {
    map models/players/rodian/tint_l_boot
    blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
    detail
    rgbGen lightingDiffuse
    }
    }

    Now, we need to edit all of this (or the shader file(s) you copied if this is a custom model) to work for our skin.

    If you copied the entire model and renamed the folder this is easy:

    • ctrl+h and replace all of the original model folder with your new name (eg replace models/players/rodian with models/players/mugsrodian) and save. Done.

    If you have copied and renamed textures this is a bit more trickey:

    • Find any textures that you changed (either manually or with crtlf+f) and change them to their new name, in both the shader name and the shader code:

    Eg if I altered the rodian/fins texture and made a new rodian/mugsfinstexture, I need to change

    models/players/rodian/fins
    {
    culltwosided
    {
    map models/players/rodian/fins
    blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
    rgbGen lightingDiffuse
    }
    }

    to

    models/players/rodian/mugsfins
    {
    culltwosided
    {
    map models/players/rodian/mugsfins
    blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
    rgbGen lightingDiffuse
    }
    }
    • If one of the shaders doesn't have any changed textures in it you can just delete that entire shader. You don't need it.

    If you want to know more about shaders I'm sure that someone intelligent will make a full tutorial about their deeper workings and I will link it here.

     

    8. Sounds

    Choosing what sound bank your character uses is dead easy. In base/assets0.pk3 in the folder sound/chars there are a huge list of folders for different characters, you can look inside them and play the sounds to hear what they are like. Pick one of those folders. (alternatively you can use sounds from a custom model if you copy their sound folder into your workspace)

    To set it:

    • Open the sounds.cfg file in your model's folder in workspace (if there isn't one there, create a new one in notepad)
    • In the first line type the name of the sound folder you want
    • on the second line type "m" or "f" for the character's gender (used in kill messages etc)

    eg:

    rodian1
    m

    If you like, you can create your own sounds for your model either by recording your own or by getting some sounds from somewhere. All the sounds need to be in mono and need to be either .wav or .mp3. A free sound editor/recorder is .

    Then it is just a case of looking at all the sounds used in one of the default sound folders and creating your own folder laid out in the same way with new sound files named the same. If you don't include a sound, the default one will be used (the same sounds you hear when you don't have another player's skin)

  7. Sometimes when you start up JKA you get the error "VM_Create on UI failed" and instead of starting up JKA you will get this console:

    0II7T.jpg

     

     

    Solutions

     

    If you are running Windows 7 or Vista, you need to give jka administrative privileges. The easiest way to achive this is to disable User Account Control. To do this, go to the "User Accounts" page within the control panel and select "Turn User Account Control on or off".

     

    If for some mad reason you wish not to do this, find where you installed jka (usually C:\Program Files\LucasArts\Star Wars Jedi Knight Jedi Academy\gamedata) and right click "jamp.exe" (or if you are playing Single Player, jasp.exe) and choose properties. On the "Compatibility" tab tick "Run this program as an administrator".

     

    The usual cause if you aren't running vista or Windows 7, is that you still have a Jedi Academy process running. (this sometimes happens if jka fails to close correctly)

     

    To fix it open up the task manager by right clicking on a blank part of your task bar:

    sQpxJ.jpg

     

    and end every "jamp.exe" or "jasp.exe" process you can see:

    zOwrU.jpg

  8. Simply type:

     

    /cg_deferplayers 0

     

    into the console, or add it to a .cfg file and exec it. Alternatively, you can find this option in the menu under Setup > Game Options > Defer Player Models: On/Off

     

    There is a reason that this is not set like this normally; the game lags for a moment when the new model is loaded and whenever a player connects, so I don't recommend using this if you are playing a match, but for normal play, the occasional small lag spike isn't really a problem.

     

    To undo this, just set it back to 1.

  9. There is a great deal of information that can be displayed in jka by setting a few cvars to 1:

    • Open notepad or some other text editor like notepad++
    • Copy the following into it:
    //Display the lagometer (graph which shows how good your connection to the server is)
    cg_lagometer 1
    //Display your Frames per second Counter
    cg_drawfps 1
    //display the round timer
    cg_drawtimer 1
    //display the radar in team games and vehicles
    cg_drawradar 1
    //display your team mates' HP and locations in team games.
    cg_drawteamoverlay 1
    • Click save as
    • select "save as type:"  "all files(*.*)"
    • type a name and add .cfg to the end. (eg display.cfg)
    • Start jka and open the console
    • type /exec [your file name] (eg /exec display)
    To disable any of the displays we have added, simply change the 1 to a 0 and re-save and exec the file. You can also manually type each line into the console rather than using a cfg file (eg /cg_drawfps 1 in the console to turn on the fps meter)
  10. VSTRs (Variable Strings) are a neat little way of assigning a command (or group of commands) a name which you can enter to use. For example:

     

    /set haddock say I like haddock

    sets a vstr called haddock that makes the user say "I like haddock" on use.

    The format is: /set [vstrname] [command(s)]

     

    To use a vstr:

    /vstr [vstr name]

    eg

    /vstr haddock

     

    It is important to note that JKA tends not to remember vstrs between sessions, so if you want to save them, create a cfg.

     

    A few things you can do with vstrs

     

    You can bind a vstr to a key:

    /bind x vstr haddock

     

    You can even make a vstr with multiple commands just like in a bind:

    /set spam "say I hate white people;wait 200;say lololololololollololoollollol"

    would make you say "I hate white people" and then say "lolololololololololo" after a short delay whenever you type /vstr spam

     

    Make a vstr that changes what it does (useful for a number of advanced things):

    /set haddock "say hi;set haddock say no you"

    the first time you /vstr haddock it will make you say "hi" the second time you will say "no you"

     

    Vstr uses with servers

    You can set up vstrs in your server cfg or in other configs. These can be used via rcon to quickly do things with one command. Additionally there is an admin command in japlus (and I think in some other mods) "amvstr" which can be used by admins to make the server run vstrs. This means that server admins can effectively give their admins access to some specific commands that they have set with server side vstrs, without needing to give them rcon access.

     

    Making A Command Selection Cycle:

    You know the force selection on Q E and F? Imagine if you could do that, but instead of selecting force powers you could select from a list of commands you pre-set in a config. Here's how to do it.

    • Go to base and create a new text file.
    • Rename it to cycle.cfg (or anything else you want.cfg)
    • Open it in notepad or any other text editor
    • First lets set up the keys:
    Choose a random name for your cycle. I will go with "cycle" for simplicity. Type:

    bind [ vstr cycleprev
    bind ] vstr cyclenext
    bind enter vstr cycle
    You can replace "[", "]" and "enter" with you choice of previous, next and use keys (like Q, E and F)
    • Now get a list of all the commands you want to be selectable. Here is my example list:
    cg_draw2d 0

    cg_draw2d 1

    saber single_4

    saber single_4 single_6

    (you can have way more than 4 commands (any number in fact) i just used 4 for simplicity)

    • Now here is the hard part you need to make a load of vstrs, one for each command in this format:
    seta cycle2 "set cycle [command 2];set cycleprev cycle1;set cyclenext cycle3;echo Message"

    For cycle1 you need the "set cycleprev" to name the last cycle and for the last cycle entry you need "set cyclenext cycle1"

    Example:

    seta cycle1 "set cycle cg_draw2d 0;set cycleprev cycle4;set cyclenext cycle2;echo Hide Hud"
    seta cycle2 "set cycle cg_draw2d 1;set cycleprev cycle1;set cyclenext cycle3;echo Show Hud"
    seta cycle3 "set cycle saber single_4;set cycleprev cycle2;set cyclenext cycle4;echo Single Saber"
    seta cycle4 "set cycle saber single_4 single_6;set cycleprev cycle3;set cyclenext cycle1;echo Dual Sabers"
    • Finally you need to set the default setting:
    "set cycle [command 1];set cycleprev cycle4;set cyclenext cycle2"

    here is the full example file:

     

    bind [ vstr cycleprev
    bind ] vstr cyclenext
    bind enter vstr cycle
    
    seta cycle1 "set cycle cg_draw2d 0;set cycleprev cycle4;set cyclenext cycle2;echo Hide Hud"
    seta cycle2 "set cycle cg_draw2d 1;set cycleprev cycle1;set cyclenext cycle3;echo Show Hud"
    seta cycle3 "set cycle saber single_4;set cycleprev cycle2;set cyclenext cycle4;echo Single Saber"
    seta cycle4 "set cycle saber single_4 single_6;set cycleprev cycle3;set cyclenext cycle1;echo Dual Sabers"
    
    "set cycle cg_draw2d 0;set cycleprev cycle4;set cyclenext cycle2"
    To activate it, go in game and type /exec cycle into the console. The game should now remember the cycle for good. If it stops working simply type /exec cycle again.
  11. To set a key to a command:

    Type:

    /bind [key] [command name]

    into the console and press enter

     

    eg: /bind k kill

    would make you commit suicide whenever you press your k button.

     

    To bind multiple commands to a key:

    /bind [key] "[command 1];[command 2]"

    (you must put double quotes around multiple commands when binding)

     

    To see all your current key bindings:

    /bindlist

     

    eg:

    /bind x "kill;say I JUST CANT TAKE ANYMORE"

    to kill yourself and then scream about the horror of life.

     

    Keys

    Most keys are just the name of the button (eg "a" or "." or "[" or "shift") with these exceptions:

     

    Semicolon

    backspace

    The numpad:

    kp_slash

    kp_star

    kp_minus

    kp_plus

    kp_enter

    kp_del

    kp_ins

    kp_end

    kp_downarrow

    kp_pgdn

    kp_leftarrow

    kp_5

    kp_rightarrow

    kp_home

    kp_uparrow

    kp_pgup

     

    Click here for a list of all commands which can be bound, which someone has obviously already made

    DarthValeria likes this
  12. I will say just one last thing. In a setting such as this, once you pass your work on it's not yours anymore more. It belongs to the group.

    Maybe you should've thought about that before participating in a collaborative project.

    No-one made any agreements giving up rights to their work, so whilst it maybe be a dick move, I have every right to make it, and frankly, if there had been an agreement that anyone can veto any design decision I make, then I would never have got involved.

     

    Either way this has turned into a hostile mess now (which may well be to a great extent my fault), and I see that it would be best if I just depart from this project and take my portion of it with me.

  13. So I just wrote a lengthy post arguing further but I see no point in wasting time with that, as we can argue about this all year, and I don't think either of us are going to budge, so instead I'll just cut to the chase:

     

    I have already made it extremely clear that I do not give you permission to use my work if you are going to re-scale it, yet you apparently think you can ignore even that request. So remove my content, or I will go to extreme lengths to create as much fuss as possible.

  14. Okay I'm just going to go ahead and go full tantrum, like the mature guy I am.
     
    I am not arguing against what you are saying because I am offended, I am arguing because I completely disagree and think you are about to ruin what I suspect is my best mapping work to date. I'm afraid if you are going to re-scale my section of the map, I am going to have to insist you remove it from the project and I will release it separately in the scale I intended. I'm sorry, but I will not permit you to take my work and screw it up because you think you have a better idea of how big things of my own design are supposed to be.

     

    I think it is a shame that people here are being so elitist that they believe their opinion to be so much more valuable that they can justify changing things other people have made, after they have made it clear they disagree with the proposed changes, based on their preferences rather than any actual need for change. If this was a case of the map actually not working because of my area being physically too small to work, then I would concede, but it is simply a case of you thinking it would be better the way you want it. And no, I am not suggesting that I have a better idea of what the perfect size for an area is than the rest of you, but I think I am capable of knowing how big I intended it to be, and you could have the decency to respect that I built it the way I built it because that was how I wanted it to be, rather than waving your egos around and forcing your opinions on the rest of us.
     
    So please either leave my section in it's current scale, or remove it completely.

     

    Thank you.

  15. in assets1.pk3 lives the file ext_data\sabers\sabers.sab which contains a whole bunch of sabers which NPCs use and the player cannot. You can never use these. I see there is a key for "notInMP" but I see nothing defining if a saber is selectable in SP. Anyone know how that works?

  16. @@Delta_135 that should work. Feel free to improve upon that building, its just a thing I started on and never completed, so it's nice that its getting some kind of use =)

     

    @@Pande To return to the scaling discussions; Obviously, I cannot comment on the stuff added since I was working on the map, and I don't know if the different areas are off scale relative to each other, but as for your complaints about my train; I modeled it on a mixture of the different underground trains we have in London, don't know if you have been on something similar but they are cramped as hell, and the doors and seats are indeed very small. Basically everything is as small as they can possibly be whilst still being able to squeeze people into them. I very intentionally made the objects the size they are, relative to the player character.

     

    Obviously, if areas are off scale relative to each other, that could be a problem, as the map will look like the areas don't match up, and I can agree that fixing that may be necessary, however your comments about objects on the train are just your opinion on how big these objects should be, and I would find it somewhat upsetting if people change my design choices based on their differing design opinions, rather than a necessity to make the map work/make sense.

     

    Also, with the windows thing, if we look again at BlueIce Nightfall, there are plenty of interior windows with a shader on them which gives the appearance of there being something outside, but actually not being transparent. And I'm not suggesting just throw a skybox behind them either, I meant that a low-fi fake exterior could be mocked up like a few blocky buildings that resemble the actual map or such.

     

    I wont be making anymore posts about this, as I have made all the points I can make and further bickering wont really achieve anything, but I'd just like the future mappers to consider what I have said before they fuck my train up =P.

    CaptainChar, Delta_135 and MagSul like this
  17. Frankly, I think people are being completely unreasonable. The idea with this project was for each person to create an area and for the next people to work out how they wanted to attach their own to it. The idea of having open ended streets being a serious problem which means the map is beyond rescue is frankly ridiculous, as the entire point of the project was to leave space for the other mappers to expand.

     

    Equally, the idea that having a currently disconnected area with windows is a terrible problem which will result in the death of the map is completely delusional, as not only can window shaders be changed to a non-transparent one, or just have a small personal skybox/exterior area to prevent them having to overlook the map, we don't even know what the rest of the map will be like and whether that will even be a problem.

     

    I hope the next guy in the line won't be so pessimistic and will actually do some mapping rather than just throwing in the towel and explaining how they are going to go write a tutorial about how not to map like the people before them. That's just needlessly insulting, we knew from the start that there were going to be mixed skill levels in this project, and that it will take some work towards the end of the project to round off the edges and make it all work as a complete map.

     

    [/rant]

  18. Is there a dislike button, too?

    But no, seriously, I meticulously made sure every little detail of that thing was the perfect size. I think what pande may not be realising is that most maps that people make are for some reason on a crazy giant scale relative to the player models, and that JKA has a giant collision hit box for players.
×
×
  • Create New...