User Tools

Site Tools


hpl2:tutorials:script:scripting_by_xtron_-_item_that_unlocks_a_door

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
hpl2:tutorials:script:scripting_by_xtron_-_item_that_unlocks_a_door [2011/12/22 14:01]
yourcomputer
hpl2:tutorials:script:scripting_by_xtron_-_item_that_unlocks_a_door [2012/06/23 16:11]
silentstriker [THE SCRIPT]
Line 2: Line 2:
  
  
-In this tutorial ​( the first one actually ) will I ( xtron ) show you! ( the person who reads this ) how to make a item that unlocks a specific door!.+In this tutorial will I ( xtron ) show you how to make a item that unlocks a specific door!.
  
  
-**\\  **  +==== THE DOOR ====
- +
- +
-**THE DOOR:** +
  
  
Line 23: Line 20:
  
  
-**THE ITEM:\\  ** +==== THE ITEM ==== 
  
  
Line 42: Line 39:
  
 <code text> <code text>
-<​CATEGORY Name="​Inventory">​ +<​CATEGORY Name="​Inventory">​  
-  +    <Entry Name="​ItemDesc_item1">​Item description</​Entry>​ 
-  +    <Entry Name="​ItemName_item1">​Item name</​Entry>​
-<Entry Name="​ItemDesc_item1">​Item description</​Entry>​ +
-<Entry Name="​ItemName_item1">​Item name</​Entry>​ +
-  +
- +
 </​CATEGORY>​ </​CATEGORY>​
 </​code>​ </​code>​
Line 59: Line 52:
  
  
-**THE SCRIPT:** +==== THE SCRIPT ​====
  
  
-First off you will need a .hps file and I guess you already have it but to be sure [[http://​www.mediafire.com/?​krxqcj3qdxrj9xs|wClean HPS FILE]] change NAME.hps to your +First off you will need a .hps file and I guess you already have it but to be sure [[http://​www.mediafire.com/?​krxqcj3qdxrj9xs|wClean HPS FILE]] change NAME.hps to your map name.
- +
- +
-map name.+
  
  
Line 72: Line 62:
  
 <code cpp>void OnStart() <code cpp>void OnStart()
-  
 { {
-  +    ​AddUseItemCallback("",​ "​ITEM",​ "​DOOR",​ "​FUNCTION",​ true);
-AddUseItemCallback("",​ "​ITEM",​ "​DOOR",​ "​FUNCTION",​ true); +
- +
 } }
 </​code>​ </​code>​
Line 89: Line 76:
 <code cpp>void FUNCTION(string &in asItem, string &in asEntity) <code cpp>void FUNCTION(string &in asItem, string &in asEntity)
 { {
-    SetSwingDoorLocked("​DOOR"​, false, true); +    SetSwingDoorLocked(door, false, true); 
-    PlaySoundAtEntity("",​ "​unlock_door", ​"​door1"​, 0, false); +    PlaySoundAtEntity("",​ "​unlock_door", ​door, 0, false); 
-    RemoveItem("​ITEM"​);+    RemoveItem(item);
 } }
 </​code>​ </​code>​
Line 100: Line 87:
  
 <code cpp>void OnStart() <code cpp>void OnStart()
-  
 { {
-  
    
 } }
 </​code>​ </​code>​
- 
- 
-//\\  //  
  
  
 Change the FUNCTIONNAME to the function name you picked in the previous step. Change the FUNCTIONNAME to the function name you picked in the previous step.
- 
- 
-Change the DOOR to your door name and then the ITEM to your item name and then it's all done!. 
  
  
Line 121: Line 100:
  
 <code cpp>void OnStart() <code cpp>void OnStart()
-  
 { {
-AddUseItemCallback("",​ "​ITEM",​ "​DOOR",​ "​FUNCTION",​ true);+    ​AddUseItemCallback("",​ "​ITEM",​ "​DOOR",​ "​FUNCTION",​ true);
 } }
    
 void FUNCTION(string &in asItem, string &in asEntity) void FUNCTION(string &in asItem, string &in asEntity)
 { {
-    SetSwingDoorLocked("​DOOR"​, false, true); +    SetSwingDoorLocked(door, false, true); 
-    PlaySoundAtEntity("",​ "​unlock_door", ​"​door1"​, 0, false); +    PlaySoundAtEntity("",​ "​unlock_door", ​door, 0, false); 
-    RemoveItem("​ITEM"​);+    RemoveItem(item);
 } }
    
 </​code>​ </​code>​
 +
 +
 +The best way of doing this kind of script is by using the syntaxes asItem and asEntity to your advantage
 +
 +
 +so instead of writing the name of the door and key inside the function like the one above you write something like this:
 +
 +
 +<​code>​
 +void OnStart()
 +{
 + AddUseItemCallback("",​ "​NAMEOFTHEITEM",​ "​NAMEOFTHEDOOR",​ "​FUNCTION",​ true);
 +}
 +
 +void FUNCTION(string &in asItem, string &in asEntity)
 +{
 + SetSwingDoorLocked(asEntity,​ false, true);
 + PlaySoundAtEntity("",​ "​unlock_door",​ asEntity, 0, false);
 + RemoveItem(asItem);​
 +}
 +</​code>​
 +
 +
 +So this works since asEntity is declared as the name of the door and the asItem is declared as the item you want to use on the door through the AddUseItemCallback.
 +
 +
 +So by using this code you can write more AddUseItemCallback and call the same function and they will unlock their corresponding door with the corresponding item.
  
  
Line 139: Line 144:
  
  
-Created by xtron+Created by xtron<font 16pt:​normal/​Arial;;​inherit;;​inherit ​  >​\\  
 +</​font>​
  
  
-<​font ​16pt:​normal/​Arial;;​inherit;;​inherit ​          ​>\\  ​</​font>​+<​font ​10pt:​normal/​Arial;;​inherit;;​inherit ​   >Edited by SilentStriker</​font>​
  
hpl2/tutorials/script/scripting_by_xtron_-_item_that_unlocks_a_door.txt · Last modified: 2013/08/22 15:12 by yourcomputer