hey,
i followed this tutorial :
http://www.modsonline.com/Tutorials-read-636.html
this is my .gsc file:
Code:
#include common_scriptsutility;
#include maps_utility;
#include maps_anim;
#include maps_stealth_logic;
main()
{
maps\_load::main();
level.player giveWeapon ("mp5");
level.player givemaxammo ("mp5");
level.player setViewmodel( "viewhands_black_kit" );
maps_stealth_logic::stealth_init();
maps_stealth_behavior::main();
knife_setup();
}
#using_animtree("generic_human");
knife_setup()
{
flag_init( "knife_sequence_starting" );
flag_init( "knife_sequence_done" );
precacheModel( "weapon_parabolic_knife" );
level.player thread stealth_ai();
createthreatbiasgroup( "friendly" );
createthreatbiasgroup( "victims" );
setignoremegroup( "friendly", "victims" );
knifer_spawner = getent( "knifer", "targetname" );
knifer_spawner add_spawn_function( ::stealth_ai );
knifer_spawner add_spawn_function( ::set_ThreatBias_Group, "friendly" );
level.knifer = knifer_spawner stalingradSpawn();
level.knifeKillNode = getnode( "knife_node", "targetname" );
knifee_spawner = getent( "knife_me", "targetname" );
knifee_spawner add_spawn_function( ::AI_hostile_think );
knifee_spawner add_spawn_function( ::stealth_ai );
knifee_spawner add_spawn_function( ::set_ThreatBias_Group, "victims" );
level.badguy = knifee_spawner stalingradSpawn();
level._effect["knife_stab"] = loadfx ("misc/parabolic_knife_stab");
level.scr_anim[ "knifer" ][ "knifekill" ] = %ICBM_patrol_knifekill_winner;
level.scr_anim["hostile"][ "phoneguy_idle_start" ] = %patrol_bored_idle_cellphone;
level.scr_anim["hostile"][ "phoneguy_idle" ][0] = %patrol_bored_idle_cellphone;
level.scr_anim["hostile"][ "phoneguy_alerted" ] = %parabolic_phoneguy_reaction;
level.scr_anim["hostile"][ "phoneguy_death" ] = %ICBM_patrol_knifekill_looser;
}
begin_knife()
{
level.badguy thread AI_hostile_knife_kill_think();
level.badguy waittill( "death" );
level.flag_set( "knife_sequence_done" );
}
AI_hostile_think()
{
self endon( "death" );
self.animname = "hostile";
self.allowdeath = true;
self.ignoreme = true;
self.health = 1;
self thread stealth_enemy_endon_alert();
level.knifeKillNode anim_reach_solo( self, "phoneguy_idle_start" );
level.knifeKillNode thread anim_loop_solo( self, "phoneguy_idle", undefined, "stop_idle" );
self waittill( "stealth_enemy_endon_alert" );
self setthreatbiasgroup();
self.ignoreme = false;
level.knifer.ignoreAll = false;
level.knifeKillNode notify( "stop_idle" );
}
AI_hostile_knife_kill_think()
{
self endon( "death" );
self endon( "stealth_enemy_endon_alert" );
level.knifer setgoalpos( self.origin );
flag_set( "knife_sequence_starting" );
level.knifeKillNode anim_reach_solo( level.knifer, "knifekill" );
self thread knife_kill_fx();
self thread AI_hostile_knife_kill_abort_think();
level.knifer attach( "weapon_parabolic_knife", "TAG_INHAND" );
level.knifer playsound ( "scn_icbm_knife_melee" );
level.knifeKillNode thread anim_single_solo( level.knifer, "knifekill" );
level.knifeKillNode thread anim_single_solo( self, "phoneguy_death" );
time = getanimlength( self getanim( "phoneguy_death" ) );
time -= 2.75;
self delaythread( time, ::AI_hostile_knife_kill_finish_anim );
self delaythread ( time, ::set_ignore_all );
level.knifeKillNode waittill( "phoneguy_death" );
level notify( "knife_kill_done" );
level.knifer.ignoreAll = false;
level.knifer setgoalpos( level.knifer.origin );
level.knifer stopanimscripted();
self.a.nodeath = true;
self.allowdeath = true;
self dodamage( self.health + 50, ( 0, 0, 0 ) );
}
AI_hostile_knife_kill_finish_anim()
{
self endon( "stealth_enemy_endon_alert" );
self notify( "_stealth_stop_stealth_logic" );
self.allowdeath = false;
self.a.nodeath = true;
}
set_ignore_all()
{
self.ignoreall = true;
}
set_threatbias_group( group )
{
assert( threatbiasgroupexists( group ) );
self setthreatbiasgroup( group );
}
AI_hostile_knife_kill_abort_think()
{
flag_wait( "knife_sequence_starting" );
self waittill_either( "death", "stealth_enemy_endon_alert" );
level.knifer detach( "weapon_parabolic_knife", "TAG_INHAND" );
level.knifer stopanimscripted();
}
knife_kill_fx()
{
self endon( "death" );
self waittillmatch( "single anim", "knife hit" );
playfxontag( level._effect[ "knife_stab" ], self, "j_neck" );
}
and i get this error:
Error:
******* script compile error *******
Error: bad syntax: (file 'maps/sp_test3.gsc', line 56)
level.flag_set( "knife_sequence_done" );
*
************************************
Loaded zone 'sp_test3'
dvar set cl_paused 0
dvar set loc_language 0
dvar set loc_forceEnglish 0
dvar set com_errorTitle Error
dvar set com_errorMessage script compile error
bad syntax
level.flag_set( "knife_sequence_done" );
(see console for details)
********************
ERROR: script compile error
bad syntax
level.flag_set( "knife_sequence_done" );
(see console for details)
i'm not an advanced scripter but i really want to do this so plz help :)
edited on Oct. 3, 2009 05:24 am by basketrobin_4