He just wants to scare you, it isn't that complex to shoot a projectile at all. I'll find some time to answer you properly.
Sorry for the long delay, took me some UDK crashes to get it right :v: Since you aren't a programmer, I suggest you use Kismet for what you want. Kismet graphs aren't hard to understand and lets you do a lot of stuff. I decided I would do a little test and ended doing a more complex graph; it can still be improved though. Select the code I attached to this post, copy it (Ctrl+C), open UDK editor with my TestMap, open the Kismet window, click on background and paste it (Ctrl+V). If you play the map, one of the 3 SuperSonics next to where the 2.5D path starts will shoot you if it notices you. You can paste this code several times and reassign the first node to a different EnemySpawnerInfo. WARNING: enemy spawners with "Chase Players" marked will crash the game and the editor! Next SonicGDK update will fix this problem. Code (Text): Begin Object Class=SeqVar_Bool Name=SeqVar_Bool_8 bValue=1 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-3374 ObjPosY=1686 DrawWidth=32 DrawHeight=32 Name="SeqVar_Bool_8" ObjectArchetype=SeqVar_Bool'Engine.Default__SeqVar_Bool' End Object Begin Object Class=SeqAct_SetBool Name=SeqAct_SetBool_5 InputLinks(0)=(DrawY=1624,OverrideDelta=11) OutputLinks(0)=(Links=((LinkedOp=SeqAct_StartAnimation'SeqAct_StartAnimation_1')),DrawY=1624,OverrideDelta=11) VariableLinks(0)=(LinkedVariables=(SeqVar_Bool'SeqVar_Bool_8'),DrawX=-3340,OverrideDelta=16) VariableLinks(1)=(LinkedVariables=(SeqVar_Bool'SeqVar_Bool_6'),DrawX=-3284,OverrideDelta=68) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-3374 ObjPosY=1590 ObjComment="player is nearby" DrawWidth=128 DrawHeight=61 Name="SeqAct_SetBool_5" ObjectArchetype=SeqAct_SetBool'Engine.Default__SeqAct_SetBool' End Object Begin Object Class=UTSeqAct_AIFreeze Name=UTSeqAct_AIFreeze_3 InputLinks(0)=(DrawY=1818,OverrideDelta=13) InputLinks(1)=(DrawY=1838,OverrideDelta=33) OutputLinks(0)=(DrawY=1828,OverrideDelta=23) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_91'),DrawX=-1198,OverrideDelta=26) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-1246 ObjPosY=1782 ObjComment="unfreeze AI" DrawWidth=96 DrawHeight=85 Name="UTSeqAct_AIFreeze_3" ObjectArchetype=UTSeqAct_AIFreeze'UTGame.Default__UTSeqAct_AIFreeze' End Object Begin Object Class=SeqAct_SetBool Name=SeqAct_SetBool_4 InputLinks(0)=(DrawY=1904,OverrideDelta=11) OutputLinks(0)=(DrawY=1904,OverrideDelta=11) VariableLinks(0)=(LinkedVariables=(SeqVar_Bool'SeqVar_Bool_7'),DrawX=-1660,OverrideDelta=16) VariableLinks(1)=(LinkedVariables=(SeqVar_Bool'SeqVar_Bool_6'),DrawX=-1604,OverrideDelta=68) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-1694 ObjPosY=1870 ObjComment="player isn't nearby" DrawWidth=128 DrawHeight=61 Name="SeqAct_SetBool_4" ObjectArchetype=SeqAct_SetBool'Engine.Default__SeqAct_SetBool' End Object Begin Object Class=SeqVar_Bool Name=SeqVar_Bool_7 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-1694 ObjPosY=1974 DrawWidth=32 DrawHeight=32 Name="SeqVar_Bool_7" ObjectArchetype=SeqVar_Bool'Engine.Default__SeqVar_Bool' End Object Begin Object Class=SeqVar_Bool Name=SeqVar_Bool_6 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-1470 ObjPosY=1974 ObjComment="holds value" DrawWidth=32 DrawHeight=32 Name="SeqVar_Bool_6" ObjectArchetype=SeqVar_Bool'Engine.Default__SeqVar_Bool' End Object Begin Object Class=SeqCond_CompareBool Name=SeqCond_CompareBool_2 InputLinks(0)=(DrawY=1828,OverrideDelta=23) OutputLinks(0)=(Links=((LinkedOp=SeqAct_StartAnimation'SeqAct_StartAnimation_1')),DrawY=1818,OverrideDelta=13) OutputLinks(1)=(Links=((LinkedOp=UTSeqAct_AIFreeze'UTSeqAct_AIFreeze_3',InputLinkIdx=1)),DrawY=1838,OverrideDelta=33) VariableLinks(0)=(LinkedVariables=(SeqVar_Bool'SeqVar_Bool_6'),DrawX=-1441,OverrideDelta=16) VariableLinks(1)=(DrawX=-1391,OverrideDelta=59) ObjInstanceVersion=2 ParentSequence=Sequence'Main_Sequence' ObjPosX=-1470 ObjPosY=1782 ObjComment="is the player still nearby?" DrawWidth=115 DrawHeight=85 Name="SeqCond_CompareBool_2" ObjectArchetype=SeqCond_CompareBool'Engine.Default__SeqCond_CompareBool' End Object Begin Object Class=SeqAct_Delay Name=SeqAct_Delay_6 InputLinks(0)=(DrawY=1619,OverrideDelta=14) InputLinks(1)=(DrawY=1640,OverrideDelta=35) InputLinks(2)=(DrawY=1661,OverrideDelta=56) OutputLinks(0)=(Links=((LinkedOp=SeqCond_IsAlive'SeqCond_IsAlive_3')),DrawY=1624,OverrideDelta=19) OutputLinks(1)=(DrawY=1656,OverrideDelta=51) VariableLinks(0)=(DrawX=-1794,OverrideDelta=25) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-1846 ObjPosY=1582 DrawWidth=106 DrawHeight=109 Name="SeqAct_Delay_6" ObjectArchetype=SeqAct_Delay'Engine.Default__SeqAct_Delay' End Object Begin Object Class=SeqCond_IsAlive Name=SeqCond_IsAlive_3 InputLinks(0)=(DrawY=1636,OverrideDelta=23) OutputLinks(0)=(Links=((LinkedOp=SeqCond_CompareBool'SeqCond_CompareBool_2')),DrawY=1626,OverrideDelta=13) OutputLinks(1)=(DrawY=1646,OverrideDelta=33) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_91'),DrawX=-1607,OverrideDelta=16) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-1646 ObjPosY=1590 ObjComment="is the badnik still alive?" DrawWidth=79 DrawHeight=85 Name="SeqCond_IsAlive_3" ObjectArchetype=SeqCond_IsAlive'Engine.Default__SeqCond_IsAlive' End Object Begin Object Class=SeqCond_IsAlive Name=SeqCond_IsAlive_2 InputLinks(0)=(DrawY=1636,OverrideDelta=23) OutputLinks(0)=(Links=((LinkedOp=SeqAct_GetLocationAndRotation'SeqAct_GetLocationAndRotation_6')),DrawY=1626,OverrideDelta=13) OutputLinks(1)=(DrawY=1646,OverrideDelta=33) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_91'),DrawX=-2711,OverrideDelta=16) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-2750 ObjPosY=1590 ObjComment="is the badnik still alive?" DrawWidth=79 DrawHeight=85 Name="SeqCond_IsAlive_2" ObjectArchetype=SeqCond_IsAlive'Engine.Default__SeqCond_IsAlive' End Object Begin Object Class=UTSeqAct_SpawnProjectile Name=UTSeqAct_SpawnProjectile_4 ProjectileClass=Class'UTGame.UTProj_LinkPlasma' InputLinks(0)=(DrawY=1624,OverrideDelta=11) OutputLinks(0)=(Links=((LinkedOp=SeqAct_Delay'SeqAct_Delay_6')),DrawY=1624,OverrideDelta=11) VariableLinks(0)=(LinkedVariables=(SeqVar_Vector'SeqVar_Vector_11'),DrawX=-2144,OverrideDelta=16) VariableLinks(1)=(LinkedVariables=(SeqVar_Vector'SeqVar_Vector_12'),DrawX=-2067,OverrideDelta=93) VariableLinks(2)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_91'),DrawX=-1988,OverrideDelta=170) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-2190 ObjPosY=1590 ObjComment="shoot projectile" bOutputObjCommentToScreen=True DrawWidth=250 DrawHeight=77 Name="UTSeqAct_SpawnProjectile_4" ObjectArchetype=UTSeqAct_SpawnProjectile'UTGame.Default__UTSeqAct_SpawnProjectile' End Object Begin Object Class=SeqVar_Vector Name=SeqVar_Vector_12 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-2102 ObjPosY=1726 ObjComment="player location" DrawWidth=32 DrawHeight=32 Name="SeqVar_Vector_12" ObjectArchetype=SeqVar_Vector'Engine.Default__SeqVar_Vector' End Object Begin Object Class=SeqVar_Object Name=SeqVar_Object_92 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-3014 ObjPosY=1974 ObjComment="player" DrawWidth=32 DrawHeight=32 Name="SeqVar_Object_92" ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object' End Object Begin Object Class=SeqAct_GetLocationAndRotation Name=SeqAct_GetLocationAndRotation_6 InputLinks(0)=(DrawY=1624,OverrideDelta=11) OutputLinks(0)=(Links=((LinkedOp=UTSeqAct_SpawnProjectile'UTSeqAct_SpawnProjectile_4')),DrawY=1624,OverrideDelta=11) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_92'),DrawX=-2536,OverrideDelta=16) VariableLinks(1)=(LinkedVariables=(SeqVar_Vector'SeqVar_Vector_12'),DrawX=-2470,OverrideDelta=76) VariableLinks(2)=(DrawX=-2399,OverrideDelta=148) VariableLinks(3)=(DrawX=-2328,OverrideDelta=219) ObjInstanceVersion=3 ParentSequence=Sequence'Main_Sequence' ObjPosX=-2574 ObjPosY=1590 ObjComment="get player location" DrawWidth=290 DrawHeight=77 Name="SeqAct_GetLocationAndRotation_6" ObjectArchetype=SeqAct_GetLocationAndRotation'Engine.Default__SeqAct_GetLocationAndRotation' End Object Begin Object Class=SeqAct_Delay Name=SeqAct_Delay_5 Duration=2.000000 InputLinks(0)=(DrawY=1619,OverrideDelta=14) InputLinks(1)=(DrawY=1640,OverrideDelta=35) InputLinks(2)=(DrawY=1661,OverrideDelta=56) OutputLinks(0)=(Links=((LinkedOp=SeqCond_IsAlive'SeqCond_IsAlive_2')),DrawY=1624,OverrideDelta=19) OutputLinks(1)=(DrawY=1656,OverrideDelta=51) VariableLinks(0)=(DrawX=-2898,OverrideDelta=25) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-2950 ObjPosY=1582 DrawWidth=106 DrawHeight=109 Name="SeqAct_Delay_5" ObjectArchetype=SeqAct_Delay'Engine.Default__SeqAct_Delay' End Object Begin Object Class=SeqAct_StartAnimation Name=SeqAct_StartAnimation_1 AnimationName="Transformation" InputLinks(0)=(DrawY=1626,OverrideDelta=13) InputLinks(1)=(DrawY=1646,OverrideDelta=33) OutputLinks(0)=(Links=((LinkedOp=SeqAct_Delay'SeqAct_Delay_5')),DrawY=1626,OverrideDelta=13) OutputLinks(1)=(DrawY=1646,OverrideDelta=33) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_91'),DrawX=-3102,OverrideDelta=34) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-3158 ObjPosY=1590 ObjComment="play anim" bOutputObjCommentToScreen=True DrawWidth=113 DrawHeight=85 Name="SeqAct_StartAnimation_1" ObjectArchetype=SeqAct_StartAnimation'SonicGDK.Default__SeqAct_StartAnimation' End Object Begin Object Class=SeqVar_Vector Name=SeqVar_Vector_11 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-2510 ObjPosY=1726 ObjComment="badnik location" DrawWidth=32 DrawHeight=32 Name="SeqVar_Vector_11" ObjectArchetype=SeqVar_Vector'Engine.Default__SeqVar_Vector' End Object Begin Object Class=SeqAct_GetLocationAndRotation Name=SeqAct_GetLocationAndRotation_5 InputLinks(0)=(DrawY=1624,OverrideDelta=11) OutputLinks(0)=(Links=((LinkedOp=SeqAct_SetBool'SeqAct_SetBool_5')),DrawY=1624,OverrideDelta=11) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_91'),DrawX=-3720,OverrideDelta=16) VariableLinks(1)=(LinkedVariables=(SeqVar_Vector'SeqVar_Vector_11'),DrawX=-3654,OverrideDelta=76) VariableLinks(2)=(DrawX=-3583,OverrideDelta=148) VariableLinks(3)=(DrawX=-3512,OverrideDelta=219) ObjInstanceVersion=3 ParentSequence=Sequence'Main_Sequence' ObjPosX=-3758 ObjPosY=1590 ObjComment="get badnik location" DrawWidth=290 DrawHeight=77 Name="SeqAct_GetLocationAndRotation_5" ObjectArchetype=SeqAct_GetLocationAndRotation'Engine.Default__SeqAct_GetLocationAndRotation' End Object Begin Object Class=SeqVar_Object Name=SeqVar_Object_91 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-3510 ObjPosY=2022 ObjComment="badnik" DrawWidth=32 DrawHeight=32 Name="SeqVar_Object_91" ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object' End Object Begin Object Class=UTSeqAct_AIFreeze Name=UTSeqAct_AIFreeze_2 InputLinks(0)=(DrawY=1626,OverrideDelta=13) InputLinks(1)=(DrawY=1646,OverrideDelta=33) OutputLinks(0)=(Links=((LinkedOp=SeqAct_GetLocationAndRotation'SeqAct_GetLocationAndRotation_5')),DrawY=1636,OverrideDelta=23) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_91'),DrawX=-3902,OverrideDelta=26) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-3950 ObjPosY=1590 ObjComment="freeze AI" DrawWidth=96 DrawHeight=85 Name="UTSeqAct_AIFreeze_2" ObjectArchetype=UTSeqAct_AIFreeze'UTGame.Default__UTSeqAct_AIFreeze' End Object Begin Object Class=SeqEvent_EnemySeePlayer Name=SeqEvent_EnemySeePlayer_1 MaxWidth=131 OutputLinks(0)=(Links=((LinkedOp=UTSeqAct_AIFreeze'UTSeqAct_AIFreeze_2')),DrawY=1747,OverrideDelta=14) OutputLinks(1)=(DrawY=1769,OverrideDelta=36) OutputLinks(2)=(DrawY=1791,OverrideDelta=58) OutputLinks(3)=(Links=((LinkedOp=SeqAct_SetBool'SeqAct_SetBool_4')),DrawY=1813,OverrideDelta=80) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_91'),DrawX=-4177,OverrideDelta=16) VariableLinks(1)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_92'),DrawX=-4119,OverrideDelta=75) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-4214 ObjPosY=1678 DrawWidth=132 DrawHeight=216 Name="SeqEvent_EnemySeePlayer_1" ObjectArchetype=SeqEvent_EnemySeePlayer'SonicGDK.Default__SeqEvent_EnemySeePlayer' End Object Begin Object Class=SeqAct_AttachToEvent Name=SeqAct_AttachToEvent_1 InputLinks(0)=(DrawY=1592,OverrideDelta=11) OutputLinks(0)=(DrawY=1592,OverrideDelta=11) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_17'),DrawX=-4216,OverrideDelta=16) EventLinks(0)=(LinkedEvents=(SeqEvent_EnemySeePlayer'SeqEvent_EnemySeePlayer_1'),DrawX=-4150,OverrideDelta=93) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-4262 ObjPosY=1558 ObjComment="attach created badnik to this event" DrawWidth=147 DrawHeight=61 Name="SeqAct_AttachToEvent_1" ObjectArchetype=SeqAct_AttachToEvent'Engine.Default__SeqAct_AttachToEvent' End Object Begin Object Class=SeqVar_Object Name=SeqVar_Object_17 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-4320 ObjPosY=1712 ObjComment="badnik" DrawWidth=32 DrawHeight=32 Name="SeqVar_Object_17" ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object' End Object Begin Object Class=SeqEvent_EnemySpawn Name=SeqEvent_EnemySpawn_1 Originator=EnemySpawnerInfo'EnemySpawnerInfo_2' MaxWidth=249 OutputLinks(0)=(Links=((LinkedOp=SeqAct_AttachToEvent'SeqAct_AttachToEvent_1')),DrawY=1578,OverrideDelta=13) OutputLinks(1)=(DrawY=1598,OverrideDelta=33) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_17'),DrawX=-4418,OverrideDelta=94) ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=-4542 ObjPosY=1510 ObjName="EnemySpawnerInfo_2 Enemy Spawn" DrawWidth=162 DrawHeight=168 Name="SeqEvent_EnemySpawn_1" ObjectArchetype=SeqEvent_EnemySpawn'SonicGDK.Default__SeqEvent_EnemySpawn' End Object
New 1.10.186 version is up! Source Code (requires UDK February 2013): BF / PL / TB / ZS What's new? In short: Revamped the camera system which lets mappers change many more params and switch controls types. Added better support for opening cinematics. New Kismet node that controls title cards. Enemies grant energy when destroyed. Hyper Sonic. Exposed many configurable particles to mappers. ExtraLifeTrack, InvincibleTrack and SpeedBootsTrack are now configurable through MusicInfo. Fixed a crashing bug related to chasing AIs. Fixed a problem with gamepads in PlayInEditor (PIE) mode. Many more fixes and minor improvements.
Awesome as always Xaklse! One question - I'm still using the November build of UDK. If I get the February build and this version of SGDK, can I still continue with my level? Would anything be lost?
I bet nothing would be lost, I didn't lose anything from my maps. You can have several UDK installs in your PC, just in case you want to test first. Oh! You probably will need to adjust the cameras, due to the new code I wrote.
I coded a "GenericProjectile" for those of you who need a better working projectile; it will be included in the next update. LINK (drop the file into ...\UDKdir\Development\ Src\SonicGDK\Classes, the UDK editor should tell you what to do)
WIP, and yes, it already works... Design by P3DR0. __________________________________________________ Level by Ell678 (WIP): He deserves feedback, be nice and please him. .
I kinda wish there were some more released levels for SonicGDK, running through that open-world Green Hill or the test map kinda got old for me.
Same. Though I never really finished anything. I really want to add grinding, but honestly, I haven't taken the time to learn uScript. <_<;
I don't know what it is, but I really like the way GDK plays right now. Like, even more than I did before, and that's saying something. 8v Thinking about trying out adding wall jumping, slight wall running, or Mario 64-esque backward flips to this engine, because for some reason I feel like all of that would fit way too well.
Well, it does seem like the level is using pre-made assets for Unreal Engine 3. Haven't really used it so I can't say for sure.
This isn't a GDK specific question but...I'm following this tutorial here and, while the scripts up to the "create a level" video did compile correctly, I'm not seeing the gameinfo that the tutorial had me create in a script in the Gametype section. Little help?