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" )


Dodatki SourceMod


















