Jump to content

[LE] How to issue console commands via papyrus


irswat

Recommended Posts

I am currently pondering how to make my voice command engine compatible with mods in an easy way. In order for the VCE to support 3rd party mods the VCE needs lists of category arrays for the various items. For example:
[Mod Name]
[Command Type: Equip]

[Form Type: Weapons]

[Category Array: Unique Identifiers]

...

...

...

[Category Array: Element Types]

...

...

...

[Command Type: Cast]

[Form Type: Spells]
...
...
...

[end]


here is an example of the Vanilla & DLC category arrays [length warning]:

 

 

Numerator=new string[10]

Numerator[0]="one"
Numerator[1]="two"
Numerator[2]="three"
Numerator[3]="four"
Numerator[4]="five"
Numerator[5]="six"
Numerator[6]="seven"
Numerator[7]="eight"
Numerator[8]="nine"
Numerator[9]="ten"
CommandList=new string[20]
CommandList[0]="Thuum"
CommandList[1]="Equip" ;add support for arrows & spells
CommandList[2]="Unequip"
Commandlist[3]="Use" ;add eat/drink, support for arrows, poisons
CommandList[4]="Cast"
CommandList[5]="Map"
CommandList[6]="Save"
CommandList[7]="Exit"
CommandList[8]="Sheath"
CommandList[9]="Run"
CommandList[10]="Quit"
;***********************************************
ShoutNames=new string[128] ;skipping 0 on purpose
ShoutNames[0]="Voice of the Emperor" ;place holder for now
ShoutNames[1]="Animal Allegiance"
ShoutNames[2]="Aura Whisper"
ShoutNames[3]="Battle Fury"
ShoutNames[4]="Become Ethereal"
ShoutNames[5]="Bend Will"
ShoutNames[6]="Call Dragon"
ShoutNames[7]="Call of Valor"
ShoutNames[8]="Clear Skies"
ShoutNames[9]="Cyclone"
ShoutNames[10]="Disarm"
ShoutNames[11]="Dismay"
ShoutNames[12]="Dragon Aspect"
ShoutNames[13]="Dragonrend Joor"
ShoutNames[14]="Drain Vitality"
ShoutNames[15]="Elemental Fury"
ShoutNames[16]="Fire Breath"
ShoutNames[17]="Frost Breath"
ShoutNames[18]="Ice Form"
ShoutNames[19]="Kyne's Peace"
ShoutNames[20]="Marked for Death"
ShoutNames[21]="Slow Time"
ShoutNames[22]="Soul Tear"
ShoutNames[23]="Storm Call"
ShoutNames[24]="Summon Durnehviir"
ShoutNames[25]="Throw Voice"
ShoutNames[26]="Unrelenting Force"
ShoutNames[27]="Whirlwind Sprint"
;***********************************************
ShoutWords=new string[128] ;skipping 0 on purpose
ShoutWords[1]="Raan"
ShoutWords[2]="Mir"
ShoutWords[3]="Tah"
ShoutWords[4]="Laas"
ShoutWords[5]="Yah"
ShoutWords[6]="Nir"
ShoutWords[7]="Mid"
ShoutWords[8]="Vur"
ShoutWords[9]="Shaan"
ShoutWords[10]="Feim"
ShoutWords[11]="Zii"
ShoutWords[12]="Gron"
ShoutWords[13]="Gol"
ShoutWords[14]="Hah"
ShoutWords[15]="Dov"
ShoutWords[16]="Od"
ShoutWords[17]="Ah"
ShoutWords[18]="Viing"
ShoutWords[19]="Hun"
ShoutWords[20]="Kaal"
ShoutWords[21]="Zoor"
ShoutWords[22]="Lok"
ShoutWords[23]="Vah"
ShoutWords[24]="Koor"
ShoutWords[25]="Ven"
ShoutWords[26]="Gaar"
ShoutWords[27]="Nos"
ShoutWords[28]="Zun"
ShoutWords[29]="Haal"
ShoutWords[30]="Viik"
ShoutWords[31]="Faas"
ShoutWords[32]="Ru"
ShoutWords[33]="Maar"
ShoutWords[34]="Mul"
ShoutWords[35]="Qah"
ShoutWords[36]="Diiv"
ShoutWords[37]="Joor"
ShoutWords[38]="Zah"
ShoutWords[39]="Frul"
ShoutWords[40]="Gaan"
ShoutWords[41]="Lah"
ShoutWords[42]="Haas"
ShoutWords[43]="Su"
ShoutWords[44]="Grah"
ShoutWords[45]="Dun"
ShoutWords[46]="Yol"
ShoutWords[47]="Toor"
ShoutWords[48]="Shul"
ShoutWords[49]="Fo"
ShoutWords[50]="Krah"
ShoutWords[51]="Diin"
ShoutWords[52]="Liz"
ShoutWords[53]="Slen"
ShoutWords[54]="Nus"
ShoutWords[55]="Kaan"
ShoutWords[56]="Drem"
ShoutWords[57]="Ov"
ShoutWords[58]="Krii"
ShoutWords[59]="Lun"
ShoutWords[60]="Aus"
ShoutWords[61]="Tiid"
ShoutWords[62]="Klo"
ShoutWords[63]="Ul"
ShoutWords[64]="Rii"
ShoutWords[65]="Vaaz"
ShoutWords[66]="Zol"
ShoutWords[67]="Struhn"
ShoutWords[68]="Bah"
ShoutWords[69]="Qo"
ShoutWords[70]="Dur"
ShoutWords[71]="Neh"
ShoutWords[72]="Viir"
ShoutWords[73]="Zul"
ShoutWords[74]="Mey"
ShoutWords[75]="Gut"
ShoutWords[76]="Fus"
ShoutWords[77]="Ro"
ShoutWords[78]="Dah"
ShoutWords[79]="Wuld"
ShoutWords[80]="Nah"
ShoutWords[81]="Kest"
;***********************************************
MaterialList=new string[20]
MaterialList[0]="Iron"
MaterialList[1]="Steel"
MaterialList[2]="Dwarven"
MaterialList[3]="Dragonbone"
MaterialList[4]="Ebony"
MaterialList[5]="Chitin"
MaterialList[6]="Glass"
MaterialList[7]="Gold"
MaterialList[8]="Silver"
MaterialList[9]="Dwemer"
MaterialList[10]="Daedric"
MaterialList[11]="Imperial"
MaterialList[12]="Forworn"
MaterialList[13]="Falmer"
;***********************************************
WeaponTypes=new string[20]
WeaponTypes[0]="Sword"
WeaponTypes[1]="Dagger"
WeaponTypes[2]="Bow"
WeaponTypes[3]="Staff"
WeaponTypes[4]="Greatsword"
WeaponTypes[5]="Crossbow"
WeaponTypes[6]="Blade"
WeaponTypes[7]="Mace"
WeaponTypes[8]="Warhammer"
WeaponTypes[9]="Battleaxe"
WeaponTypes[10]="Axe"
WeaponTypes[11]="Hammer"
;***********************************************
ArmorTypes=new string[10]
ArmorTypes[0]="Helmet"
ArmorTypes[1]="Breastplate"
ArmorTypes[2]="Boots"
ArmorTypes[3]="Gauntlets"
ArmorTypes[4]="Shield"
ArmorTypes[5]="Armor"
ArmorTypes[6]="Helm"
;***********************************************
ArmorNames=new string[10]
ArmorNames[0]="Hardening"
;***********************************************
WeaponNames=new string[128]
WeaponNames[1]="Woe"
WeaponNames[2]="Nightingale"
WeaponNames[3]="Miraak"
WeaponNames[4]="Magnus"
WeaponNames[5]="of"
WeaponNames[6]="Aegusvabe"
WeaponNames[7]="Alessandra's"
WeaponNames[8]="Alteration"
WeaponNames[9]="Amren's"
WeaponNames[10]="Ancient"
WeaponNames[11]="Angi's"
WeaponNames[12]="Animus"
WeaponNames[13]="Annihilating"
WeaponNames[14]="Arcing"
WeaponNames[15]="Balckbow"
WeaponNames[16]="Balgruuf's"
WeaponNames[17]="Banishing"
WeaponNames[18]="Barvir's"
WeaponNames[19]="Binding"
WeaponNames[20]="Blackblade"
WeaponNames[21]="Blaze"
WeaponNames[22]="Blessed"
WeaponNames[23]="Blizzards"
WeaponNames[24]="Bloodthorn"
WeaponNames[25]="Bolar's"
WeaponNames[26]="Bound"
WeaponNames[27]="Briarheart"
WeaponNames[28]="Broken"
WeaponNames[29]="Burning"
WeaponNames[30]="Ceremonial"
WeaponNames[31]="Charming"
WeaponNames[32]="Chillrend"
WeaponNames[33]="Chills"
WeaponNames[34]="Cold"
WeaponNames[35]="Conjuration"
WeaponNames[36]="Cowardice"
WeaponNames[37]="Damnation"
WeaponNames[38]="Dawnbreaker"
WeaponNames[39]="Debilitation"
WeaponNames[40]="Depleting"
WeaponNames[41]="Despair"
WeaponNames[42]="Destruction"
WeaponNames[43]="Devouring"
WeaponNames[44]="Diminishing"
WeaponNames[45]="Dismay"
WeaponNames[46]="Dragon"
WeaponNames[47]="Dragonbane"
WeaponNames[48]="Drainblood"
WeaponNames[49]="Drainheart"
WeaponNames[50]="Draining"
WeaponNames[51]="Drainspell"
WeaponNames[52]="Dravin's"
WeaponNames[53]="Dread"
WeaponNames[54]="Eduj"
WeaponNames[55]="Embers"
WeaponNames[56]="End"
WeaponNames[57]="Enervating"
WeaponNames[58]="Evoking"
WeaponNames[59]="Exhaustion"
WeaponNames[60]="Expelling"
WeaponNames[61]="Eye"
WeaponNames[62]="Fatigue"
WeaponNames[63]="Fear"
WeaponNames[64]="Firiniel's"
WeaponNames[65]="Flames"
WeaponNames[66]="Freezing"
WeaponNames[67]="Froki's"
WeaponNames[68]="Frost"
WeaponNames[69]="Gadnor's"
WeaponNames[70]="Garnering"
WeaponNames[71]="Gauldor"
WeaponNames[72]="Geis"
WeaponNames[73]="Ghorbash's"
WeaponNames[74]="Ghostblade"
WeaponNames[75]="Gleaning"
WeaponNames[76]="Harrowing"
WeaponNames[77]="Harvesting"
WeaponNames[78]="Hunt"
WeaponNames[79]="Hunting"
WeaponNames[80]="Ice"
WeaponNames[81]="Immobilizing"
WeaponNames[82]="Inferno"
WeaponNames[83]="Leeching"
WeaponNames[84]="Lethargy"
WeaponNames[85]="Lightning"
WeaponNames[86]="Malediction"
WeaponNames[87]="Melka"
WeaponNames[88]="Nullifying"
WeaponNames[89]="Oathblade"
WeaponNames[90]="Petrifying"
WeaponNames[91]="Priest"
WeaponNames[92]="Reaping"
WeaponNames[93]="Reverent"
WeaponNames[94]="Sacrifice"
WeaponNames[95]="Sanctified"
WeaponNames[96]="Sapping"
WeaponNames[97]="Scorching"
WeaponNames[98]="Shocks"
WeaponNames[99]="Siphoning"
WeaponNames[100]="Sorcerer"
WeaponNames[101]="Soul Snares"
WeaponNames[102]="Souls"
WeaponNames[103]="Sparks"
WeaponNames[104]="Sphere"
WeaponNames[105]="Storms"
WeaponNames[106]="Subsuming"
WeaponNames[107]="Sunning"
WeaponNames[108]="Supple"
WeaponNames[109]="Terror"
WeaponNames[110]="the"
WeaponNames[111]="Thunderbolts"
WeaponNames[112]="Torpor"
WeaponNames[113]="Vampire"
WeaponNames[114]="Weariness"
WeaponNames[115]="Winnowing"
WeaponNames[116]="Winter"
WeaponNames[117]="Long"
;***********************************************
EquipSlots=new string[3]
EquipSlots[0]="Left"
EquipSlots[1]="Right"
EquipSlots[2]="Both"
;***********************************************
ElementalTypes=new string[128]
ElementalTypes[0]="Fire"
ElementalTypes[1]="Fireball"
ElementalTypes[2]="Firebolt"
ElementalTypes[3]="Flame"
ElementalTypes[4]="Flames"
ElementalTypes[5]="Freeze"
ElementalTypes[6]="Frost"
ElementalTypes[7]="Frostbite"
ElementalTypes[8]="Ice"
ElementalTypes[9]="Ignite"
ElementalTypes[10]="Incinerate"
ElementalTypes[11]="Lightning"
ElementalTypes[12]="Poison"
ElementalTypes[13]="Shock"
ElementalTypes[14]="Shockwave"
ElementalTypes[15]="Sparks"
ElementalTypes[16]="Storm"
ElementalTypes[17]="Elemental"
ElementalTypes[18]="Fear"
ElementalTypes[19]="Explosion"
ElementalTypes[20]="Healing"
ElementalTypes[21]="Blizzard"
ElementalTypes[22]="Blood"
ElementalTypes[23]="Health"
ElementalTypes[24]="Acid"
ElementalTypes[25]="Soul"
ElementalTypes[26]="Ash"
ElementalTypes[27]="Death"
ElementalTypes[28]="Bleeding"
ElementalTypes[29]="Bloody"
ElementalTypes[30]="Breath"
ElementalTypes[31]="Calm"
ElementalTypes[32]="Chill"
ElementalTypes[33]="Protection"
ElementalTypes[34]="Light"
ElementalTypes[35]="Candlelight"
ElementalTypes[36]="Flaming"
ElementalTypes[37]="Frenzy"
ElementalTypes[38]="Fury"
ElementalTypes[39]="Hysteria"
ElementalTypes[40]="Paralyze"
ElementalTypes[41]="Paralysis"
ElementalTypes[42]="Mayhem"
ElementalTypes[43]="Muffle"
ElementalTypes[44]="Silence"
ElementalTypes[45]="Silent"
ElementalTypes[46]="Necromantric"
ElementalTypes[47]="Fog"
ElementalTypes[48]="Pacify"
ElementalTypes[49]="Dead"
ElementalTypes[50]="Slime"
ElementalTypes[51]="Sun"
ElementalTypes[52]="Telekinesis"
ElementalTypes[53]="Thunderbolt"
ElementalTypes[54]="Vampire"
ElementalTypes[55]="Vampire's"
ElementalTypes[56]="Vampiric"
ElementalTypes[57]="Vortex"
ElementalTypes[58]="Water"
ElementalTypes[59]="Whirlwind"
ElementalTypes[60]="Writhing"
SpellStrengths=new string[10]
SpellStrengths[0]="Grand"
SpellStrengths[1]="Greater"
SpellStrengths[2]="Lesser"
SpellStrengths[3]="Mass"
SpellStrengths[4]="Super"
SpellTypes=new string[50]
SpellTypes[0]="Conjure"
SpellTypes[1]="Summon"
SpellTypes[2]="Wall"
SpellTypes[3]="Detect"
SpellTypes[4]="Expel"
SpellTypes[5]="Flow"
SpellTypes[6]="Rune"
SpellTypes[7]="Cloak"
SpellTypes[8]="Stream"
SpellTypes[9]="Thrall"
SpellTypes[10]="Fortify"
SpellTypes[11]="Absorb"
SpellTypes[12]="Drain"
SpellTypes[13]="Banish"
SpellTypes[14]="Blessing"
SpellTypes[15]="Bound"
SpellTypes[16]="Command"
SpellTypes[17]="Disarm"
SpellTypes[18]="Shell"
SpellTypes[19]="Spray"
SpellTypes[20]="Transform"
SpellTypes[21]="Transmogrify"
SpellTypes[22]="Plague"
SpellTypes[23]="Ritual"
SpellTypes[24]="Strike"
SpellTypes[25]="Touch"
SpellTypes[26]="Circle"
SpellTypes[27]="Fling"
SpellTypes[28]="Bite"
SpellTypes[29]="Spike"
SpellTypes[30]="Volley"
SpellTypes[31]="Spear"
SpellTypes[32]="Shield"
SpellTypes[33]="Ward"
SpellTypes[34]="Bolt"
SpellTypes[35]="Raise"
SpellTypes[36]="Reanimate"
SpellTypes[37]="Repel"
SpellTypes[38]="Spit"
SpellTypes[39]="Trap"
SpellTypes[40]="Arrow"
SpellTypes[41]="Torch"
MiscSpellModifiers=new string[10]
MiscSpellModifiers[0]="of"
MiscSpellModifiers[1]="to"
MiscSpellModifiers[2]="for"
UniqueSpellModifiers=new string[127]
UniqueSpellModifiers[1]="Oppressive"
;UniqueSpellModifiers[2]=
;UniqueSpellModifiers[3]=
;UniqueSpellModifiers[4]=
;UniqueSpellModifiers[5]=
;UniqueSpellModifiers[6]=
;UniqueSpellModifiers[7]=
;UniqueSpellModifiers[8]=
;UniqueSpellModifiers[9]=
;UniqueSpellModifiers[10]=
;UniqueSpellModifiers[11]=
;UniqueSpellModifiers[12]=
;UniqueSpellModifiers[13]=
;UniqueSpellModifiers[14]=
;UniqueSpellModifiers[15]=
;UniqueSpellModifiers[16]=
;UniqueSpellModifiers[17]=
;UniqueSpellModifiers[18]=
;UniqueSpellModifiers[19]=
;UniqueSpellModifiers[20]=
;UniqueSpellModifiers[21]=
;UniqueSpellModifiers[22]=
;UniqueSpellModifiers[23]=
;UniqueSpellModifiers[24]=
;UniqueSpellModifiers[25]=
;UniqueSpellModifiers[26]=
;UniqueSpellModifiers[27]=
;UniqueSpellModifiers[28]=
;UniqueSpellModifiers[29]=
;UniqueSpellModifiers[30]=
;UniqueSpellModifiers[31]=
;UniqueSpellModifiers[32]=
;UniqueSpellModifiers[33]=
;UniqueSpellModifiers[34]=
;UniqueSpellModifiers[35]=
;UniqueSpellModifiers[36]=
;UniqueSpellModifiers[37]=
;UniqueSpellModifiers[38]=
;UniqueSpellModifiers[39]=
;UniqueSpellModifiers[40]=
;UniqueSpellModifiers[41]=
;UniqueSpellModifiers[42]=
;UniqueSpellModifiers[43]=
;UniqueSpellModifiers[44]=
;UniqueSpellModifiers[45]=
;UniqueSpellModifiers[46]=
;UniqueSpellModifiers[47]=
;UniqueSpellModifiers[48]=
;UniqueSpellModifiers[49]=
;UniqueSpellModifiers[50]=
;UniqueSpellModifiers[51]=
;UniqueSpellModifiers[52]=
;UniqueSpellModifiers[53]=
;UniqueSpellModifiers[54]=
;UniqueSpellModifiers[55]=
;UniqueSpellModifiers[56]=
;UniqueSpellModifiers[57]=
;UniqueSpellModifiers[58]=
;UniqueSpellModifiers[59]=
;UniqueSpellModifiers[60]=
;UniqueSpellModifiers[61]=
;UniqueSpellModifiers[62]=
;UniqueSpellModifiers[63]=
;UniqueSpellModifiers[64]=
;UniqueSpellModifiers[65]=
;UniqueSpellModifiers[66]=
;UniqueSpellModifiers[67]=
;UniqueSpellModifiers[68]=
;UniqueSpellModifiers[69]=
;UniqueSpellModifiers[70]=
;UniqueSpellModifiers[71]=
;UniqueSpellModifiers[72]=
;UniqueSpellModifiers[73]=
;UniqueSpellModifiers[74]=
;UniqueSpellModifiers[75]=
;UniqueSpellModifiers[76]=
;UniqueSpellModifiers[77]=
;UniqueSpellModifiers[78]=
;UniqueSpellModifiers[79]=
;UniqueSpellModifiers[80]=
;UniqueSpellModifiers[81]=
;UniqueSpellModifiers[82]=
;UniqueSpellModifiers[83]=
;UniqueSpellModifiers[84]=
;UniqueSpellModifiers[85]=
;UniqueSpellModifiers[86]=
;UniqueSpellModifiers[87]=
;UniqueSpellModifiers[88]=
;UniqueSpellModifiers[89]=
;UniqueSpellModifiers[90]=
;UniqueSpellModifiers[91]=
;UniqueSpellModifiers[92]=
;UniqueSpellModifiers[93]=
;UniqueSpellModifiers[94]=
;UniqueSpellModifiers[95]=
;UniqueSpellModifiers[96]=
;UniqueSpellModifiers[97]=
;UniqueSpellModifiers[98]=
;UniqueSpellModifiers[99]=
;UniqueSpellModifiers[100]=
;UniqueSpellModifiers[101]=
;UniqueSpellModifiers[102]=
;UniqueSpellModifiers[103]=
;UniqueSpellModifiers[104]=
;UniqueSpellModifiers[105]=
;UniqueSpellModifiers[106]=
;UniqueSpellModifiers[107]=
;UniqueSpellModifiers[108]=
;UniqueSpellModifiers[109]=
;UniqueSpellModifiers[110]=
;UniqueSpellModifiers[111]=
;UniqueSpellModifiers[112]=
;UniqueSpellModifiers[113]=
;UniqueSpellModifiers[114]=
;UniqueSpellModifiers[115]=
;UniqueSpellModifiers[116]=
;UniqueSpellModifiers[117]=
ConjureTypes=new string[40]
ConjureTypes[0]="Daedra"
ConjureTypes[1]="Ancients"
ConjureTypes[2]="Unbound"
ConjureTypes[3]="Guardian"
ConjureTypes[4]="Spawn"
ConjureTypes[5]="Boneman"
ConjureTypes[6]="Dragon"
ConjureTypes[7]="Priest"
ConjureTypes[8]="Dremora"
ConjureTypes[9]="Lord"
ConjureTypes[10]="Dwarven"
ConjureTypes[11]="Sphere"
ConjureTypes[12]="Spider"
ConjureTypes[13]="Familiar"
ConjureTypes[14]="Atronach"
ConjureTypes[15]="Wraith"
ConjureTypes[16]="Mistman"
ConjureTypes[17]="Seeker"
ConjureTypes[18]="Spectral"
ConjureTypes[19]="Wrathman"
ConjureTypes[20]="Arniel's"
ConjureTypes[21]="Shade"
ConjureTypes[22]="Arvak"
ConjureTypes[23]="Gargoyle"
ConjureTypes[24]="Portal"
ConjureTypes[25]="Bats"
ConjureTypes[26]="Zombie"
ConjureTypes[27]="Corpse"
ConjureTypes[28]="Undead"
ConjureTypes[29]="Revenant"
ConjureTypes[30]="Seeker"
;ConjureTypes[31]=
;ConjureTypes[32]=
;ConjureTypes[33]=
;ConjureTypes[34]=
;ConjureTypes[35]=
;ConjureTypes[36]=
;ConjureTypes[37]=
;ConjureTypes[38]=
;ConjureTypes[39]=
;***********************************************
PotionPotencies=new string[21]
PotionPotencies[1]="Weak"
PotionPotencies[2]="Strong"
PotionPotencies[3]="Minor"
PotionPotencies[4]="Ultimate"
PotionPotencies[5]="Brief"
PotionPotencies[6]="Deadly"
PotionPotencies[7]="Enduring"
PotionPotencies[8]="Enhanced"
PotionPotencies[9]="Extended"
PotionPotencies[10]="Extra"
PotionPotencies[11]="Perfect"
PotionPotencies[12]="Grand"
PotionPotencies[13]="Lasting"
PotionPotencies[14]="Lingering"
PotionPotencies[15]="Long"
PotionPotencies[16]="Persisting"
PotionPotencies[17]="Potent"
PotionPotencies[18]="Potency"
PotionPotencies[19]="Unceasing"
PotionPotencies[20]="Virulent"
PotionAlchTypes=new string[20]
PotionAlchTypes[1]="Draught"
PotionAlchTypes[2]="Elixir"
PotionAlchTypes[3]="Elixer"
PotionAlchTypes[4]="Essence"
PotionAlchTypes[5]="Extract"
PotionAlchTypes[6]="Phial"
PotionAlchTypes[7]="Philter"
PotionAlchTypes[8]="Potion"
PotionAlchTypes[9]="Reserve"
PotionAlchTypes[10]="Solution"
PotionAlchTypes[11]="Venom"
PotionEffects=new string[31]
PotionEffects[1]="Aversion"
PotionEffects[2]="Conflict"
PotionEffects[3]="Cure"
PotionEffects[4]="Healing"
PotionEffects[5]="Stamina"
PotionEffects[6]="Disease"
PotionEffects[7]="Fear"
PotionEffects[8]="Fire"
PotionEffects[9]="Frenzy"
PotionEffects[10]="Frost"
PotionEffects[11]="Frostbite"
PotionEffects[12]="Glibness"
PotionEffects[13]="Health"
PotionEffects[14]="Ice"
PotionEffects[15]="Invisibility"
PotionEffects[16]="Magic"
PotionEffects[17]="Magick"
PotionEffects[18]="Magicka"
PotionEffects[19]="Malign"
PotionEffects[20]="Paralysis"
PotionEffects[21]="Recovery"
PotionEffects[22]="Regeneration"
PotionEffects[23]="Resist"
PotionEffects[24]="Sap"
PotionEffects[25]="Shock"
PotionEffects[26]="Sleeping"
PotionEffects[27]="Torpor"
PotionEffects[28]="Berserker"
PotionEffects[29]="Vigor"
PotionEffects[30]="Waterbreathing"
PotionSkills=new string[20]
PotionSkills[1]="Blacksmith's"
PotionSkills[2]="Alteration"
PotionSkills[3]="Conjurer's"
PotionSkills[4]="Defender"
PotionSkills[5]="Escape"
PotionSkills[6]="Feet"
PotionSkills[7]="Haggling"
PotionSkills[8]="Healer"
PotionSkills[9]="Illusion"
PotionSkills[10]="Keenshot"
PotionSkills[11]="Knight"
PotionSkills[12]="Larceny"
PotionSkills[13]="Lockpicking"
PotionSkills[14]="Plunder"
PotionSkills[15]="Shot"
PotionSkills[16]="Skirmisher's"
PotionSkills[17]="Strength"
PotionSkills[18]="True"
PotionSkills[19]="Warrior"
Foods=new string[60]
Foods[0]="Tower"
Foods[1]="Ale"
Foods[2]="Alto"
Foods[3]="Apple"
Foods[4]="Argonian"
Foods[5]="Baked"
Foods[6]="Beef"
Foods[7]="Berry"
Foods[8]="Black-Briar"
Foods[9]="Blood"
Foods[10]="Blue"
Foods[11]="Boiled"
Foods[12]="Brandy"
Foods[13]="Bread"
Foods[14]="Breast"
Foods[15]="Cabbage"
Foods[16]="Carrot"
Foods[17]="Charred"
Foods[18]="Cheese"
Foods[19]="Chicken"
Foods[20]="Chop"
Foods[21]="Clam"
Foods[22]="Cooked"
Foods[23]="Cream"
Foods[24]="Dog"
Foods[25]="Double-Distilled"
Foods[26]="Carrot"
Foods[27]="Charred"
Foods[28]="Goat"
Foods[29]="Gourd"
Foods[30]="Green"
Foods[31]="Haunch"
Foods[32]="Homecooked"
Foods[33]="Honey"
Foods[34]="Honningbrew"
Foods[35]="Horker"
Foods[36]="Horse"
Foods[37]="Juniper"
Foods[38]="Leeks"
Foods[39]="Leg"
Foods[40]="Lotus"
Foods[41]="Mammoth"
Foods[42]="Mead"
Foods[43]="Meal"
Foods[44]="Meat"
Foods[45]="Nightshade"
Foods[46]="Nord"
Foods[47]="Nut"
Foods[48]="Pheasant"
Foods[49]="Pie"
Foods[50]="Potato"
Foods[31]="Potatoes"
Foods[32]="Raw"
Foods[33]="Red"
Foods[34]="Roll"
Foods[35]="Rum"
Foods[36]="Salmon"
Foods[37]="Skeever"
Foods[38]="Skooma"
Foods[39]="Sliced"
Foods[40]="Snout"
Foods[41]="Soup"
Foods[42]="Spiced"
Foods[43]="Stew"
Foods[44]="Taffy"
Foods[45]="Tomato"
Foods[46]="Treat"
Foods[47]="Tree"
Foods[48]="Vegetavle"
Foods[49]="Velvet"
Foods[50]="Venison"
Foods[51]="Wedge"
Foods[52]="Wheel"
Foods[53]="White"
Foods[54]="White-Gold"
Foods[55]="Tomato"
Foods[56]="Wine"
PotionMisc=new string[30]
PotionMisc[1]="Argonian"
PotionMisc[2]="Balmora"
PotionMisc[3]="Bane"
PotionMisc[4]="Breath"
PotionMisc[5]="Cliff"
PotionMisc[6]="Colovian"
PotionMisc[7]="Cyrodillic"
PotionMisc[8]="Dragon's"
PotionMisc[9]="Eidar"
PotionMisc[10]="Elsweyr"
PotionMisc[11]="Esbern's"
PotionMisc[12]="Falmer"
PotionMisc[13]="Finebrand"
PotionMisc[14]="Holy"
PotionMisc[15]="Jessica's"
PotionMisc[16]="Kordir's"
PotionMisc[17]="LeChance"
PotionMisc[18]="M'Kai"
PotionMisc[19]="Stallion's"
PotionMisc[20]="Stros"
PotionMisc[21]="the"
PotionMisc[22]="to"
PotionMisc[23]="of"
PotionMisc[24]="Unknown"
PotionMisc[25]="Vaermina's"
PotionMisc[26]="Wraith"

 




In order to make a compatibility patch a mod author will simply release a flat text file with the above format. This text file will get dropped into a folder for the VCE.

Here is the tricky part. I want to run a batch file from papyrus that will dump to a text file the contents of this folder. With the names of all the text files in the folder I can then write an import function that will import these category arrays into appropriately named formlists & arrays, and as simple as that the mod will be compatible with the VCE.

Question: I know I can run a batch file through console using the bat, command. How can I issue the bat command to console via papyrus?

Link to comment
Share on other sites

 

 


int function ImportModSupport()

	Console("Bat GetModList.bat")

endFunction

;console and GetDXScanCode functions borrowed from
;http://www.gamesas.com/way-run-bat-from-script-t259754.html
;thanks Roberta Obrien, leigh stewart, and Allison Sizemore

Function Console(String asCommand = "", Int aiCharIndex = 0, Int aiStringLength = 0)
	Input.TapKey(41) 	; '~' 
	aiStringLength = StringUtil.GetLength(asCommand)	
	While (aiCharIndex < aiStringLength) 
		Input.TapKey(GetDXScanCode(StringUtil.GetNthChar(asCommand, aiCharIndex)))	
		aiCharIndex += 1	
	EndWhile 
	
	Input.TapKey(28) 	; 'Enter'	
	Input.TapKey(41) 	; '~'
EndFunction

Int Function GetDXScanCode(String asCharacter = "") 
	If StringUtil.IsLetter(asCharacter)	
		If asCharacter == "Q"	
			Return 16	
		ElseIf asCharacter == "W"	
			Return 17	
		ElseIf asCharacter == "E"	
			Return 18	
		ElseIf asCharacter == "R"	
			Return 19	
		ElseIf asCharacter == "T"
			Return 20	
		ElseIf asCharacter == "Y"	
			Return 21	
		ElseIf asCharacter == "U"
			Return 22	
		ElseIf asCharacter == "I"	
			Return 23	
		ElseIf asCharacter == "O"	
			Return 24	
		ElseIf asCharacter == "P"
			Return 25	
		ElseIf asCharacter == "A"
			Return 30	
		ElseIf asCharacter == "S"	
			Return 31	
		ElseIf asCharacter == "D"	
			Return 32	
		ElseIf asCharacter == "F"	
			Return 33	
		ElseIf asCharacter == "G"	
			Return 34	
		ElseIf asCharacter == "H"	
			Return 35	
		ElseIf asCharacter == "J"	
			Return 36	
		ElseIf asCharacter == "K"
			Return 37	
		ElseIf asCharacter == "L"	
			Return 38	
		ElseIf asCharacter == "Z"
			Return 44	
		ElseIf asCharacter == "X"	
			Return 45	
		ElseIf asCharacter == "C"
			Return 46	
		ElseIf asCharacter == "V"	
			Return 47	
		ElseIf asCharacter == "B"	
			Return 48	
		ElseIf asCharacter == "N"
			Return 49	
		ElseIf asCharacter == "M"
			Return 50	
		EndIf 
	ElseIf StringUtil.IsDigit(asCharacter)
		If asCharacter == "1"	
			Return 2	
		ElseIf asCharacter == "2"
			Return 3	
		ElseIf asCharacter == "3"
			Return 4	
		ElseIf asCharacter == "4"	
			Return 5	
		ElseIf asCharacter == "5"
			Return 6	
		ElseIf asCharacter == "6"
			Return 7	
		ElseIf asCharacter == "7"
			Return 8	
		ElseIf asCharacter == "8"
			Return 9	
		ElseIf asCharacter == "9"
			Return 10	
		ElseIf asCharacter == "0"
			Return 11	
		EndIf	
	ElseIf asCharacter == " "
		Return 57
	ElseIf asCharacter == "-"
		Return 12
	ElseIf asCharacter == "="
		Return 13
	ElseIf asCharacter == "["
		Return 26 
	ElseIf asCharacter == "]"
		Return 27
	ElseIf asCharacter == ";"
		Return 39
	ElseIf asCharacter == "'"
		Return 40 
	ElseIf asCharacter == "~"
		Return 41
	ElseIf asCharacter == ","
		Return 51	
	ElseIf asCharacter == "."
		Return 52
	ElseIf asCharacter == "/"
		Return 53	
	ElseIf asCharacter == " "
		Return 57	
	EndIf
EndFunction 

 



then in GetModList.bat

dir *.txt /b /a-d > ModList.txt
Link to comment
Share on other sites

  • 1 year later...

Did you ever get this to work in Skyrim LE? I tried it out in Skyrim SE (with SKSE64 or course) and it didn't work. The console did open but nothing was typed in the console. It seemed like having the console open paused the execution of the key taps because if I manually exited the console the taps appeared to resume.

 

Or did you end up using something else like ConsoleUtil to run your batch file?

Link to comment
Share on other sites

  • 3 months later...

I tried this as well, and got the same result in Skyrim SE as did Exergist. It opens the console, and just waits.

 

If I close the console myself, then it starts tapping out my programmed keystrokes again, some of which are just ignored, and some of which happen to be mapped keys - so I get the inventory, the Skyrim map, etc.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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