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
hpl2:tutorials:script:scripting_by_xtron_-_item_that_unlocks_a_door [2011/07/13 17:44]
xtron
hpl2:tutorials:script:scripting_by_xtron_-_item_that_unlocks_a_door [2013/08/22 15:12] (current)
yourcomputer Corrected references
Line 1: Line 1:
-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!.+====== Item that unlocks a door ======
  
  
-**\\  ** +In this tutorial will I ( xtron ) show you how to make a item that unlocks a specific door!.
  
  
-**THE DOOR:** +==== THE DOOR ====
  
  
Line 20: Line 20:
  
  
-**THE ITEM:\\  ** +==== THE ITEM ==== 
  
  
Line 39: 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 56: 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]] ​+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.
  
  
Line 65: Line 61:
  
  
-//void OnStart()\\  /+<code cpp>void OnStart() 
 +
 +    AddUseItemCallback("",​ "​ITEM",​ "​DOOR",​ "​FUNCTION",​ true); 
 +
 +</code>
  
  
-//{\\  // +Change ITEM to your item, DOOR to your door name and FUNCTION can be whatever.
  
  
-//​AddUseItemCallback("",​ "​ITEM",​ "​DOOR",​ "​FUNCTION",​ true);​\\ ​ // +When you done that you will be needing the function
  
  
-//}//  +<code cpp>void FUNCTION(string &in asItem, string &in asEntity) 
- +{ 
- +    ​SetSwingDoorLocked(asEntity, false, true); 
-Copy the AddUseItemCallBack and paste it inside your { and } in your hps file. +    ​PlaySoundAtEntity("",​ "​unlock_door", ​asEntity, 0, false); 
- +    ​RemoveItem(asItem); 
- +} 
-Edit ITEM to your item name, DOOR to your door name and edit FUNCTION to whatever. +</code>
- +
- +
-When you're done with that you will be needing the function: +
- +
- +
-//void FUNCTION(string &in asItem, string &in asEntity)\\  ​{\\  ​SetSwingDoorLocked("​DOOR"​, false, true);\\  ​PlaySoundAtEntity("",​ "​unlock_door", ​"​door1"​, 0, false);\\  ​RemoveItem("​ITEM"​);\\  ​}\\  /+
  
  
Line 92: Line 86:
  
  
-//void OnStart()\\  /+<code cpp>void OnStart() 
 +
 +  
 +
 +</code>
  
  
-//{\\  // +Change the FUNCTIONNAME to the function name you picked in the previous step.
  
  
-//\\  // +When you're done it should look something like this:
  
  
-//}/+<code cpp>void OnStart() 
 +
 +    AddUseItemCallback("",​ "​ITEM",​ "​DOOR",​ "​FUNCTION",​ true); 
 +} 
 +  
 +void FUNCTION(string &in asItem, string &in asEntity) 
 +
 +    SetSwingDoorLocked(asEntity,​ false, true); 
 +    PlaySoundAtEntity("",​ "​unlock_door",​ asEntity, 0, false); 
 +    RemoveItem(asItem);​ 
 +
 +  
 +</code>
  
  
-Change ​the FUNCTIONNAME ​to the function name you picked in the previous step.+The best way of doing this kind of script is by using the syntaxes asItem and asEntity ​to your advantage
  
  
-Change ​the DOOR to your door name and then the ITEM to your item name and then it's all done!.+so instead of writing ​the name of the door and key inside the function like the one above you write something like this:
  
  
-When you're done it should look something like this:+<code cpp> 
 +void OnStart() 
 +
 + AddUseItemCallback("",​ "​NAMEOFTHEITEM",​ "​NAMEOFTHEDOOR",​ "​FUNCTION",​ true); 
 +}
  
- +void FUNCTION(string &in asItem, string &in asEntity
-//void OnStart()\\  //  +
- + SetSwingDoorLocked(asEntity,​ false, true); 
- + PlaySoundAtEntity("",​ "unlock_door", ​asEntity0false); 
-//{\\  //  + RemoveItem(asItem);​ 
- +
- +</code>
-//​AddUseItemCallback("",​ "ITEM", ​"​DOOR"​"​FUNCTION"​true);\\  /+
  
  
-//}// +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.
  
  
-//void FUNCTION(string &in asItem, string &in asEntity)\\ ​ {\\  SetSwingDoorLocked("​DOOR",​ false, true);​\\ ​ PlaySoundAtEntity("",​ "​unlock_door",​ "​door1",​ 0, false);​\\ ​ RemoveItem("​ITEM"​);​\\ ​ }// +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 131: 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.1310579086.txt.gz · Last modified: 2011/07/13 17:44 by xtron