Loot: Difference between revisions
Created page with "== Introduction == This wikipage is for general information and guides dealing with loot related things. == Basic Loot Objects == You can add loot into your map by right clicki..." |
Add a link and comment to Framed Art under See Also |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Introduction == | == Introduction == | ||
This | This wiki page is for general information and guides dealing with loot related things. | ||
== Basic Loot Objects == | == Basic Loot Objects == | ||
You can add loot into your map by right clicking the orthoview in DR and selecting create entity. Preconfigured loot objects are available in the | You can add loot into your map by right clicking the orthoview in DR and selecting 'create entity'. Preconfigured loot objects are available in the entity lists. You can also make new non-standard loot objects by changing the spawnargs on an already added loot item: inv_loot_value, model, etc. | ||
=== Loot Paintings === | |||
A new feature in [[What's new in v1.01|TDM v1.01]] are '''loot paintings'''. This are simple paintings that the player can frob, and then steal. | |||
[[Image:Painting_before_frob.jpg|240px]] | |||
[[Image:Painting_after_frob.jpg|240px]] | |||
==== How to add to your map ==== | |||
Add one of the following entities to your map: | |||
* atdm:loot_painting | |||
* atdm:loot_painting_medium | |||
* atdm:loot_painting_large | |||
==== Customizing ==== | |||
You can set the spawnarg [[skin]] on the created entity and then select a different skin. | |||
In addition, you can add the following spawnargs and modify them: | |||
* [[inv_loot_value]] (default is 225) | |||
* [[inv_loot_type]] (default is 3, meaning LOOT_GOODS) | |||
It makes sense to keep the type at 3. For the value, be careful to not set it too high or too low. | |||
==== See Also ==== | |||
* "[[Framed Art]]" for a fuller and more up-to-date treatment of framed paintings, including lootable ones. The images shown above no longer represent how the looted paintings look by default, but you can still achieve that appearance by changing a spawnarg value. | |||
* [[Combo entities]] | |||
== Advanced Loot Objects == | == Advanced Loot Objects == | ||
Line 9: | Line 41: | ||
=== Loot Cache === | === Loot Cache === | ||
A Loot Cache is a special object that gives items to the player upon frobbing. A closed bag, for example. The player frobs it and receives an arrow. He frobs again and receives a health potion. When the player frobs the third time the bag is empty and the player gets nothing. These kind of objects could be useful for random stashes in the map. Mapper could prepare such a bag and teleport it anywhere in the map upon each mission restart, making the loot be in a different place each playtime, increasing replayability of the mission. When placing Loot Caches, be sure to make them seem unusual and different from their surroundings, luring the player to go and frob it. | A Loot Cache is a special object that gives items to the player upon frobbing. A closed bag, for example. The player frobs it and receives an arrow. He frobs again and receives a health potion. When the player frobs the third time the bag is empty and the player gets nothing. These kind of objects could be useful for random stashes in the map. Mapper could prepare such a bag and teleport it anywhere in the map upon each mission restart, making the loot to be located in a different place each playtime, increasing replayability of the mission. When placing Loot Caches, be sure to make them seem unusual and different from their surroundings, luring the player to go and frob it. | ||
Recipe: | Recipe: | ||
Create a func_static stash object. A bag, for example. Give it | Create a func_static stash object. A bag, for example. Give it "name loot_cache" and "frobable 1". Select the object and open it in the S&R editor. Add frob from the response list. The effect of the response should be trigger. Have it to trigger an entity named exec_inventory_grab. Create a atdm:target_callscriptfunction-entity and name it "exec_inventory_grab". Also give it spawnarg "call inventory_grab". | ||
The end result should be that when the object receives a frob, the S&R triggers the | The end result should be that when the object receives a frob, the S&R triggers the exec_inventory_grab, which in turn calls a script named inventory_grab. | ||
Create in your maps folder, alongside the mission-name.map a file called mission-name.script. | Create in your maps folder, alongside the mission-name.map a file called mission-name.script. | ||
Line 38: | Line 70: | ||
} | } | ||
You need to create item_name_X objects into your map's blueroom. These objects could be anything that can be picked up: loot, scrolls, books, player tools, player weapons, arrows. Expand the script if you have more objects in the cache, | You need to create item_name_X objects into your map's blueroom. These objects could be anything that can be picked up: loot, scrolls, books, player tools, player weapons, arrows. Expand the script if you have more objects in the cache, i.e. add more if sentences. Handy tip: remember that arrows have the inv_ammo_amount spawnarg. Setting this to 10 on the arrow entity could make the player receive 10 broadheads with a single frob. | ||
If you like, you could make a visual cue suggesting the Loot Cache contains objects. You could place a dummy func_static object, a broadhead shaft for example, to stick out from the Cache. Give the dummy-func_static spawnargs: "name dummy_arrow" "bind loot_cache", "frobable 1", "frob_distance 1". Give the loot_cache spawnarg "frob_peer_1 dummy_arrow". Now the arrow shaft is glued on the Cache and moves with it when the Cache is teleported. Also when the Cache is frob-highlighted, the dummy arrowshaft will highlight as well. If you add the command | |||
$dummy_arrow.remove(); | |||
to the last if sentence, the arrow shaft will vanish when the last object has been taken out from the cache, providing a visual clue that the cache indeed is now empty. | |||
[[Category:Tutorial]] | |||
[[Category:Editing]] |
Latest revision as of 16:42, 13 October 2021
Introduction
This wiki page is for general information and guides dealing with loot related things.
Basic Loot Objects
You can add loot into your map by right clicking the orthoview in DR and selecting 'create entity'. Preconfigured loot objects are available in the entity lists. You can also make new non-standard loot objects by changing the spawnargs on an already added loot item: inv_loot_value, model, etc.
Loot Paintings
A new feature in TDM v1.01 are loot paintings. This are simple paintings that the player can frob, and then steal.
How to add to your map
Add one of the following entities to your map:
- atdm:loot_painting
- atdm:loot_painting_medium
- atdm:loot_painting_large
Customizing
You can set the spawnarg skin on the created entity and then select a different skin.
In addition, you can add the following spawnargs and modify them:
- inv_loot_value (default is 225)
- inv_loot_type (default is 3, meaning LOOT_GOODS)
It makes sense to keep the type at 3. For the value, be careful to not set it too high or too low.
See Also
- "Framed Art" for a fuller and more up-to-date treatment of framed paintings, including lootable ones. The images shown above no longer represent how the looted paintings look by default, but you can still achieve that appearance by changing a spawnarg value.
Advanced Loot Objects
Sometimes more elaborate loot elements are required.
Loot Cache
A Loot Cache is a special object that gives items to the player upon frobbing. A closed bag, for example. The player frobs it and receives an arrow. He frobs again and receives a health potion. When the player frobs the third time the bag is empty and the player gets nothing. These kind of objects could be useful for random stashes in the map. Mapper could prepare such a bag and teleport it anywhere in the map upon each mission restart, making the loot to be located in a different place each playtime, increasing replayability of the mission. When placing Loot Caches, be sure to make them seem unusual and different from their surroundings, luring the player to go and frob it.
Recipe: Create a func_static stash object. A bag, for example. Give it "name loot_cache" and "frobable 1". Select the object and open it in the S&R editor. Add frob from the response list. The effect of the response should be trigger. Have it to trigger an entity named exec_inventory_grab. Create a atdm:target_callscriptfunction-entity and name it "exec_inventory_grab". Also give it spawnarg "call inventory_grab".
The end result should be that when the object receives a frob, the S&R triggers the exec_inventory_grab, which in turn calls a script named inventory_grab.
Create in your maps folder, alongside the mission-name.map a file called mission-name.script. Enter this kind of script into the file:
float cache_state = 0; // a global mapwide variable to tell the map how much stuff the player has taken from the cache. void inventory_grab() { sys.println("inventory grab script running"); // Print the text to the console if ( cache_state == 0 ) { sys.println("Give item 0"); $item_name_0.addItemToInv($player1); //put item_name_0 into player inventory and let the player know about it. } if ( cache_state == 1 ) { sys.println("Give item 1"); $item_name_1.addItemToInv($player1); } if ( cache_state == 2 ) { sys.println("Give item 2"); $item_name_2.addItemToInv($player1); } cache_state = cache_state + 1; // increment the variable to make the script give the next object to the player when he frobs the cache again. }
You need to create item_name_X objects into your map's blueroom. These objects could be anything that can be picked up: loot, scrolls, books, player tools, player weapons, arrows. Expand the script if you have more objects in the cache, i.e. add more if sentences. Handy tip: remember that arrows have the inv_ammo_amount spawnarg. Setting this to 10 on the arrow entity could make the player receive 10 broadheads with a single frob.
If you like, you could make a visual cue suggesting the Loot Cache contains objects. You could place a dummy func_static object, a broadhead shaft for example, to stick out from the Cache. Give the dummy-func_static spawnargs: "name dummy_arrow" "bind loot_cache", "frobable 1", "frob_distance 1". Give the loot_cache spawnarg "frob_peer_1 dummy_arrow". Now the arrow shaft is glued on the Cache and moves with it when the Cache is teleported. Also when the Cache is frob-highlighted, the dummy arrowshaft will highlight as well. If you add the command
$dummy_arrow.remove();
to the last if sentence, the arrow shaft will vanish when the last object has been taken out from the cache, providing a visual clue that the cache indeed is now empty.