Jump to content

Bulk Arrow Fletching


PracticalShutIn

Recommended Posts

I use the (MMM I think) Fletching Calipers to craft arrows, but the UI is painfully slow.

 

You have to make arrow shafts one bone at a time, and then arrow heads one item at a time, and then arrows in 10s at a time.

 

I wish there was a mod to speedily convert all bones to arrow shafts, maybe make all arrow heads, make all arrows instead of doing one at a time.

 

I have hope that this wouldn't be too hard because there's another mod that does the same sort of thing for gems! OOO Geomancy Gem Dust OBSE allows you to click on a gem and grind either one or all of them. Feathers work this way too for making Arrow Flights.

 

Could someone take a look at this mod and see if they could adapt the script to do the same with Large Bones? Even if that's all it did, it would be great! I'd do it myself if I knew scripting.

Link to comment
Share on other sites

I have never delved this far into CS Cave. Here's what I found in the scripts chest for this mod:

3 scripts. 1 looks like the nuts and bolts, 1 for bones being clicked on and 1 for a gem being clicked on. It requires a mortar & pestle in the inventory to work. The menu that pops up after clicking says Powder, Powder all, Cancel. There are different chances of it being successful.

 

That's not needed for arrow fletching. There's already an item (the Fletching Calipers from MMM) and it works 100% of the time.

 

GrinderScript - I think the nuts and bolts that all items being converted use

scn GrinderScript

float fQuestDelayTime
short iCount
short dCount
short give
short counter
short level
short button
short made
short random
short isBone
ref item
ref dust
ref spell

begin menumode
set fquestdelaytime to 0.05

if (level == 0)
	set icount to (player.getitemcount item)
	set level to 1
	MessageBoxEX "Powder the %n?|Powder|Powder All (%0.f)|Do Nothing" item icount
	return
elseif (level == 1)
	set button to getbuttonpressed
	if (button < 0)
		return
	else
		if (button == 2)
			set level to 0
			set isbone to 0
			stopquest grinder
			return
		elseif (button < 2)
			if (button == 0)
				set icount to 1
			endif
			if ((player.GetItemCount MortarPestle > 0) || (player.GetItemCount MortarPestleApprentice > 0) || (player.GetItemCount MortarPestleApprentice > 0) || (player.GetItemCount MortarPestleExpert > 0) || (player.GetItemCount MortarPestleJourneyman > 0) || (player.GetItemCount MortarPestleMaster > 0) ||  (player.GetItemCount CGMortarPestle > 0))
				set level to 2
			else
				set level to 0
				set isbone to 0
				MessageEX "You need a Mortar & Pestle to powder the %n." item
				stopquest grinder
				return
			endif
		endif
	endif
elseif (level == 2)
	label 0
	if (isbone)
		set random to getrandompercent
		if ((player.getav alchemy > 75) && (random > 49))
			set dcount to 2
		else
			set dcount to 1
		endif
	endif
	if (player.getav alchemy < 25)
		set random to getrandompercent
		if (random < 50)
			set give to (give + dcount)
			set made to (made + 1)
		endif
	elseif (player.getav alchemy < 50)
		set random to getrandompercent
		if (random < 75)
			set give to (give + dcount)
			set made to (made + 1)
		endif
	elseif (player.getav alchemy < 75)
		set random to getrandompercent
		if (random < 85)
			set give to (give + dcount)
			set made to (made + 1)
		endif
	elseif (player.getav alchemy <= 99)
		set random to getrandompercent
		if (random < 90)
			set give to (give + dcount)
			set made to (made + 1)
		endif
	else
		set give to (give + dcount)
		set made to give
	endif
	set counter to (counter + 1)
	if (icount > counter)
		goto 0
	endif
	if (give > 0)
		if (icount <= 1)
			MessageEX "You create useable powder from the %n." item
		else
			MessageEX "You create useable powder from %0.f of the %0.f %ns." made icount item
		endif
		player.AddItemNS dust give
	else
		if (icount <= 1)
			MessageEX "You fail to make useable powder from the %n." item
		else
			MessageEX "You fail to make useable powder from the %ns." item
		endif
	endif
	player.RemoveItemNS item icount
	if GeomancyEnabled && Player.GetItemCount item == 0
		Player.RemoveSpellNS spell
	endif
	set level to 0
	set give to 0
	set counter to 0
	set made to 0
	set isbone to 0
	stopquest grinder
endif
end

BoneGrindScript - click a bone, menu pops up to grind one, all or cancel

scn BoneGrindScript

begin onequip
if (getobseversion < 14)
	messagebox "Gems & Gem Dust REQUIRES OBSE version 14 or newer to function."
	return
endif

set grinder.item to getbaseobject
set grinder.dust to bonemeal
set grinder.isbone to 1

startquest grinder
end

GeomancyCopperScriptNugget - I think all but the last section are about spells the item gives and aren't relevant.

ScriptName GeomancyCopperScriptNugget

Short WasItemEquipped

Begin OnAdd Player
If GeomancyEnabled
	Player.AddSpellNS GeomancyCopperSpellNugget
EndIf
End

Begin OnDrop Player
If GeomancyEnabled && Player.GetItemCount Gem0CopperNugget == 0
	Player.RemoveSpellNS GeomancyCopperSpellNugget
EndIf
End

Begin OnSell Player
If GeomancyEnabled && Player.GetItemCount Gem0CopperNugget == 0
	Player.RemoveSpellNS GeomancyCopperSpellNugget
EndIf
End

Begin OnEquip Player
Set WasItemEquipped to 1
End

Begin MenuMode 1
If WasItemEquipped
	set grinder.spell to GeomancyCopperSpellNugget
	set grinder.item to getbaseobject
	set grinder.dust to copperdust
	set grinder.dcount to 2
	startquest grinder
	Set WasItemEquipped to 0
EndIf
End

Edited by PracticalShutIn
Link to comment
Share on other sites

You can get the mod here:

http://tes.nexusmods.com/downloads/download.php?id=43023

There is only 1 esp, a variant esp and a text file. I'm using the standard one. That's where the 3 scripts above came from.

 

I don't know if it uses anything from MMM except the Fletching Calipers and the menu it pops up when you want to fletch arrows.

 

I really don't see any reason not to always use the whole stack, it doesn't even need to give the user the option.

Link to comment
Share on other sites

So. My CS has refused to work for the past, oh... three days... When I tried on the 15th I had to do something at work ("emergency" at where I work = out of pizza and beer :P) I'm uninstalling and reinstalling it now to see if it will work so I can finally look at it :thumbsup:

 

EDIT: Turns out the mod REQUIRES OOO, so I'll have to settle for just looking at these scripts.

EDIT2: I think I'll have to cancel being able to do this request :sad: Without being able to look at everything that I need for an actual script, like item IDs, original reference scripts, and then being able to test it ingame, I don't think I'll be able to make a working script. I really don't want to just install OOO (and MMM?) just to make one script. Sorry.

Edited by Guest
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...