theuseless Posted September 3, 2012 Share Posted September 3, 2012 (edited) Hi. I have made potions which summon creatures regardless of the player skill. I wish to add an activator which will check for ingredients, in order to create the potions. All the potions are tested and work fine. I will make a message box to display the summon names. What I want is ingredient requirements. I was thinking of making them all a generic base, such as Void Salts, Glow Dust, and Ectoplasm. You would then add Clanfear Claws to make the summon Clanfear potion, Fire Salts for the Fire Atronoch, etc. It would be nice to get away from a generic requirement, or make the generic requirement plant based. If I get help here, I will publish the mod seperately as a modder's resource, rather than force people to reverse engineer it from my mod (which I allow). Summon Potions: ClanfearDark SeducerDremora LordFrost AtronochFlame AtronochFlesh AtronochGloom WraithLichRavenous HungerSewn Flesh AtronochSpider DaedraStorm AtronochXivalli With Summon Xenomorph and Xenomorph Clanfear potions on the way. I use the potions as NPC additions. You can also loot/purchase them from the NPC's. I would love to see some ideas. There are so many things I need to finish still... -edit-I want to use Vanilla resources only. The mod is heavy as it is, without making dependencies. Edited September 3, 2012 by theuseless Link to comment Share on other sites More sharing options...
cfh85 Posted September 4, 2012 Share Posted September 4, 2012 (edited) I think you're already onto a good formula. The question is is how rare do you want to potions to be? perhaps make use of nirnroot? Edited September 4, 2012 by cfh85 Link to comment Share on other sites More sharing options...
theuseless Posted September 4, 2012 Author Share Posted September 4, 2012 I like the nirnroot idea. I might just try it. I forsee the potions being fairly hard to make, as they require rare ingredients which must be looted or purchased. Nirnroot doesn't really serve that great of a purpose in vanilla oblivion. I know there are mods out there which make it more available and more useful. I will look into these to see if I can balance the potions with it. Link to comment Share on other sites More sharing options...
Hickory Posted September 10, 2012 Share Posted September 10, 2012 Have you ever seen the Pitcher Plants in Oblivion? They are rare (except in certain areas - marshes), and have NO harvestable ingredient. You could make an ingredient of your own (Pitcher essence/oil?) and assign it to the generic Oblivion plant at suitable seasonal harvest rates, then make it one of your prerequisites. Link to comment Share on other sites More sharing options...
theuseless Posted September 29, 2012 Author Share Posted September 29, 2012 (edited) Well, I have made the mod, but it doesn't seem to be uploading properly at the moment. I will post back here when I get it sorted out. The scripting works fine. Here are the two scripts I made, one for an activator, one for a quest. Potion bottle names are included as well. scn xxxSummonStationScript short ingredients begin OnActivate set ingredients to 0set xxxSummonStationQuest.stop to 0set xxxSummonStationQuest.pause to 0set xxxSummonStationQuest.potion to 0 if player.getitemcount MS39Nirnroot > 0 if player.getitemcount GlowDust > 0 if player.getitemcount Ambrosia > 0 set ingredients to 1 else set ingredients to 0 endif else set ingredients to 0 endifelse set ingredients to 0endif if ingredients == 1 set xxxSummonStationQuest.stop to 1 set xxxSummonStationQuest.fQuestDelayTime to 0.1 startquest xxxSummonStationQuestelse message "You lack the primary ingredients"endif end Begin onLoad set ingredients to 0set xxxSummonStationQuest.stop to 0set xxxSummonStationQuest.pause to 0set xxxSummonStationQuest.potion to 0 end scn xxxSummonStationQuestScript short stopshort pauseshort potionshort potionfloat fQuestDelayTime begin GameMode if stop == 0 set potion to 0 set potion to 0 set pause to 0 set xxxSummonStationRef.ingredients to 0 stopquest xxxSummonStationQuest returnelse if pause == 0 messagebox "Do you wish to make a potion?" "No", "Clannfear", "Daedroth", "Dark Seducer", "Dremora Lord", "Flame Atronach", "Flesh Atronach", "Frost Atronach", "Gloom Wraith", "...more choices...", "Lich", "Ravenous Hunger", "Sewn Flesh Atronach", "Spider Daedra", "Storm Atronach", "Xivilai" set pause to 1endif if pause == 1 set potion to getbuttonpressed if potion < 0 return else set pause to 2 endifendif if pause == 2 if potion == 0 set stop to 0 return elseif potion == 1 if player.getitemcount ClannfearClaws > 0 player.removeitem ClannfearClaws 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonClanfear 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 3 endifendif if pause == 3 if potion == 2 if player.getitemcount DaedrothTeeth > 0 player.removeitem DaedrothTeeth 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonDaedroth 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 4 endifendif if pause == 4 if potion == 3 if player.getitemcount SEDBlackTar > 0 player.removeitem SEDBlackTar 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonDark 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 5 endifendif if pause == 5 if potion == 4 if player.getitemcount DaedraHeart > 0 player.removeitem DaedraHeart 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonDlord 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 6 endifendif if pause == 6 if potion == 5 if player.getitemcount FireSalts > 0 player.removeitem FireSalts 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonFatr 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 7 endifendif if pause == 7 if potion == 6 if player.getitemcount DarkHumanSkin > 0 player.removeitem DarkHumanSkin 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonFlatr 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 8 endifendif if pause == 8 if potion == 7 if player.getitemcount FrostSalts > 0 player.removeitem FrostSalts 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonFlrtr 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 9 endifendif if pause == 9 if potion == 8 if player.getitemcount Ectoplasm > 0 player.removeitem Ectoplasm 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonGWraith 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 10 endifendif if pause == 10 if potion == 9 messagebox "...more choices..." "Lich", "Ravenous Hunger", "Scamp", "Spider Daedra", "Storm Atronach", "Xivilai", "...previous choices..." set pause to 11 endifendif if pause == 11 set potion to (getbuttonpressed + 10) if potion < 10 return else set pause to 12 endifendif if pause == 12 if potion == 10 if player.getitemcount Bonemeal > 0 player.removeitem Bonemeal 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonLich 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 13 endifendif if pause == 13 if potion == 11 if player.getitemcount SEHungerTongue > 0 player.removeitem SEHungerTongue 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonRhunger 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 14 endifendif if pause == 14 if potion == 12 if player.getitemcount ScampSkin > 0 player.removeitem ScampSkin 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonScamp 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 15 endifendif if pause == 15 set pause to 16 endif if pause == 16 if potion == 13 if player.getitemcount DaedraSilk > 0 player.removeitem DaedraSilk 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonSpiderD 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 17 endifendif if pause == 17 if potion == 14 if player.getitemcount VoidSalts > 0 player.removeitem VoidSalts 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonStAtr 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 18 endifendif if pause == 18 if potion == 15 if player.getitemcount DaedraVenin > 0 player.removeitem DaedraVenin 1 player.removeitem GlowDust 1 player.removeitem MS39Nirnroot 1 player.removeitem Ambrosia 1 player.additem xxxPotionSummonXiv 1 set stop to 0 return else message "You lack the secondary ingredient" set stop to 0 return endif else set pause to 19 endifendif if pause == 19 if potion == 16 set potion to 0 set pause to 0 return endifendif else returnendif end First you will need to make the objects, including the quest. You Have the potions themselves, the activator and the quest. I am assuming you know how to make these simple objects. You can make the Activator's Editor Id anything you wish. The part you need to name it at is called the "Reference Editor ID". You find this when you first double click the activator in the worldspace. Make sure the Activator is a Persistent Reference as well. Change all instances of xxx to your own prefix. It should be fairly unique. You can do this by using a free program called Notepad++. It has a search and replace feature on the toolbar. Quest name: xxxSummonStationQuestActivator name: xxxSummonStationRef Potion Bottle names: xxxPotionSummonClanfearxxxPotionSummonDaedrothxxxPotionSummonDarkxxxPotionSummonDlordxxxPotionSummonFatrxxxPotionSummonFlatrxxxPotionSummonFlrtrxxxPotionSummonGWraithxxxPotionSummonLichxxxPotionSummonRhungerxxxPotionSummonScampxxxPotionSummonSpiderDxxxPotionSummonStAtrxxxPotionSummonXiv You will want to make them use the summon potion effect. Define it for as long as you want, make the potion valuable or not. I chose to make them 90 seconds, auto calculated value for the sample mod. Next you will need to initialize the script variables. Simply copy the scripts below, again changing the xxx out for your prefix. ;----------------------------------------------scn xxxSummonStationScript short ingredients;----------------------------------------------- Save this script, then make the second one: ;----------------------------------------------scn xxxSummonStationQuestScript short stopshort pauseshort potionshort potionfloat fQuestDelayTime;---------------------------------------------- Once you have copy/pasted these, you can save them. Make sure that the final script is saved as a quest script. You will now need to attach these to your base objects. Attach the first script to the Activator. The second one, the quest script, gets attached to the quest. Now make sure the quest is marked "Initially Disabled". Now you can make the scripts do things. Copy the two scripts provided, in full. Make sure to alter the xxx out of them. You may choose not to, but any mods that use this would conflict with yours. It is considered rude to do so. Simply copy the scripts and paste over the old versions of them. All the variables are the same. Once you have saved the full length scripts, you are done!! As always, you should make the stuff unique, replace the xxx with the prefix of your choice. I spent a lot of time testing this on various computers with Xp and 7, all running different hardware. In other words, I extensively playtested it, re-writing scripting until it works on even the most basic computer. For some reason, it won't allow me to download the file after I upload it, so I set the original download as hidden until such a time that I can figure it out. The esp file works fine for me, the zip file works as expected. I just can't get it to d/l from the nexus... Edited September 29, 2012 by theuseless Link to comment Share on other sites More sharing options...
Recommended Posts