Ppayrus Scripting Problems

Post » Sat Feb 09, 2013 11:51 pm

So when I try to compile what I thought was a valid script, I get this:


Starting 1 compile threads for 1 files...

Compiling "aaaModApocSpawnEnemy01"...

G:\steam\steamapps\common\skyrim\Data\Scripts\Source\aaaModApocSpawnEnemy01.psc(16,4): no viable alternative at input 'property'

G:\steam\steamapps\common\skyrim\Data\Scripts\Source\aaaModApocSpawnEnemy01.psc(37,7): no viable alternative at input '='

G:\steam\steamapps\common\skyrim\Data\Scripts\Source\aaaModApocSpawnEnemy01.psc(48,23): no viable alternative at input '('

G:\steam\steamapps\common\skyrim\Data\Scripts\Source\aaaModApocSpawnEnemy01.psc(60,73): mismatched input '(' expecting RPAREN

G:\steam\steamapps\common\skyrim\Data\Scripts\Source\aaaModApocSpawnEnemy01.psc(60,96): required (...)+ loop did not match anything at input ')'

G:\steam\steamapps\common\skyrim\Data\Scripts\Source\aaaModApocSpawnEnemy01.psc(61,73): mismatched input '(' expecting RPAREN

G:\steam\steamapps\common\skyrim\Data\Scripts\Source\aaaModApocSpawnEnemy01.psc(61,96): required (...)+ loop did not match anything at input ')'


No output generated for aaaModApocSpawnEnemy01.psc, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.

Failed on aaaModApocSpawnEnemy01.psc




And I have no idea how to fix it. This is my total script, for an apocalypse mod (Inspired by 28 days and a half):


[size=1]Scriptname aaaModApocSpawnEnemy01 extends form{For spawning nemies and controlling variables}[/size][size=1]EVENT OnActivate(ObjectReference aaaModApocSpawner);Set the game block to play every few seconds[/size][size=1]; User Defined Options[/size][size=1]int property AverageDistance = 450 autoint property AverageSpawnNumber = 4 autoint property TimeBetweenWaves = 60 autoint property EnemyNumber = 1 autoint property EnemyDifficulty = 0 autobool property UseDoors = False auto[/size][size=1];stuff used by the script[/size][size=1]Int property XDistance = 0 autoInt property YDistance = 0 autoInt property MonstersToSpawn = 0 autoInt property MonstersSpawned = 0 auto[/size][size=1]Actor property PlayerRef autoActor property Spawn auto[/size][size=1]bool property Enable1d auto[/size][size=1]ObjectReference property Marker auto[/size][size=1]Marker = (aaaModApocSpawnMarker)[/size][size=1]ObjectReference property SpawnDoor auto[/size][size=1]FormList property UsableDoors auto[/size][size=1]Int property DistanceFromPlayer auto[/size][size=1]RegisterForSingleUpdate(3.0)[/size][size=1]endEvent[/size][size=1]Event OnUpdate()if (Enable1 == True)Enable1 = False;Get distance to player and variables[s]XDistance = (AverageDistance + (Utility.RandomInt ( -(AverageDistance/5)(4), AverageDistance/5 )YDistance = (AverageDistance + (Utility.RandomInt ( -(AverageDistance/5)(4), AverageDistance/5 )[/s]XDistance = (AverageDistance + (Utility.RandomInt( -AverageDistance/5*4, AverageDistance/5 )))YDistance = (AverageDistance + (Utility.RandomInt( -AverageDistance/5*4, AverageDistance/5 )))UsableDoors = (aaaModApocUsableDoorsFormList);determine actor to placeif EnemyNumber == 1Spawn = (aaaModApocSkeletonSpawn)Spawn = Spawn.GetActorBase()endIf;place marker and determine # of monstersmarker.moveto (PlayerRef, XDistance, YDistance, PlayerRef.GetPosistionZ(), abMatchRotation = false)MonstersToSpawn = (AverageSpawnNumber + (Utility.RandomInt ((-AverageSpawnNumber/2), (AverageSpawnNumber/2))))DistanceFromPlayer = (Marker.GetDistance(PlayerRef));Place ignoring doorsif (UseDoors == False && MonsterSpawned &--#60; MonstersToSpawn)Marker.placeActorAtMe (Spawn, EnemyDifficulty)MonstersSpawned = MonstersSpawned + 1endIfif (UseDoors == True && MonstersSpawned &--#60; MonstersToSpawn)  SpawnDoor = Game.FindRandomReferenceOfAnyTypeInList(UsableDoors, PlayerRef.GetPosistionX(), PlayerRef.GetPosistionY(), PlayerRef.GetPosistionZ(), DistanceFromPlayer) 		if SpawnDoor != None		marker.moveto (SpawnDoor, abMatchRotation = false)					Marker.placeActorAtMe (Spawn, EnemyDifficulty) 				MonstersSpawned = MonstersSpawned + 1						elseif SpawnDoor == None							Marker.placeActorAtMe (Spawn, EnemyDifficulty) 					MonstersSpawned = MonstersSpawned + 1								endifendIfif (MonstersSpawned &--#62;= MonstersToSpawn)  ;The marker will be the destination for the spawned  Marker.moveto (PlayerRef, abmatchrotation = false)  ;Reseting the number of Monsters Spawned  monstersSpawned = 0  wait (TimeBetweenWaves)  ;Letting the game block run againendIfendIf  Enable1 = True  RegisterForUpdate(3.0)endEvent[/size]


I'm new to Papyrus, somewhat experienced in scripting. Any ideas?
User avatar
Cat
 
Posts: 3451
Joined: Mon Dec 18, 2006 5:10 am

Post » Sun Feb 10, 2013 7:18 am

Edit your post, click the light switch at the top left of the editor to disable the forum's auto formatter.

Anyway, move your properties below the scriptname line, but above the event line.
User avatar
emily grieve
 
Posts: 3408
Joined: Thu Jun 22, 2006 11:55 pm


Return to V - Skyrim