"Puzzle" - Printable Version +- Frictional Games Forum (read-only) (https://www.frictionalgames.com/forum) +-- Forum: Amnesia: The Dark Descent (https://www.frictionalgames.com/forum/forum-6.html) +--- Forum: Custom Stories, TCs & Mods - Development (https://www.frictionalgames.com/forum/forum-38.html) +---- Forum: Development Support (https://www.frictionalgames.com/forum/forum-39.html) +---- Thread: "Puzzle" (/thread-18044.html) |
"Puzzle" - Froge - 08-30-2012 For the GiveItem function: GiveItem(string& asName, string& asType, string& asSubTypeName, string& asImageName, float afAmount); asName - internal name asType - item to give asSubTypeName - item name for .lang file asImageName - image.tga I'm a bit confused about the difference between asName and asType. I'm thinking asName is the name of the item to give, but then what's asType? In FG's "Inventory.hps" folder I noticed that for asType under all the GiveItem functions they put "Puzzle." So what does that do? RE: "Puzzle" - Adny - 08-30-2012 I'm not sure about your specific question, but if you wish to use that type of function, use GiveItemFromFile: GiveItemFromFile(string& asName, string& asFileName); asName = the name you want to give that item asFileName the entity (.ent) file name RE: "Puzzle" - Froge - 08-30-2012 Wiki says that function is used almost exclusively for debugging only. RE: "Puzzle" - Your Computer - 08-30-2012 I would argue the second argument relates to the subtype for items. RE: "Puzzle" - Zaffre - 09-01-2012 Note: This may be inaccurate, as I am relatively new to coding AngelScript and coding in general, but this seems to work fine for what I do. I usually just use the same for asName and asType. For instance, take a look at a script I'm making for my upcoming story Rising Water. I've bolded the parts that are important. void OnStart() { SetEntityPlayerInteractCallback("stone_hammer_1", "TorchScare", true); AddUseItemCallback("chemical_container_1", "chemical_container_1", "acid_container_1", "FillJarWithAcid", false); } void TorchScare(string &in item) { SetLampLit("torch_static01_1", false, true); GiveSanityDamage(10, true); PlaySoundAtEntity("react_scare", "react_scare", "Player", 0, false); PlaySoundAtEntity("enemy_hallucination_disappear", "enemy_hallucination_disappear", "torch_static01_1", 0, false); } void FillJarWithAcid(string &in item, string &in entity) { GiveSanityBoostSmall(); RemoveItem("chemical_container_1"); GiveItem("chemical_container_full", "chemical_container_full", "AcidPot", "chemical_container_full.tga", 1); PlaySoundAtEntity("ui_use_oil", "ui_use_oil", "Player", 0, false); } void OnEnter() { StopMusic(0, 0); StopMusic(1, 0); PlayMusic("23_amb02", true, 1, 6, 0, false); } void OnLeave() { } For the GiveItem command, I used "chemical_container_1" for both the type and name. When I use the chemical pot on the acid container, it fills with acid with a sound playing, and gives sanity. In fact, I just use the same for type and name for pretty much any command, like the torch scare, where I use the same text input for the PlaySoundAtEntity which plays "enemy_hallucination_disappear" and extinguishes a torch when I pick up a hammer. I also used "react_scare" for the gasp afterward. Basically speaking, the input I use for type and name are usually identical, and the script functions correctly. I hope this helps you, Chronofox. EDIT: In case you still don't get it, I'll use a PlaySoundAtEntity example. PlaySoundAtEntity("react_pant", "react_pant", "Player", 0, false); I used the same thing for type and name. The first strings of the command are type and name. I used "react_pant" for both the type and name. Type and name are the same thing. They still function correctly. RE: "Puzzle" - Your Computer - 09-01-2012 @Zaffre, i would argue that if the type doesn't match an internal type, it would default to Puzzle. |