Do edycji plik jail_zyczenia!
Zaczynamy!
Definiujemy nowe zmienne:
///////////// ogien //////////// new g_fire[ 33 ] new maxplayers; new id_podpalenie new g_mflash new g_smoke
id_podpalenie = jail_register_wish("Podpal Klawiszy");
else if(zyczenie == id_pojedynek){ MenuPojedynkow(id) }
else if(zyczenie == id_podpalenie){ for(new i=1; i<=32; i++){ if(is_user_alive(i) && get_user_team(i) == 2){ exec_punishmentfire() } } set_user_health(id, 3000); // odpowiada za to, czy damy naszemu ostatniemu więźniowi 3000 hp czy też nie, by nie został zabity w trakcie palenia się klawiszy }
exec_punishmentfire( ){ for(new i=1; i<=32; i++){ if(is_user_alive(i) && get_user_team(i) == 2){ if ( !g_fire[ i ] ){ g_fire[ i ] = 1 fire_effects( i ) fire_damage( i ) } } } } public fire_effects( id ){ if ( is_user_alive( id ) && g_fire[ id ] ){ new origin[ 3 ] get_user_origin( id, origin ) draw_fire( origin ) set_task( 0.2, "fire_effects", id ) } } public fire_damage( id ){ if ( is_user_alive( id ) && g_fire[ id ] ){ new health = get_user_health( id ) set_pev( id, pev_dmg_inflictor, 0 ) if ( health - 20 <= 0 ) user_kill( id, 1 ) else { set_pev( id, pev_health, float( health ) - 20.0 ) emit_sound( id, CHAN_ITEM, "ambience/flameburst1.wav", 0.6, ATTN_NORM, 0, PITCH_NORM ) set_task( 1.0, "fire_damage", id ) } } } public Touch( ptr, ptd ){ if ( ptr < 1 || ptr > maxplayers || ptd < 1 || ptd > maxplayers ) return FMRES_IGNORED if ( is_user_alive( ptr ) && !g_fire[ ptr ] && is_user_alive( ptd ) && g_fire[ ptd ] ){ emit_sound( ptr, CHAN_WEAPON, "scientist/scream07.wav", 1.0, ATTN_NORM, 0, PITCH_HIGH ) } return FMRES_IGNORED } draw_fire( origin[ 3 ] ){ message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte( TE_SPRITE ) write_coord( origin[ 0 ] ) write_coord( origin[ 1 ] ) write_coord( origin[ 2 ] ) write_short( g_mflash ) write_byte( 20 ) write_byte( 200 ) message_end() smoke_effect( origin, 20 ) // Smoke } smoke_effect( origin[ 3 ], amount ){ message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte( TE_SMOKE ) write_coord( origin[ 0 ] ) write_coord( origin[ 1 ] ) write_coord( origin[ 2 ] ) write_short( g_smoke ) write_byte( amount ) write_byte( 10 ) message_end() }
A teraz tak na 100% ostatnim krokiem jest dodanie do funkcji plugin_precache() tegoż kodu
precache_sound( "ambience/flameburst1.wav" ) precache_sound( "scientist/scream07.wav" ) g_mflash = precache_model( "sprites/muzzleflash.spr" ) g_smoke = precache_model( "sprites/steam1.spr" ) precache_sound( "scientist/scream21.wav" )