Jump to content

Recommended Posts

Posted (edited)

I'm making a script which need to transmute more ores than the normal transmute ores spell, but it don't work in game. What did i wrong?

The script:

Scriptname transmutemineralscriptexpanded1 extends ActiveMagicEffect   

{script for spell to allow transmutation of ores}

import game

MiscObject Property Ore01  Auto  
{1 value ore}
MiscObject Property Ore02  Auto  
{2 value ore}
MiscObject Property Ore03  Auto  
{3 value ore}
MiscObject Property Ore04  Auto
{4 value ore}
MiscObject Property Ore05  Auto
{5 value ore}
MiscObject Property Ore06  Auto
{6 value ore}
MiscObject Property Ore07  Auto
{7 value ore}
MiscObject Property Ore08  Auto
{8 value ore}
MiscObject Property Ore09  Auto
{9 value ore}
Sound Property FailureSFX  Auto  
float property skillAdvancement = 15.0 auto
{How much to advance the skill?  Only works when spell actually transmutes something}
message property failureMSG auto


EVENT OnEffectStart(Actor akTarget, Actor akCaster)
	objectReference caster = akCaster
	if caster.getItemCount(Ore08) >= 1
		; favor the more valuable ore first
		caster.removeItem(Ore08, 1, TRUE)
		caster.addItem(Ore09, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	elseif caster.getItemCount(Ore07) >= 1
		; favor the more valuable ore first
		caster.removeItem(Ore07, 1, TRUE)
		caster.addItem(Ore08, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	elseif caster.getItemCount(Ore06) >= 1
		; favor the more valuable ore first
		caster.removeItem(Ore06, 1, TRUE)
		caster.addItem(Ore07, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	elseif caster.getItemCount(Ore05) >= 1
		; favor the more valuable ore first
		caster.removeItem(Ore05, 1, TRUE)
		caster.addItem(Ore06, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	elseif caster.getItemCount(Ore04) >= 1
		; favor the more valuable ore first
		caster.removeItem(Ore04, 1, TRUE)
		caster.addItem(Ore05, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	elseif caster.getItemCount(Ore03) >= 1
		; favor the more valuable ore first
		caster.removeItem(Ore03, 1, TRUE)
		caster.addItem(Ore04, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	elseif caster.getItemCount(Ore02) >= 1
		; favor the more valuable ore first
		caster.removeItem(Ore02, 1, TRUE)
		caster.addItem(Ore03, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	elseif caster.getItemCount(Ore01) >= 1
		; if none of that, look for the base ore to upgrade
		caster.removeItem(Ore01, 1, TRUE)
		caster.addItem(Ore02, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	else
		; caster must have had no valid ore
		FailureSFX.play(caster)
		failureMSG.show()
	endif

endEVENT 

The standard transmute script:

Scriptname transmuteMineralScript extends ActiveMagicEffect  
{script for spell to allow transmutation of ores}

import game

MiscObject Property Ore01  Auto  
{lowest value ore}
MiscObject Property Ore02  Auto  
{middle value ore}
MiscObject Property Ore03  Auto  
{highest value ore}
Sound Property FailureSFX  Auto  
float property skillAdvancement = 15.0 auto
{How much to advance the skill?  Only works when spell actually transmutes something}
message property failureMSG auto


EVENT OnEffectStart(Actor akTarget, Actor akCaster)
	objectReference caster = akCaster
	if caster.getItemCount(Ore02) >= 1
		; favor the more valuable ore first
		caster.removeItem(Ore02, 1, TRUE)
		caster.addItem(Ore03, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	elseif caster.getItemCount(Ore01) >= 1
		; if none of that, look for the base ore to upgrade
		caster.removeItem(Ore01, 1, TRUE)
		caster.addItem(Ore02, 1, FALSE)
		advanceSkill("alteration",skillAdvancement)
	else
		; caster must have had no valid ore
		FailureSFX.play(caster)
		failureMSG.show()
	endif
endEVENT
 

What did i wrong?

Edited by Kaylee1996
  • Recently Browsing   0 members

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