Jump to content

DOWNLOAD MODS

Are you looking for something shiny for your load order? We have many exclusive mods and resources you won't find anywhere else. Start your search now...

LEARN MODDING

Ready to try your hand at making your own mod creations? Visit the Enclave, the original ES/FO modding school, and learn the tricks of the trade from veteran modders...

JOIN THE ALLIANCE

Membership is free and registering unlocks image galleries, project hosting, live chat, unlimited downloads, & more...

Don't understand compiler errors


ThomasKaira
 Share

Recommended Posts

I'm trying to figure out why this script won't compile:

scriptname aaTKSnowberryImportScript extends Actor




Event onSell

	game.getPlayer().removeItem SnowberryImport 1 1

	game.getPlayer().addItem Snowberry 1 1

EndEvent

All I have to go by are two errors which I do not understand at all:

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKSnowberryImportScript.psc(5,12): mismatched input '\\r\\n' expecting LPAREN

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKSnowberryImportScript.psc(0,0): error while attempting to read script aaTKSnowberryImportScript: Object reference not set to an instance of an object.

No output generated for aaTKSnowberryImportScript, compilation failed.

Could someone explain to me where in the script those errors would come up and how to get rid of them?

Link to comment
Share on other sites

You're trying to use the old script format for RemoveItem. You need to be using the Papyrus version. None of the old format scripting can be used via the new system.

Specifically:

mismatched input '\\r\\n' expecting LPAREN

That's telling you that it saw an end of line (the \r\n part) but was expecting parentheses somewhere and never found them (the LPAREN part).

Link to comment
Share on other sites

You're trying to use the old script format for RemoveItem. You need to be using the Papyrus version. None of the old format scripting can be used via the new system.

Specifically:

mismatched input '\\r\\n' expecting LPAREN
That's telling you that it saw an end of line (the \r\n part) but was expecting parentheses somewhere and never found them (the LPAREN part).
That didn't help. Nothing changed.
Event onSell

	game.getPlayer().removeItem(SnowberryImport, 1, 1)

	game.getPlayer().addItem(Snowberry, 1, 1)

EndEvent

Link to comment
Share on other sites

EDIT: Got it working. Here's the working script so far:

scriptname aaTKSnowberryImportScript extends Quest


Ingredient[] Property Imports auto


Event onInit()

	RegisterForUpdate(1)

	Debug.Notification("Economy Control Script active")

EndEvent


Ingredient property Snowberry auto


Int property ItemCountInt auto



Event onUpdate()


if game.getPlayer().getItemCount(Imports[40]) >= 1


	Debug.Notification("Player has imported snowberries. Replacing...")

	ItemCountInt = (game.getPlayer().getItemCount(Imports[40]))


	game.getPlayer().removeItem(Imports[40], ItemCountInt, true)

	game.getPlayer().addItem(Snowberry, ItemCountInt, true)


endif


EndEvent

Being allowed to refer to array contents as individual references is a lifesaver here. Saves me a huge amount of work.

Edited by ThomasKaira
Link to comment
Share on other sites

I am using formLists for my removeItem command. I can remove every potion in one command and place it in another container.

I'm not really interested in bulk manipulation, rather I wanted to compile a list of items to which I could refer back to a specific item on the list in the script.

To that end, I was able to achieve that goal by building arrays.

I also understand that what I am doing is more complicated than it needs to be, but it is unfortunately necessary because of the potential for CTDs when you add scripts to ingredients.

This is the end result: it works, and it consolidates everything to one file.

scriptname aaTKSnowberryImportScript extends Quest


Ingredient[] Property Imports auto

Ingredient[] Property Base auto


Event onInit()

	RegisterForUpdate(0.5)

	Debug.Notification("Economy Control Script active")

EndEvent


Int property ItemCountInt auto



Event onUpdate()


if game.getplayer().getItemCount(Imports[0]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[0]))


	game.getPlayer().removeItem(Imports[0], ItemCountInt, true)

	game.getPlayer().addItem(Base[0], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[1]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[1]))


	game.getPlayer().removeItem(Imports[1], ItemCountInt, true)

	game.getPlayer().addItem(Base[1], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[3]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[3]))


	game.getPlayer().removeItem(Imports[3], ItemCountInt, true)

	game.getPlayer().addItem(Base[3], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[4]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[4]))


	game.getPlayer().removeItem(Imports[4], ItemCountInt, true)

	game.getPlayer().addItem(Base[4], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[5]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[5]))


	game.getPlayer().removeItem(Imports[5], ItemCountInt, true)

	game.getPlayer().addItem(Base[5], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[6]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[1]))


	game.getPlayer().removeItem(Imports[6], ItemCountInt, true)

	game.getPlayer().addItem(Base[6], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[7]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[7]))


	game.getPlayer().removeItem(Imports[7], ItemCountInt, true)

	game.getPlayer().addItem(Base[7], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[8]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[8]))


	game.getPlayer().removeItem(Imports[8], ItemCountInt, true)

	game.getPlayer().addItem(Base[8], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[9]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[9]))


	game.getPlayer().removeItem(Imports[9], ItemCountInt, true)

	game.getPlayer().addItem(Base[9], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[10]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[10]))


	game.getPlayer().removeItem(Imports[10], ItemCountInt, true)

	game.getPlayer().addItem(Base[10], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[11]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[11]))


	game.getPlayer().removeItem(Imports[11], ItemCountInt, true)

	game.getPlayer().addItem(Base[11], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[12]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[12]))


	game.getPlayer().removeItem(Imports[12], ItemCountInt, true)

	game.getPlayer().addItem(Base[12], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[13]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[13]))


	game.getPlayer().removeItem(Imports[13], ItemCountInt, true)

	game.getPlayer().addItem(Base[13], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[14]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[14]))


	game.getPlayer().removeItem(Imports[14], ItemCountInt, true)

	game.getPlayer().addItem(Base[14], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[15]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[15]))


	game.getPlayer().removeItem(Imports[15], ItemCountInt, true)

	game.getPlayer().addItem(Base[15], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[16]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[16]))


	game.getPlayer().removeItem(Imports[16], ItemCountInt, true)

	game.getPlayer().addItem(Base[16], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[17]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[17]))


	game.getPlayer().removeItem(Imports[17], ItemCountInt, true)

	game.getPlayer().addItem(Base[17], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[18]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[18]))


	game.getPlayer().removeItem(Imports[18], ItemCountInt, true)

	game.getPlayer().addItem(Base[18], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[19]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[19]))


	game.getPlayer().removeItem(Imports[19], ItemCountInt, true)

	game.getPlayer().addItem(Base[19], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[20]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[20]))


	game.getPlayer().removeItem(Imports[20], ItemCountInt, true)

	game.getPlayer().addItem(Base[20], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[21]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[21]))


	game.getPlayer().removeItem(Imports[21], ItemCountInt, true)

	game.getPlayer().addItem(Base[21], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[22]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[22]))


	game.getPlayer().removeItem(Imports[22], ItemCountInt, true)

	game.getPlayer().addItem(Base[22], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[23]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[23]))


	game.getPlayer().removeItem(Imports[23], ItemCountInt, true)

	game.getPlayer().addItem(Base[23], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[24]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[24]))


	game.getPlayer().removeItem(Imports[24], ItemCountInt, true)

	game.getPlayer().addItem(Base[24], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[25]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[25]))


	game.getPlayer().removeItem(Imports[25], ItemCountInt, true)

	game.getPlayer().addItem(Base[25], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[26]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[26]))


	game.getPlayer().removeItem(Imports[26], ItemCountInt, true)

	game.getPlayer().addItem(Base[26], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[27]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[27]))


	game.getPlayer().removeItem(Imports[27], ItemCountInt, true)

	game.getPlayer().addItem(Base[27], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[28]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[28]))


	game.getPlayer().removeItem(Imports[28], ItemCountInt, true)

	game.getPlayer().addItem(Base[28], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[29]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[29]))


	game.getPlayer().removeItem(Imports[29], ItemCountInt, true)

	game.getPlayer().addItem(Base[29], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[30]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[30]))


	game.getPlayer().removeItem(Imports[30], ItemCountInt, true)

	game.getPlayer().addItem(Base[30], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[31]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[31]))


	game.getPlayer().removeItem(Imports[31], ItemCountInt, true)

	game.getPlayer().addItem(Base[31], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[32]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[32]))


	game.getPlayer().removeItem(Imports[32], ItemCountInt, true)

	game.getPlayer().addItem(Base[32], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[33]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[33]))


	game.getPlayer().removeItem(Imports[33], ItemCountInt, true)

	game.getPlayer().addItem(Base[33], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[34]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[34]))


	game.getPlayer().removeItem(Imports[34], ItemCountInt, true)

	game.getPlayer().addItem(Base[34], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[35]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[35]))


	game.getPlayer().removeItem(Imports[35], ItemCountInt, true)

	game.getPlayer().addItem(Base[35], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[36]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[36]))


	game.getPlayer().removeItem(Imports[36], ItemCountInt, true)

	game.getPlayer().addItem(Base[36], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[37]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[37]))


	game.getPlayer().removeItem(Imports[37], ItemCountInt, true)

	game.getPlayer().addItem(Base[37], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[38]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[38]))


	game.getPlayer().removeItem(Imports[38], ItemCountInt, true)

	game.getPlayer().addItem(Base[38], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[39]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[39]))


	game.getPlayer().removeItem(Imports[39], ItemCountInt, true)

	game.getPlayer().addItem(Base[39], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[40]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[40]))


	game.getPlayer().removeItem(Imports[40], ItemCountInt, true)

	game.getPlayer().addItem(Base[40], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[41]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[41]))


	game.getPlayer().removeItem(Imports[41], ItemCountInt, true)

	game.getPlayer().addItem(Base[41], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[42]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[42]))


	game.getPlayer().removeItem(Imports[42], ItemCountInt, true)

	game.getPlayer().addItem(Base[42], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[43]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[43]))


	game.getPlayer().removeItem(Imports[43], ItemCountInt, true)

	game.getPlayer().addItem(Base[43], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[44]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[44]))


	game.getPlayer().removeItem(Imports[44], ItemCountInt, true)

	game.getPlayer().addItem(Base[44], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[45]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[45]))


	game.getPlayer().removeItem(Imports[45], ItemCountInt, true)

	game.getPlayer().addItem(Base[45], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[46]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[46]))


	game.getPlayer().removeItem(Imports[46], ItemCountInt, true)

	game.getPlayer().addItem(Base[46], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[47]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[47]))


	game.getPlayer().removeItem(Imports[47], ItemCountInt, true)

	game.getPlayer().addItem(Base[47], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[48]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[48]))


	game.getPlayer().removeItem(Imports[48], ItemCountInt, true)

	game.getPlayer().addItem(Base[48], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[49]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[49]))


	game.getPlayer().removeItem(Imports[49], ItemCountInt, true)

	game.getPlayer().addItem(Base[49], ItemCountInt, true)


endif


EndEvent

Link to comment
Share on other sites

I'm not really interested in bulk manipulation, rather I wanted to compile a list of items to which I could refer back to a specific item on the list in the script.

To that end, I was able to achieve that goal by building arrays.

I also understand that what I am doing is more complicated than it needs to be, but it is unfortunately necessary because of the potential for CTDs when you add scripts to ingredients.

This is the end result: it works, and it consolidates everything to one file.

scriptname aaTKSnowberryImportScript extends Quest


Ingredient[] Property Imports auto

Ingredient[] Property Base auto


Event onInit()

	RegisterForUpdate(0.5)

	Debug.Notification("Economy Control Script active")

EndEvent


Int property ItemCountInt auto



Event onUpdate()


if game.getplayer().getItemCount(Imports[0]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[0]))


	game.getPlayer().removeItem(Imports[0], ItemCountInt, true)

	game.getPlayer().addItem(Base[0], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[1]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[1]))


	game.getPlayer().removeItem(Imports[1], ItemCountInt, true)

	game.getPlayer().addItem(Base[1], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[3]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[3]))


	game.getPlayer().removeItem(Imports[3], ItemCountInt, true)

	game.getPlayer().addItem(Base[3], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[4]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[4]))


	game.getPlayer().removeItem(Imports[4], ItemCountInt, true)

	game.getPlayer().addItem(Base[4], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[5]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[5]))


	game.getPlayer().removeItem(Imports[5], ItemCountInt, true)

	game.getPlayer().addItem(Base[5], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[6]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[1]))


	game.getPlayer().removeItem(Imports[6], ItemCountInt, true)

	game.getPlayer().addItem(Base[6], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[7]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[7]))


	game.getPlayer().removeItem(Imports[7], ItemCountInt, true)

	game.getPlayer().addItem(Base[7], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[8]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[8]))


	game.getPlayer().removeItem(Imports[8], ItemCountInt, true)

	game.getPlayer().addItem(Base[8], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[9]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[9]))


	game.getPlayer().removeItem(Imports[9], ItemCountInt, true)

	game.getPlayer().addItem(Base[9], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[10]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[10]))


	game.getPlayer().removeItem(Imports[10], ItemCountInt, true)

	game.getPlayer().addItem(Base[10], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[11]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[11]))


	game.getPlayer().removeItem(Imports[11], ItemCountInt, true)

	game.getPlayer().addItem(Base[11], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[12]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[12]))


	game.getPlayer().removeItem(Imports[12], ItemCountInt, true)

	game.getPlayer().addItem(Base[12], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[13]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[13]))


	game.getPlayer().removeItem(Imports[13], ItemCountInt, true)

	game.getPlayer().addItem(Base[13], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[14]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[14]))


	game.getPlayer().removeItem(Imports[14], ItemCountInt, true)

	game.getPlayer().addItem(Base[14], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[15]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[15]))


	game.getPlayer().removeItem(Imports[15], ItemCountInt, true)

	game.getPlayer().addItem(Base[15], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[16]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[16]))


	game.getPlayer().removeItem(Imports[16], ItemCountInt, true)

	game.getPlayer().addItem(Base[16], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[17]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[17]))


	game.getPlayer().removeItem(Imports[17], ItemCountInt, true)

	game.getPlayer().addItem(Base[17], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[18]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[18]))


	game.getPlayer().removeItem(Imports[18], ItemCountInt, true)

	game.getPlayer().addItem(Base[18], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[19]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[19]))


	game.getPlayer().removeItem(Imports[19], ItemCountInt, true)

	game.getPlayer().addItem(Base[19], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[20]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[20]))


	game.getPlayer().removeItem(Imports[20], ItemCountInt, true)

	game.getPlayer().addItem(Base[20], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[21]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[21]))


	game.getPlayer().removeItem(Imports[21], ItemCountInt, true)

	game.getPlayer().addItem(Base[21], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[22]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[22]))


	game.getPlayer().removeItem(Imports[22], ItemCountInt, true)

	game.getPlayer().addItem(Base[22], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[23]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[23]))


	game.getPlayer().removeItem(Imports[23], ItemCountInt, true)

	game.getPlayer().addItem(Base[23], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[24]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[24]))


	game.getPlayer().removeItem(Imports[24], ItemCountInt, true)

	game.getPlayer().addItem(Base[24], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[25]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[25]))


	game.getPlayer().removeItem(Imports[25], ItemCountInt, true)

	game.getPlayer().addItem(Base[25], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[26]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[26]))


	game.getPlayer().removeItem(Imports[26], ItemCountInt, true)

	game.getPlayer().addItem(Base[26], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[27]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[27]))


	game.getPlayer().removeItem(Imports[27], ItemCountInt, true)

	game.getPlayer().addItem(Base[27], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[28]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[28]))


	game.getPlayer().removeItem(Imports[28], ItemCountInt, true)

	game.getPlayer().addItem(Base[28], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[29]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[29]))


	game.getPlayer().removeItem(Imports[29], ItemCountInt, true)

	game.getPlayer().addItem(Base[29], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[30]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[30]))


	game.getPlayer().removeItem(Imports[30], ItemCountInt, true)

	game.getPlayer().addItem(Base[30], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[31]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[31]))


	game.getPlayer().removeItem(Imports[31], ItemCountInt, true)

	game.getPlayer().addItem(Base[31], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[32]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[32]))


	game.getPlayer().removeItem(Imports[32], ItemCountInt, true)

	game.getPlayer().addItem(Base[32], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[33]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[33]))


	game.getPlayer().removeItem(Imports[33], ItemCountInt, true)

	game.getPlayer().addItem(Base[33], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[34]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[34]))


	game.getPlayer().removeItem(Imports[34], ItemCountInt, true)

	game.getPlayer().addItem(Base[34], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[35]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[35]))


	game.getPlayer().removeItem(Imports[35], ItemCountInt, true)

	game.getPlayer().addItem(Base[35], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[36]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[36]))


	game.getPlayer().removeItem(Imports[36], ItemCountInt, true)

	game.getPlayer().addItem(Base[36], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[37]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[37]))


	game.getPlayer().removeItem(Imports[37], ItemCountInt, true)

	game.getPlayer().addItem(Base[37], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[38]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[38]))


	game.getPlayer().removeItem(Imports[38], ItemCountInt, true)

	game.getPlayer().addItem(Base[38], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[39]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[39]))


	game.getPlayer().removeItem(Imports[39], ItemCountInt, true)

	game.getPlayer().addItem(Base[39], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[40]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[40]))


	game.getPlayer().removeItem(Imports[40], ItemCountInt, true)

	game.getPlayer().addItem(Base[40], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[41]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[41]))


	game.getPlayer().removeItem(Imports[41], ItemCountInt, true)

	game.getPlayer().addItem(Base[41], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[42]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[42]))


	game.getPlayer().removeItem(Imports[42], ItemCountInt, true)

	game.getPlayer().addItem(Base[42], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[43]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[43]))


	game.getPlayer().removeItem(Imports[43], ItemCountInt, true)

	game.getPlayer().addItem(Base[43], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[44]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[44]))


	game.getPlayer().removeItem(Imports[44], ItemCountInt, true)

	game.getPlayer().addItem(Base[44], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[45]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[45]))


	game.getPlayer().removeItem(Imports[45], ItemCountInt, true)

	game.getPlayer().addItem(Base[45], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[46]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[46]))


	game.getPlayer().removeItem(Imports[46], ItemCountInt, true)

	game.getPlayer().addItem(Base[46], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[47]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[47]))


	game.getPlayer().removeItem(Imports[47], ItemCountInt, true)

	game.getPlayer().addItem(Base[47], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[48]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[48]))


	game.getPlayer().removeItem(Imports[48], ItemCountInt, true)

	game.getPlayer().addItem(Base[48], ItemCountInt, true)


elseif game.getPlayer().getItemCount(Imports[49]) >= 1


	ItemCountInt = (game.getPlayer().getItemCount(Imports[49]))


	game.getPlayer().removeItem(Imports[49], ItemCountInt, true)

	game.getPlayer().addItem(Base[49], ItemCountInt, true)


endif


EndEvent

Have you considered using a while loop for this? It'd make your code significantly shorter. Also, you missed the third element (index 2).

Link to comment
Share on other sites

Have you considered using a while loop for this? It'd make your code significantly shorter. Also, you missed the third element (index 2).

I have, but I am unsure of how to set it up. This is as far as I have gotten:

Function ReplaceObject(Ingredient[] Imports, Ingredient[] Base)


	int CurrentElement = 0


While (currentElement < Imports.Length)



	if Imports.length == base.length


		ReplaceElement = base.Length


		ItemCountInt = (game.getPlayer().getItemCount(currentElement))


		game.getPlayer().RemoveItem (currentElement, true)

		game.getPlayer().addItem (ReplaceElement, true)


		currentElement += 1



	endIf


endWhile


endFunction

However, I am unsure of how to correctly cast the array in the context of a loop.

Errors, in case they are needed:

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKIngredientImportScript.psc(18,35): type mismatch on parameter 1 (did you forget a cast?)

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKIngredientImportScript.psc(18,2): type mismatch while assigning to a int (cast missing or types unrelated)

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKIngredientImportScript.psc(20,19): type mismatch on parameter 1 (did you forget a cast?)

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKIngredientImportScript.psc(20,19): type mismatch on parameter 2 (did you forget a cast?)

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKIngredientImportScript.psc(21,19): type mismatch on parameter 1 (did you forget a cast?)

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKIngredientImportScript.psc(21,19): type mismatch on parameter 2 (did you forget a cast?)

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKIngredientImportScript.psc(40,1): argument imports is not specified and has no default value

c:\games\steam\steamapps\common\skyrim\Data\Scripts\Source\aaTKIngredientImportScript.psc(40,1): argument base is not specified and has no default value

Edited by ThomasKaira
Link to comment
Share on other sites

You're overthinking this. This should work:


Scriptname script_name extends [something]


int 	     Property ItemCountInt Auto

Ingredient[] Property Imports      Auto

Ingredient[] Property Base         Auto


Event OnInit()


        RegisterForUpdate(0.5)

        Debug.Notification("Economy Control Script active")


EndEvent


Event OnUpdate()


	int i = 0


	While( i < Imports.length )

		If (Game.getPlayer().getItemCount( Imports[i] ) > 0)


			ItemCountInt = ( Game.GetPlayer().getItemCount( Imports[i] ) )


			Game.getPlayer().RemoveItem(Imports[i], ItemCountInt, true)

			Game.getPlayer().AddItem   (Base[i],    ItemCountInt, true)

		EndIf

		i += 1

	EndWhile


EndEvent


Edit: Note that this loop assumes Imports and Base are of equal length. If you want to be safe, there's two things that could be done to avoid potential issues.

1) Compare length of both lists before executing the loop and completely avoid the loop if they're of unequal length (safest)

2) Compare length, if they're unequal, take the smaller of two and have the loop iterate that many times. (less safe)

Edit2: Grammar.

Edited by trira
Link to comment
Share on other sites

No worries, both arrays are indeed of equal length (they have to be, since every object must have a companion if I want to trade one for another).

Thanks for the help.

And yes, I know it would have been a lot easier to just attach a catch-all If statement to the items I wanted replaced, but due to a bug in the CK that causes adding scripts to certain ingredients CTDing the game on start-up, I needed to go this route.

Edited by ThomasKaira
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...