Biski pakeisti plugina

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
edgaras85
O taip. Jis jau surinko 50 žinučių!
Posts: 50
Joined: 2010 Sep 04 11:59
Skype: edgaras259

Biski pakeisti plugina

Post by edgaras85 »

Code: Select all

#include < amxmodx >#include < engine >#include < zombieplague > new const zclass_name[ ] = "Boomer"new const zclass_info[ ] = "- bind [key] boomer_vomit"new const zclass_model[ ] = "zombie_boomer"new const zclass_clawmodel[ ] = "v_knife_boomer.mdl"const zclass_health = 500const zclass_speed = 200const Float:zclass_gravity = 1.0const Float:zclass_knockback = 0.5 new const vomit_sprite[ ] = "sprites/poison.spr"new const vomit_sounds[ 3 ][ ] = { "zombie_plague/male_boomer_vomit_01.wav","zombie_plague/male_boomer_vomit_03.wav","zombie_plague/male_boomer_vomit_04.wav" } new const explode_sounds[ 3 ][ ] = { "zombie_plague/explo_medium_09.wav","zombie_plague/explo_medium_10.wav","zombie_plague/explo_medium_14.wav" } new g_zclass_boomer, g_msgid_ScreenFade, g_iMaxPlayers, vomit, cvar_vomitdist, cvar_explodedist, cvar_wakeuptime, cvar_vomitcooldown, cvar_victimrender, cvar_inuse, cvar_boomer_reward // Cooldown hooknew Float:g_iLastVomit[ 33 ] // Stupid spam when using IN_USE buttonnew bool:g_iHateSpam[ 33 ] public plugin_init( ){    register_plugin( "[ZP] Zombie Class: Boomer", "1.2 BETA", "Excalibur.007" )        register_clcmd( "boomer_vomit", "clcmd_vomit" )        register_event( "DeathMsg", "event_DeathMsg", "a" )        cvar_vomitdist = register_cvar( "zp_boomer_vomit_dist", "300" )    cvar_explodedist = register_cvar( "zp_boomer_explode_dist", "300" )    cvar_wakeuptime = register_cvar( "zp_boomer_blind_time", "4" )    cvar_vomitcooldown = register_cvar( "zp_boomer_vomit_cooldown", "10.0" )    cvar_victimrender = register_cvar( "zp_boomer_victim_render", "1" )    cvar_inuse = register_cvar( "zp_boomer_in_use_bind", "1" )    cvar_boomer_reward = register_cvar( "zp_boomer_ap_reward", "2" )        g_msgid_ScreenFade = get_user_msgid( "ScreenFade" )        /* - We hook it at here to optimize the plugin a bit    since sv_maxplayers cvar CANNOT BE CHANGED during in-game - */    g_iMaxPlayers = get_maxplayers( )} public plugin_precache( ){    g_zclass_boomer = zp_register_zombie_class( zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback )        vomit = precache_model( vomit_sprite )        for( new i = 0; i < sizeof vomit_sounds; i ++ )        precache_sound( vomit_sounds[ i ] )            for( new i = 0; i < sizeof explode_sounds; i ++ )        precache_sound( explode_sounds[ i ] )} public zp_user_infected_post( id, infector ){    if( zp_get_user_zombie_class( id ) == g_zclass_boomer && !zp_get_user_nemesis( id ) )    {        if( get_pcvar_num( cvar_inuse ) )        {            client_print( id, print_chat, "[ZP] Press your defuse/plant button(Default: E) to vomit!. Made by Excalibur.007" )        }        else        {            client_print( id, print_chat, "[ZP] To vomit, ^"bind [key] boomer_vomit^". Made by Excalibur.007" )        }    }} public client_PreThink( id ){    if( !is_user_alive( id ) || !is_user_connected( id ) || !zp_get_user_zombie( id ) || zp_get_user_nemesis( id ) || zp_get_user_zombie_class( id ) != g_zclass_boomer || !get_pcvar_num( cvar_inuse ) || g_iHateSpam[ id ] )        return PLUGIN_HANDLED        if( ( get_user_button( id ) & IN_USE ) )    {        g_iHateSpam[ id ] = true        clcmd_vomit( id )        set_task( 1.0, "StopSpam_XD", id )    }    return PLUGIN_HANDLED} public clcmd_vomit( id ){    if( !is_user_alive( id ) || !is_user_connected( id ) || !zp_get_user_zombie( id ) || zp_get_user_nemesis( id ) || zp_get_user_zombie_class( id ) != g_zclass_boomer )        return PLUGIN_HANDLED        if( get_gametime( ) - g_iLastVomit[ id ] < get_pcvar_float( cvar_vomitcooldown ) )    {        client_print( id, print_chat, "[ZP] You need to wait for %.f0 sec. to vomit again!", get_pcvar_float( cvar_vomitcooldown ) - ( get_gametime( ) - g_iLastVomit[ id ] ) )        return PLUGIN_HANDLED    }        g_iLastVomit[ id ] = get_gametime( )        new target, body, dist = get_pcvar_num( cvar_vomitdist )    get_user_aiming( id, target, body, dist )            new vec[ 3 ], aimvec[ 3 ], velocityvec[ 3 ]    new length        get_user_origin( id, vec )    get_user_origin( id, aimvec, 2 )        velocityvec[ 0 ] = aimvec[ 0 ] - vec[ 0 ]    velocityvec[ 1 ] = aimvec[ 1 ] - vec[ 1 ]    velocityvec[ 2 ] = aimvec[ 2 ] - vec[ 2 ]    length = sqrt( velocityvec[ 0 ] * velocityvec[ 0 ] + velocityvec[ 1 ] * velocityvec[ 1 ] + velocityvec[ 2 ] * velocityvec[ 2 ] )    velocityvec[ 0 ] = velocityvec[ 0 ] * 10 / length    velocityvec[ 1 ] = velocityvec[ 1 ] * 10 / length    velocityvec[ 2 ] = velocityvec[ 2 ] * 10 / length        new args[ 8 ]    args[ 0 ] = vec[ 0 ]    args[ 1 ] = vec[ 1 ]    args[ 2 ] = vec[ 2 ]    args[ 3 ] = velocityvec[ 0 ]    args[ 4 ] = velocityvec[ 1 ]    args[ 5 ] = velocityvec[ 2 ]        set_task( 0.1, "create_sprite", 0, args, 8, "a", 3 )        emit_sound( id, CHAN_STREAM, vomit_sounds[ random_num( 0, 2 ) ], 1.0, ATTN_NORM, 0, PITCH_HIGH )        if( is_valid_ent( target ) && is_user_alive( target ) && is_user_connected( target ) && !zp_get_user_zombie( target ) && get_entity_distance( id, target ) <= dist )    {        message_begin( MSG_ONE_UNRELIABLE, g_msgid_ScreenFade, _, target )        write_short( get_pcvar_num( cvar_wakeuptime ) )        write_short( get_pcvar_num( cvar_wakeuptime ) )        write_short( 0x0004 )        write_byte( 79 )        write_byte( 180 )        write_byte( 61 )        write_byte( 255 )        message_end( )                if( get_pcvar_num( cvar_victimrender ) )        {            set_rendering( target, kRenderFxGlowShell, 79, 180, 61, kRenderNormal, 25 )         }        set_task( get_pcvar_float( cvar_wakeuptime ), "victim_wakeup", target )                if( !get_pcvar_num( cvar_boomer_reward ) )            return PLUGIN_HANDLED                    zp_set_user_ammo_packs( id, zp_get_user_ammo_packs( id ) + get_pcvar_num( cvar_boomer_reward ) )        client_print( id, print_chat, "[ZP] You've earned %i for vomiting on a human!", get_pcvar_num( cvar_boomer_reward ) )    }    return PLUGIN_HANDLED} public create_sprite( args[ ] ){    message_begin( MSG_BROADCAST, SVC_TEMPENTITY )    write_byte( 120 )    write_coord( args[ 0 ] )    write_coord( args[ 1 ] )    write_coord( args[ 2 ] )    write_coord( args[ 3 ] )    write_coord( args[ 4 ] )    write_coord( args[ 5 ] )    write_short( vomit )    write_byte( 8 )    write_byte( 70 )    write_byte( 100 )    write_byte( 5 )    message_end( )        return PLUGIN_CONTINUE} public victim_wakeup( id ){    if( !is_user_connected( id ) )        return        message_begin( MSG_ONE_UNRELIABLE, g_msgid_ScreenFade, _, id )    write_short( ( 1<<12 ) )    write_short( 0 )    write_short( 0x0000 )    write_byte( 0 )    write_byte( 0 )    write_byte( 0 )    write_byte( 255 )    message_end( )        if( get_pcvar_num( cvar_victimrender ) )    {        set_rendering( id )    }} public StopSpam_XD( id ){    if( !is_user_connected( id ) )        return            g_iHateSpam[ id ] = false}public event_DeathMsg( ){    new id = read_data( 2 )        if( !is_user_connected( id ) || !zp_get_user_zombie( id ) || zp_get_user_nemesis( id ) || zp_get_user_zombie_class( id ) != g_zclass_boomer )        return            emit_sound( id, CHAN_STREAM, explode_sounds[ random_num( 0, 2 ) ], 1.0, ATTN_NORM, 0, PITCH_HIGH )        for( new i = 1; i <= g_iMaxPlayers; i ++ )    {        if( !is_valid_ent( i ) || !is_user_alive( i ) || !is_user_connected( i ) || zp_get_user_zombie( i ) || get_entity_distance( id, i ) > get_pcvar_num( cvar_explodedist ) )            return                    message_begin( MSG_ONE_UNRELIABLE, g_msgid_ScreenFade, _, i )        write_short( get_pcvar_num( cvar_wakeuptime ) )        write_short( get_pcvar_num( cvar_wakeuptime ) )        write_short( 0x0004 )        write_byte( 79 )        write_byte( 180 )        write_byte( 61 )        write_byte( 255 )        message_end( )                if( get_pcvar_num( cvar_victimrender ) )        {            set_rendering( i, kRenderFxGlowShell, 79, 180, 61, kRenderNormal, 25 )        }                set_task( get_pcvar_float( cvar_wakeuptime ), "victim_wakeup", i )                if( !get_pcvar_num( cvar_boomer_reward ) )            return                    zp_set_user_ammo_packs( id, zp_get_user_ammo_packs( id ) + ( get_pcvar_num( cvar_boomer_reward ) * i ) )        client_print( id, print_chat, "[ZP] You've earned %i for exploding on %i humans!", ( get_pcvar_num( cvar_boomer_reward ) * i ), i )    }} public sqrt( num ){    new div = num    new result = 1    while( div > result )    {        div = ( div + result ) / 2        result = num / div    }    return div} 
Gal kas gali perdaryti kad kai mirsta nepadarytu zalia ekrana o uzkrestu

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Biski pakeisti plugina

Post by aaarnas »

Apačioje.
Attachments
plugin.sma
(7.46 KiB) Downloaded 720 times
Palikau CS pasaulį ;/ . Nebepasiekiamas.

edgaras85
O taip. Jis jau surinko 50 žinučių!
Posts: 50
Joined: 2010 Sep 04 11:59
Skype: edgaras259

Re: Biski pakeisti plugina

Post by edgaras85 »

Kazkodel neveikia uzkretimas :(

+ dar dadejau kad butu apskritimas toksai ir kai i ji ilendi turetu tave uzkresti ( Kai boomeris mirsta )

Code: Select all

#include < amxmodx >#include < engine >#include <fakemeta>#include < zombieplague > new const zclass_name[ ] = "Boomer"new const zclass_info[ ] = "bind [key] boomer_vomit"new const zclass_model[ ] = "zombie_boomer"new const zclass_clawmodel[ ] = "v_boomer_knife2.mdl"const zclass_health = 500const zclass_speed = 200const Float:zclass_gravity = 1.0const Float:zclass_knockback = 0.5 new g_exploSpr;new sprite_grenade_ring[64]; new const vomit_sprite[ ] = "sprites/poison.spr"new const vomit_sounds[ 3 ][ ] = { "zombie_plague/male_boomer_vomit_01.wav",    "zombie_plague/male_boomer_vomit_03.wav","zombie_plague/male_boomer_vomit_04.wav" } new const explode_sounds[ 3 ][ ] = { "zombie_plague/explo_medium_09.wav",    "zombie_plague/explo_medium_10.wav","zombie_plague/explo_medium_14.wav" } new g_zclass_boomer, g_msgid_ScreenFade, g_iMaxPlayers, vomit, cvar_vomitdist, cvar_explodedist, cvar_wakeuptime, cvar_vomitcooldown, cvar_victimrender, cvar_inuse, cvar_boomer_reward // Cooldown hooknew Float:g_iLastVomit[ 33 ] // Stupid spam when using IN_USE buttonnew bool:g_iHateSpam[ 33 ] public plugin_init( ){    register_plugin( "[ZP] Zombie Class: Boomer", "1.2 BETA", "Excalibur.007" )        register_clcmd( "boomer_vomit", "clcmd_vomit" )        register_event( "DeathMsg", "event_DeathMsg", "a" )        cvar_vomitdist = register_cvar( "zp_boomer_vomit_dist", "300" )    cvar_explodedist = register_cvar( "zp_boomer_explode_dist", "500" )    cvar_wakeuptime = register_cvar( "zp_boomer_blind_time", "4" )    cvar_vomitcooldown = register_cvar( "zp_boomer_vomit_cooldown", "10.0" )    cvar_victimrender = register_cvar( "zp_boomer_victim_render", "1" )    cvar_inuse = register_cvar( "zp_boomer_in_use_bind", "0" )    cvar_boomer_reward = register_cvar( "zp_boomer_ap_reward", "2" )        g_msgid_ScreenFade = get_user_msgid( "ScreenFade" )        /* - We hook it at here to optimize the plugin a bit    since sv_maxplayers cvar CANNOT BE CHANGED during in-game - */    g_iMaxPlayers = get_maxplayers( )} public plugin_precache( ){    g_zclass_boomer = zp_register_zombie_class( zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback )        vomit = precache_model( vomit_sprite )        for( new i = 0; i < sizeof vomit_sounds; i ++ )        precache_sound( vomit_sounds[ i ] )        for( new i = 0; i < sizeof explode_sounds; i ++ )        precache_sound( explode_sounds[ i ] )     g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring)} public zp_user_infected_post( id, infector ){    if( zp_get_user_zombie_class( id ) == g_zclass_boomer && !zp_get_user_nemesis( id ) )    {        if( get_pcvar_num( cvar_inuse ) )        {            client_print( id, print_chat, "[ZP] Press your defuse/plant button(Default: E) to vomit!" )        }        else        {            client_print( id, print_chat, "[ZP] To vomit, ^"bind [key] boomer_vomit^"" )        }    }} public client_PreThink( id ){    if( !is_user_alive( id ) || !is_user_connected( id ) || !zp_get_user_zombie( id ) || zp_get_user_nemesis( id ) || zp_get_user_zombie_class( id ) != g_zclass_boomer || !get_pcvar_num( cvar_inuse ) || g_iHateSpam[ id ] )        return PLUGIN_HANDLED        if( ( get_user_button( id ) & IN_USE ) )    {        g_iHateSpam[ id ] = true        clcmd_vomit( id )        set_task( 1.0, "StopSpam_XD", id )    }    return PLUGIN_HANDLED} public clcmd_vomit( id ){    if( !is_user_alive( id ) || !is_user_connected( id ) || !zp_get_user_zombie( id ) || zp_get_user_nemesis( id ) || zp_get_user_zombie_class( id ) != g_zclass_boomer )        return PLUGIN_HANDLED        if( get_gametime( ) - g_iLastVomit[ id ] < get_pcvar_float( cvar_vomitcooldown ) )    {        client_print( id, print_chat, "[ZP] You need to wait for %.f0 sec. to vomit again!", get_pcvar_float( cvar_vomitcooldown ) - ( get_gametime( ) - g_iLastVomit[ id ] ) )        return PLUGIN_HANDLED    }        g_iLastVomit[ id ] = get_gametime( )        new target, body, dist = get_pcvar_num( cvar_vomitdist )    get_user_aiming( id, target, body, dist )        new vec[ 3 ], aimvec[ 3 ], velocityvec[ 3 ]    new length        get_user_origin( id, vec )    get_user_origin( id, aimvec, 2 )        velocityvec[ 0 ] = aimvec[ 0 ] - vec[ 0 ]    velocityvec[ 1 ] = aimvec[ 1 ] - vec[ 1 ]    velocityvec[ 2 ] = aimvec[ 2 ] - vec[ 2 ]    length = sqrt( velocityvec[ 0 ] * velocityvec[ 0 ] + velocityvec[ 1 ] * velocityvec[ 1 ] + velocityvec[ 2 ] * velocityvec[ 2 ] )    velocityvec[ 0 ] = velocityvec[ 0 ] * 10 / length    velocityvec[ 1 ] = velocityvec[ 1 ] * 10 / length    velocityvec[ 2 ] = velocityvec[ 2 ] * 10 / length        new args[ 8 ]    args[ 0 ] = vec[ 0 ]    args[ 1 ] = vec[ 1 ]    args[ 2 ] = vec[ 2 ]    args[ 3 ] = velocityvec[ 0 ]    args[ 4 ] = velocityvec[ 1 ]    args[ 5 ] = velocityvec[ 2 ]        set_task( 0.1, "create_sprite", 0, args, 8, "a", 3 )        emit_sound( id, CHAN_STREAM, vomit_sounds[ random_num( 0, 2 ) ], 1.0, ATTN_NORM, 0, PITCH_HIGH )        if( is_valid_ent( target ) && is_user_alive( target ) && is_user_connected( target ) && !zp_get_user_zombie( target ) && get_entity_distance( id, target ) <= dist )    {        message_begin( MSG_ONE_UNRELIABLE, g_msgid_ScreenFade, _, target )        write_short( get_pcvar_num( cvar_wakeuptime ) )        write_short( get_pcvar_num( cvar_wakeuptime ) )        write_short( 0x0004 )        write_byte( 79 )        write_byte( 180 )        write_byte( 61 )        write_byte( 255 )        message_end( )                if( get_pcvar_num( cvar_victimrender ) )        {            set_rendering( target, kRenderFxGlowShell, 79, 180, 61, kRenderNormal, 25 )         }        set_task( get_pcvar_float( cvar_wakeuptime ), "victim_wakeup", target )                if( !get_pcvar_num( cvar_boomer_reward ) )            return PLUGIN_HANDLED                zp_set_user_ammo_packs( id, zp_get_user_ammo_packs( id ) + get_pcvar_num( cvar_boomer_reward ) )        client_print( id, print_chat, "[ZP] You've earned %i for vomiting on a human!", get_pcvar_num( cvar_boomer_reward ) )    }    return PLUGIN_HANDLED} public create_sprite( args[ ] ){    message_begin( MSG_BROADCAST, SVC_TEMPENTITY )    write_byte( 120 )    write_coord( args[ 0 ] )    write_coord( args[ 1 ] )    write_coord( args[ 2 ] )    write_coord( args[ 3 ] )    write_coord( args[ 4 ] )    write_coord( args[ 5 ] )    write_short( vomit )    write_byte( 8 )    write_byte( 70 )    write_byte( 100 )    write_byte( 5 )    message_end( )        return PLUGIN_CONTINUE} public StopSpam_XD( id ){    if( !is_user_connected( id ) )        return        g_iHateSpam[ id ] = false} public victim_wakeup( id ){    if( !is_user_connected( id ) )        return       message_begin( MSG_ONE_UNRELIABLE, g_msgid_ScreenFade, _, id )    write_short( ( 1<<12 ) )    write_short( 0 )    write_short( 0x0000 )    write_byte( 0 )    write_byte( 0 )    write_byte( 0 )    write_byte( 255 )    message_end( )       if( get_pcvar_num( cvar_victimrender ) )    {        set_rendering( id )    }} public event_DeathMsg( ){    new id = read_data( 2 )        if( !is_user_connected( id ) || !zp_get_user_zombie( id ) || zp_get_user_nemesis( id ) || zp_get_user_zombie_class( id ) != g_zclass_boomer )        return        emit_sound( id, CHAN_STREAM, explode_sounds[ random_num( 0, 2 ) ], 1.0, ATTN_NORM, 0, PITCH_HIGH )        for( new i = 1; i <= g_iMaxPlayers; i ++ )    {        if( !is_valid_ent( i ) || !is_user_alive( i ) || !is_user_connected( i ) || zp_get_user_zombie( i ) || get_entity_distance( id, i ) > get_pcvar_num( cvar_explodedist ) )            return         new Float:originF[3]         engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)        write_byte(TE_BEAMCYLINDER) // TE id        engfunc(EngFunc_WriteCoord, originF[0]) // x        engfunc(EngFunc_WriteCoord, originF[1]) // y        engfunc(EngFunc_WriteCoord, originF[2]) // z        engfunc(EngFunc_WriteCoord, originF[0]) // x axis        engfunc(EngFunc_WriteCoord, originF[1]) // y axis        engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis        write_short(g_exploSpr) // sprite        write_byte(0) // startframe        write_byte(0) // framerate        write_byte(4) // life        write_byte(60) // width        write_byte(0) // noise        write_byte(0) // red        write_byte(200) // green        write_byte(0) // blue        write_byte(200) // brightness        write_byte(0) // speed        message_end()                zp_infect_user(i, id, 0, 1)                if( !get_pcvar_num( cvar_boomer_reward ) )            return                zp_set_user_ammo_packs( id, zp_get_user_ammo_packs( id ) + ( get_pcvar_num( cvar_boomer_reward ) * i ) )        client_print( id, print_chat, "[ZP] You've earned %i for exploding on %i humans!", ( get_pcvar_num( cvar_boomer_reward ) * i ), i )    }} public sqrt( num ){    new div = num    new result = 1    while( div > result )    {        div = ( div + result ) / 2        result = num / div    }    return div}/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1063\\ f0\\ fs16 \n\\ par }*/  

Post Reply

Who is online

Users browsing this forum: No registered users and 12 guests