• 0

    posted a message on Full FPS Library for Public Use!

    - Making a map using the mod file, making the First Person camera object, and implementing the trigger library. This covers making the map file itself. Watch this first.

    - This shows what to do once the map is made. Shows how to place units, demonstrates how they behave in the map, demonstrates the ammo system, shows how to place ammo-refill items.

    - This is just the finishing few minutes of the above listed Part 1.

    There's now two tutorials total. The second tutorial is split between two videos because it was a little longer than the 15 minutes total that youtube allows. At the end of tutorial 2, you will have witnessed the creation of the FPS Engine v2.0 Demo Map listed on the FPS Engine asset page. Right after I ended the video recording program I saved the map, and that map I then uploaded as the demo map. So basically it shows from start to finish what the steps are to make your own FPS map with my engine, from the creation of the map with the mod as primary custom dependency to the importation of the trigger library to the creation of terrain, ammo items, and enemies, to finally testing the map. Hope these tutorials help.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on Full FPS Library for Public Use!

    Okaydokay. So. Version 2 is out. Check it out, it's a huge improvement.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on Picking up Items

    Ahah! I have it. The trigger event for picking up a pickup item is

    Unit - Any Unit uses Collect at Generic6 - Complete stage (Include shared abilities)

    I kept trying to use the 'kill (target unit of triggerig ability)' function to them make the item disappear but nothing would happen. I could see it was a problem on the action side of the trigger though because the trigger was being called sucessfully.

    It turns out that the item is the unit that is using the ability, not the unit that runs into the item. So in other words when

    Unit - Any Unit uses Collect at Generic6 - Complete stage (Include shared abilities)

    you access the item itself as (triggering unit). thus my trigger looks like:

    Unit - Any Unit uses Collect at Generic6 - Complete stage (Include shared abilities)

    Unit - Kill (Triggering unit)

    General - Switch (Actions) depending on (Unit type of (Triggering unit))

    .Cases

    ..General - If (Pickup - Pistol Ammo - 1 Clip)

    ...Actions

    ....Variable - Modify [WEP] Number of Clips[[PISTOL] ID]: + 1

    ..General - If (Pickup - Rocket Ammo - 1 Clip)

    ...Actions

    ....Variable - Modify [WEP] Number of Clips[[ROCKET] ID]: + 1

    ..Default

    Obviously you'd replace the case variables with the unit type of whatever item you're using.

    Yea baby that's the mothereffin workaround. Mmhmm, I think so.

    Posted in: Triggers
  • 0

    posted a message on How can I rotate a turret with a trigger?

    As far as I know either nobody's solved this problem via triggers yet, or if they have, they're not telling. The method I have in mind is to export, say, the siege tank model. Copy the model. Now open the first copy and delete the turret geometry. Save as 'siege body' model' or watev. Now, open the second copy. Delete the body geometry. Save as 'siege turret model'. Now you've split the geometry so you have the tank body and the tank turret separated into two different model files. Now, import those models to your map. Set the siege tank to use the 'siege body' model. Now, use the 'create model' actor command to create a model actor with the model being the siege turret model. Attach that model to the seige tank unit actor's 'turret' attachment point. Then make a trigger that sets the models rotation to whatever. so for example to make the turret look where the camera is looking for a third person shooting tank game, you'd make a trigger than sets the model's rotation to the current player's camera yaw every 0.0 seconds.

    Posted in: Triggers
  • 0

    posted a message on Full FPS Library for Public Use!

    [ASSET PAGE]

    BacklitAvenger's FPS Engine Trigger Library v2.0

    [TUTORIALS]

    - Making a map using the mod file, making the First Person camera object, and implementing the trigger library. This covers making the map file itself. Watch this first.

    - This shows what to do once the map is made. Shows how to place units, demonstrates how they behave in the map, demonstrates the ammo system, shows how to place ammo-refill items.

    - This is just the finishing few minutes of the above listed Part 1.

    There's now two tutorials total. The second tutorial is split between two videos because it was a little longer than the 15 minutes total that youtube allows. At the end of tutorial 2, you will have witnessed the creation of the FPS Engine v2.0 Demo Map listed on the FPS Engine asset page. Right after I ended the video recording program I saved the map, and that map I then uploaded as the demo map. So basically it shows from start to finish what the steps are to make your own FPS map with my engine, from the creation of the map with the mod as primary custom dependency to the importation of the trigger library to the creation of terrain, ammo items, and enemies, to finally testing the map. Hope these tutorials help.

    --

    Anyway, hey there! So version 2.0 comes with a working item system, a working ammo system, zoom with the right mouse button, bugfixes for the 'constant' weapon oprators, and most importantly, it comes with enemies that shoot back. It even takes whether you're moving or stationary into account when determining if the enemies hit you with their weapons. The video linked to above shows how to use the data mod and trigger library to make a map. I'm in the process of exporting and uploading a second video showing how to add units and ammo items.

    This is a fully functional FPS combining my WASD library, my FPS camera rig library, and my soon to be released weapons library which is in itself a more complex version of my soon to be released traceline library.

    There's also an associated *.sc2mod file for use in making your maps.

    The way to implement it is as follows:

    1 - Open the new map window and hit the 'modify' button for dependencies.

    2 - Click add other, select my FPS engine mod, and hit open. This will add the mod file to the dependency list at the bottom of said list.

    3 - Use the up arrow button to move the selected FPS engine data mod v2.0 file to the top of the dependency list.

    4 - Hit okay to close the 'document dependency' window. Specify the rest of your map's settings, such as base ground height, terrain set, size, etc.

    5 - Hit okay to create the new map.

    6 - Create a new camera object. Set its properties as follows: field of view = 27, distance = 1, pitch = 0, z offset = .65. Trust me on this one even if these sound like unusual property values.

    7 - Open the trigger window. Go to the data pulldown at the top of the screen and select Library -> Import Library.

    8 - Select the FPS Engine V2.0 trigger library, and hit okay.

    9 - Open the library view if it isn't already open. Select all the triggers and folders and variables within the FPS Engine library folder. Maks sure you hav the entire contents of the library folder selected, and then Right Click -> Copy all the stuff.

    10 - Now, select the map triggers window. Delete the 'Melee Initialization' trigger. You should now have an empty trigger list. Right Click -> Paste all the contents of the library folder you just copied into the map trigger window.

    11 - Go back to the library viewing window. Collapse the FPS Engine library with the little triangle on the left side of the library's folder. Right Click -> Clear the library, deleting the folder. A 'objects in use' warning will pop up. Ignore it, and hit OK to confirm deletion.

    12 - Finally, locate the global variable named 'Camera'. It will be near the top of the list of all the stuff you just imported. Currently it has no default value. This we will change.

    13 - Almost done. Select the global variable 'Camera', and click the hyperlink-looking text that says 'No Camera Object'. This will open a dialog window. Go to the tab titled 'value'. The camera you just made will be listed. Select it and hit OK to set your newly created camera object to be the default initial value of the global variable 'Camera'.

    14 - That's it! Create some interesting terrain, some cliffs at least one of which has a ramp, and two of each of the following for player 0 (neutral): Marine Marauder Goliath Science Vessel Viking (ground mode)

    1. 15 - Hit test map. The commands are as follows:

    WASD to move Left mouse button to shoot Right mouse button to zoom. Each of the weapons has its own level of zoom. Period to move forward through your weapons Comma to move back through your weapons Mouse to look around Q key to release the mouse from look-mode when you're done.

    Try not to hit the middle mouse button, because this will zoom the camera out something awful, and you'll either have to restart the map to restore the proper FPS camera or hit the right mouse button to restore the camera. Now, to demonstrate what the FPS Engine library can do, try to walk through a unit, and try to walk through/up a cliff. You won't be able to because of my pathing. Now, try walking up the ramp, and try walking underneath one of the science vessels. These you can do, thanks again to my pathing.

    Finally, blast away! Try each of the weapons in turn, because each is representative of one of the four types of weapon operators I provide. Instant does damage with a weapon that has a bullet that moves so fast you can't see the projectile and the hit on the terrain or unit is 'instantaneous'. Instant is represented by the rifle weapon. Projectile is for weapons where the projectile would move slowly enough that it can be seen moving along its trajectory path and is represented by the rocket launcher. AoE Constant is represented by the flamethrower. This will do damage to units in a cone of fire extending from the player's view point, and as long as you hold the space key, it will continue to fire. Finally AoE linear is used for automatic-fire weapons, and is here represented by the autocannon which unfortunately has a rather silly looking projectile right now. Again, as long as the spacebar or left mouse button is held, it will continue to spit lead. Since the weapons do damage via a damage effect, they use the SC2 damage system, fully capable of utilizing both its damage bonus for a certain unit armor property (armored, light, etc) and the special death animation specifications, so that the flame weapons cause the units hit to die with their fiery death animations, the rocket with their exploding death animation.

    Anyway, the system is incomplete. There's still no enemy AI, and still no ammo/health/item system. The AI I will be doing in the coming next few days. The health/ammo/item system is already triggered in my original FPS map, but not yet trigger-library-ized.

    Constructive criticism or whatnot is greatly encouraged, because anything you guys point out I can continue to refine and thus improve the engine. The idea is for the public to be able to use the engine either in part of in whole for their own projects as long as I'm credited and they don't try to claim it as their own trigger-work. I'm very proud of how far the engine's come so far, but there's a ways to go yet. All the same I'm a solid proponent of open source design, hence the emphasis on other people being able to use this as their own. I started this project when I went looking for an FPS engine to use in my campaign and found the few around at the time to be sorely lacking. This way, now that I've added one more option to the mapping wilderness, mappers can have a relatively simple to implement 'plug and play' FPS engine as a starting point from which to base their maps. The trigger library is absolutely filed chock full of comments explaining what everything does, how to add to the existing triggers/weapons/units, and so forth. This is so that people can easily pick up where I've left off to make the engine work the way they want for whatever their purpose is without having to poke around in the dark trying to figure out what does what in this complex trigger system. Furthermore, and probably foremost, it is so that people new to mapping and modding can still use the engine and most importantly understand the workings of the engine, giving them valuable insight on triggering.

    Like I said, comments/critiques/suggestions are greatly desired and appreciated. Do let me know what you think if you don't mind taking a few moments to do so. The more input I get the more I can improve the system.

    There's also a demo map you can download first to see the engine in action so you can make an informed decision whether or not to them download and use the engine library and mod itself.

    I have a youtube video of how to implement the map within a day or two so that people can follow along while doing the steps listed above. Seeing it visually I expect will render it much easier to understand the implementation process.

    Cheers BacklitAvenger

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on WASD library and FPS library - Use them as your own!
    Quote from Caipa: Go

    Is it good to make only ONE Big Trigger with a lot of commands and a refresh in 0.0 Realtime or is it better to make 4 Triggers (maximal 2 at the same time) and only with 1/3 or 1/4 size? In the case that only 1 button is pushed the "perfomance" will be better or? Do you know a way to measure the efficience of a trigger method like a runtest or something?

    I'm gonna get on this right away and try to find an answer to yer question.

    There's a performance window in the debug window that I'll use to find out.

    The weapons library is on the way, ad almost ready.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on WASD library and FPS library - Use them as your own!
    Quote from Caipa: Go

    Only 2 Triggersevents for the Button (updown) is because of the network traffic is clear but why do you use so many variables (boolsche operators)?

    I'm assuming you're talking about the WASD triggering. I'll list each variable in the WASD trigger set and what it does:

    Forward Left Right Back

    These four are true if the key is down. The reason the 'if' statements have two actions instead of just setting the variable to true or false is because it sets the variable corresponding to the key that's down as true. Secondarily, it also sets the opposing direction to be false. This ensures that there can never be a situation where the boolean for a direction and the boolean for the opposite direction are both true. I don't know what my camera update function would do if it detected opposite variables both being true, but I doubt it would do anything useful. So, I set the opposing variable to false so that situation can't ever happen anyway. Those are the only booleans thre are in the WASD system.

    Movement enable?

    This is a boolean which is required to be true if movement is going to take place. Purpose of that is to allow you to momentarily take movement away from the player during the game. An example of a use in that fashion is this: Player gets into a vehicle. The camera pans from the current FPS view to a TPS camera centered on the vehicle over one second. For that second you'd set movement enable to be false, so that while the camera pans and you enable the third person triggers in the library the player doesn't accidentally move the camera target with a WASD press.

    Forward key Right Key Left Key Back Key

    These are letter variables. This lets you set what letters are used for movement. An example of a trigger using these can be found in my FPS/TPS map itself which can in turn be found in the thread linked to in my signature. The use I put it to is giving the player an options menu that allows them to set what they want to use for moving and shooting. Movement in that case in my map can be WASD or arrow keys depending on player preference. The shooting command can be the left mouse button or the spacebar.

    That's it.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on WASD library and FPS library - Use them as your own!

    V2.0

    K so here we go. Pathing is fixed.

    Like I noted in the vaeats, the demo maps are rather rough. Basically all they are is just the library imported into a map. in the WASD one the camera's jerky, but the wasd library isn't. It does its job so I figure eh, good enough to demonstrate the library.

    The new version of the FPS w/pathing also has a new demo map. Check it out and see if you can find any pathing bugs, because I playtested it to death and AFAIK the pathing is fuly working now.

    @ M1n1sh4

    I don't know quite what you mean by the libraries don't work. Can you be more specific? All you do with the FPS camera map is import the library, create your FPS camera object in the terrain tab, and then follow the instructions in the 'Map Init' trigger.

    To summarize: 1 - Go to the terrain window an make a new camera. Set it to a FPS-like camera. Example would be distance of 1, field of view around 25 to 30. Pitch to 0. Z offset to 0.6.

    2 - Now, go to the action in the 'Map init' trigger that sets player 1's view to a camera. The camera field is currently occupied by a variable 'camera'.

    3 - Click that field. It will open a window which will open with the 'variables' tab selected. Select the 'value' tab instead. Your camera you made will be listed there. Select it an then hit okay to close the field edit window.

    4 - Now the field should say 'camera 001' or whatever the name of your camera object. It should not be a variable named 'camera'.

    5 - Lastly, delete the variable named 'camera', as it's a placeholder. Nothing will go wrong if you don't delete it, but for tidyness sake why not.

    Don't know how much simpler to put the instructions. Let me know if you still can't get it working.

    Finally, how to make attacking AI? Simply make a trigger like this EVENT: every 0.0 sec CONDITION: movement enable = true ACTION: move unit instantly to point: unit field should be 'invisible dummy unit' and point should be 'Camera location' The invisible dummy unit would be whatever dummy you either place in the map terrain window, or create through triggers. as for making the dummy unit, that is done in the data editor.

    Hope that explains things.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on WASD library and FPS library - Use them as your own!

    Realized I didn't really explain what they do or how they work.

    WASD - This sets the values of four booleans, one for each of the keys. To determine if a variable should be true or false if looks for a key pressed type variable with a predetermined value (W, A, S, D or the arrow keys etc). That way you can change keysets for movement in the map as a sort of player preference option. To use it you'd need a trigger that periodically checks to see if the four direction variables are true, meaning the key is down, and then doing some action in response.

    FPS - This is primarily an FPS camera set up. It has TPS capabilities but it's geared towards FPS. By that I mean that there's pathing in it, to keep the player from walking up a cliff or through a unit. TPS doesn't really need pathing that way because there's a unit involved, and that keeps it from making illegal movements. Anyway the only thing you need to do to make it work is replace a field in the map initialization trigger action where it sets the player view to a camera. You need to make a camera in the map window and set its properties to those acceptable for an FPS (height around 0.6, distance low, angle of view 20 to 30ish, my settings in my map). Then in the map init trigger replace the camera field. It is currently occupied by a placeholder variable unsurprisingly named 'Camera'. Replace that variable with your camera listed in the 'value' tab, and there you go.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on WASD library and FPS library - Use them as your own!

    [UPDATE] Pathing is fixed 100%. Check it out and try to prove me wrong so I can fix it if I am. I playtested the FPS demo map a whole bunch tho and I think it's spot on. Also, within a few hours I should have a generic traceline library up and then also a version of the FPS camera system that has a fully implemented weapon traceline with four different weapon trace types (projectile ie rocketlauncher, instant ie sniper rifle, AOE constant ie flamethrower, linear constant ie gatling gun).

    Here's a WASD library as well as an FPS camera library which utilizes the wasd. There's also a demo map for each, showing what they're capable right out of the box. All I did was import the libraries. Then for the WASD I created a single trigger to turn the direction key booleans into a moving hellion, and for the FPS replaced the placeholder variable 'Camera' in the initialization trigger with a camera object I set to look like an FPS view. I admit both maps are sloppy, but the libraries are the important things here, I only made the maps so that you could see an example of each library implemented to give you an idea of how you can integrate them into a map. In the Wasd map, use wasd to move and turn the hellion along a little racecourse thingy. For the FPS, try running into a cliff, and then try running into a unit, and then finally try climbing onto a cliff by use of a ramp.This will demonstrate my custom function for FPS pathing: no dummy units necessary.

    Posted in: Trigger Libraries & Scripts
  • 0

    posted a message on Trigger libraries

    Does anybody know how to get your trigger libs to export an import without the variables being garbaged? I have a WASD library for folks to use whenever they want wherever they want for whatever purpose, and a FPS/TPS camera/movement setup that includes the WASD built in, again for public use, but I can't very well put them up here in this forum with the variables all FUBARed. I'm pretty sure I'm just running on far too much caffeine and far to little sleep and missing something superduper simple here. Somebody wanna be an awesome dude and point me to said mistake?

    Posted in: Galaxy Scripting
  • 0

    posted a message on Third Person Camera/Movement

    @Kanaru: Go

    And also set camera bounds to region from circle ((unit point)(.01))

    This run this every 0.0 seconds along with the camera yaw set mentioned above. This way the camera will not just face the unit's direction, it will also follow the unit around.

    Posted in: Miscellaneous Development
  • 0

    posted a message on FPS Engine - Download and use it as your own!

    New version: proper options menu by hitting the letter O key, cliff and unit pathing refined, and health bar implemented.

    Posted in: Miscellaneous Development
  • 0

    posted a message on making units randomly miss

    Well here's a suggestion then. Click the link in my signature. That's the thread for my FPS engine. It's not open source perse because I did it all myself but it IS available for anybody to use in part or in total. Specifically check out the missile launcher weapon. It fires a projectile along a line. Anyway, what is pertinent to this question is how my missile registers if it hits a unit or not. That's the 'unit impact operator' custom function. Basically when it's callec, it checks the point given to it. If there's a unit within a circular region centered on the point with radius of 1, it adds that unit to a unit group. Then it takes the unit in that unit group (all units within distance of 1 from the point you gave the function) that is closest to said point, and sees if the point is within that unit's radius.

    Anyway what that has to do with your map is basically that you can adapt my unit impact function and adapt it to your purposes. If I understand you correctly, what you're doing is having a unit shoot at another unit. So you'd run my function every .001 seconds, giving it the location of the fired projectile as its point parameter. If the hero unit that got shot at is within a range you'd specify in the custom function, then the unit impact operator will return the hero unit that was shot at. That would mean that the unit was hit. Otherwise if it missed, meaning that the hero that was shot at is NOT within a certain range of the projectile, then it will return no unit.

    Does that make sense? If not let me know and I'll try to be more clear. Also if you want I can adapt the custom function to your purpose myself, rather than you having to do it yourself. Lemme know if that helps/works for your purposes, yeah?

    Posted in: Miscellaneous Development
  • 0

    posted a message on The List of things that aren't possible:

    AFAIK it's entirely impossible to get an XYZ point from a unit's attach point.

    Posted in: Galaxy Scripting
  • To post a comment, please or register a new account.