1. sayfa (Toplam 1 sayfa)

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 12:52 pm
gönderen tilki andrei
merhabalar.

Jail maplarındakı mevcut topun kaldırılıp, soccerjamdakı topun olmasını ıstıyorum plugını vb olan varmı paylasırsa sevınırım.

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 5:11 pm
gönderen orucoglukayra
eklenti-istekleri/herhangi-bir-nesneyi- ... 47106.html

En son atılan yoruma bakabilirsin.

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 5:35 pm
gönderen tilki andrei
@orucoglukayra hocam dıyelım bu lınk attıgınızın son yorumdakı sma ve ını yukledık daha sonra top plugını yukledıgımızde olacak mı kendılıgınden orda? Bırde baska maplardada olmasını ıstorum sadece darkta degıl

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 6:17 pm
gönderen orucoglukayra
tilki andrei yazdı: Cum Ara 03, 2021 5:35 pm @orucoglukayra hocam dıyelım bu lınk attıgınızın son yorumdakı sma ve ını yukledık daha sonra top plugını yukledıgımızde olacak mı kendılıgınden orda? Bırde baska maplardada olmasını ıstorum sadece darkta degıl
Bu plugin ordaki topu kaldırmanıza yarayacak.Top pluginini görmeden bir şey söyleyemem.Eklenti içinden koordinatları ayarlamanız gerekir.

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 6:42 pm
gönderen tilki andrei
hocam jb top plugini bu bı goz atarsanız sevınırım bız menu fılan acmadan jaıl mapında mac sahasının ortasında kendılıgınden olmasını ıstıyoruz theorderdekı gıbı

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 6:47 pm
gönderen orucoglukayra
tilki andrei yazdı: Cum Ara 03, 2021 6:42 pm hocam jb top plugini bu bı goz atarsanız sevınırım bız menu fılan acmadan jaıl mapında mac sahasının ortasında kendılıgınden olmasını ıstıyoruz theorderdekı gıbı
/ball yaz ardından istediğin konuma topu yerleştir.Sonra save yap otomatik map değiştiğinde oraya yerleşecek top.

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 6:49 pm
gönderen tilki andrei
hmm denıcem hocam oldugumda yazarım sıze

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 8:07 pm
gönderen vburakustunel
orucoglukayra yazdı: Cum Ara 03, 2021 6:47 pm
tilki andrei yazdı: Cum Ara 03, 2021 6:42 pm hocam jb top plugini bu bı goz atarsanız sevınırım bız menu fılan acmadan jaıl mapında mac sahasının ortasında kendılıgınden olmasını ıstıyoruz theorderdekı gıbı
/ball yaz ardından istediğin konuma topu yerleştir.Sonra save yap otomatik map değiştiğinde oraya yerleşecek top.
Ball eklentisini buraya atar mısın? Arkadaş nedense silmiş veya bende gözükmüyor bende bakmak istiyorum.

JB'de mac sahasındaki topu degıstırme

Gönderilme zamanı: Cum Ara 03, 2021 8:10 pm
gönderen orucoglukayra
vburakustunel yazdı: Cum Ara 03, 2021 8:07 pm
orucoglukayra yazdı: Cum Ara 03, 2021 6:47 pm
tilki andrei yazdı: Cum Ara 03, 2021 6:42 pm hocam jb top plugini bu bı goz atarsanız sevınırım bız menu fılan acmadan jaıl mapında mac sahasının ortasında kendılıgınden olmasını ıstıyoruz theorderdekı gıbı
/ball yaz ardından istediğin konuma topu yerleştir.Sonra save yap otomatik map değiştiğinde oraya yerleşecek top.
Ball eklentisini buraya atar mısın? Arkadaş nedense silmiş veya bende gözükmüyor bende bakmak istiyorum.

Kod: Tümünü seç

// Version 1.0 : Menu + Orginal Bounc / kicking
// Version 2.0 : Added Real soccerjamsounds / Got ball msg / Freezetimebug
// Version 3.0 : Fixed Ball spawns every round

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>

static const BALL_BOUNCE_GROUND[ ] = "kickball/bounce.wav";
static const g_szBallModel[ ]     = "models/kickball/ball.mdl";
static const g_szBallName[ ]      = "ball";

new g_iBall, g_szFile[ 128 ], g_szMapname[ 32 ], g_iButtonsMenu;
new bool:g_bNeedBall
new Float:g_vOrigin[ 3 ];
new beamspr

new ballcolor[3] = { 255,200,100 }
new ballbeam[3] = { 20,50,255 }
new kicked[] = "kickball/kicked.wav"
new gotball[] = "kickball/gotball.wav"

public plugin_init( ) {
    register_plugin( "JailMod-Ball", "3.0", "ButterZ`" );
    
    
    /* Register Forward */
    register_forward(FM_PlayerPreThink, "PlayerPreThink", 0)
    
    /* Current Weapon */
    register_event("CurWeapon", "CurWeapon", "be");
    
    RegisterHam( Ham_ObjectCaps, "player", "FwdHamObjectCaps", 1 );
    register_logevent( "EventRoundStart", 2, "1=Round_Start" );
    
    register_think( g_szBallName, "FwdThinkBall" );
    register_touch( g_szBallName, "player", "FwdTouchPlayer" );
    
    new const szEntity[ ][ ] = {
        "worldspawn", "func_wall", "func_door",  "func_door_rotating",
        "func_wall_toggle", "func_breakable", "func_pushable", "func_train",
        "func_illusionary", "func_button", "func_rot_button", "func_rotating"
    }
    
    for( new i; i < sizeof szEntity; i++ )
        register_touch( g_szBallName, szEntity[ i ], "FwdTouchWorld" );
    
    g_iButtonsMenu = menu_create( "BallMaker Menu", "HandleButtonsMenu" );
    
    menu_additem( g_iButtonsMenu, "Create Ball", "1" );
    menu_additem( g_iButtonsMenu, "Load Ball", "2" );
    menu_additem( g_iButtonsMenu, "Delete all Ball", "3" );
    menu_additem( g_iButtonsMenu, "Save", "4" );
    
    register_clcmd( "say /ball", "CmdButtonsMenu", ADMIN_KICK );
    register_clcmd( "say /reset", "UpdateBall" );
}    
public PlayerPreThink(id) {
    if(!is_user_alive(id))
        return PLUGIN_CONTINUE;
        
    if( is_valid_ent( g_iBall  ) ) {
        static iOwner; iOwner = pev( g_iBall , pev_iuser1 );
        if( iOwner != id && get_user_maxspeed(id) != 1.0 ) 
            set_user_maxspeed(id, 230.0)
    }
    return PLUGIN_HANDLED;
}
public CurWeapon(id) {
    if(!is_user_alive(id))
        return PLUGIN_CONTINUE;
    if( is_valid_ent(g_iBall ) ) {
        static iOwner; iOwner = pev( g_iBall , pev_iuser1 );
        if( iOwner == id )
            set_user_maxspeed(id, 230.0)
    }    
    return PLUGIN_HANDLED;
}
public UpdateBall( id ) {
    if( !id || get_user_flags( id ) & ADMIN_KICK ) {
        if( is_valid_ent( g_iBall ) ) {
            entity_set_vector(g_iBall , EV_VEC_velocity, Float:{ 0.0, 0.0, 0.0 } ); // To be sure ?
            entity_set_origin( g_iBall , g_vOrigin );
            
            entity_set_int( g_iBall , EV_INT_movetype, MOVETYPE_BOUNCE );
            entity_set_size( g_iBall , Float:{ -15.0, -15.0, 0.0 }, Float:{ 15.0, 15.0, 12.0 } );
            entity_set_int( g_iBall , EV_INT_iuser1, 0 );
        }
    }
    
    return PLUGIN_HANDLED;
}

public plugin_precache( ) {
    precache_model( g_szBallModel );
    precache_sound( BALL_BOUNCE_GROUND );
    
    beamspr = precache_model( "sprites/laserbeam.spr" );
    precache_sound(kicked)
    precache_sound(gotball)
    
    get_mapname( g_szMapname, 31 );
    strtolower( g_szMapname );
    
    // File
    new szDatadir[ 64 ];
    get_localinfo( "amxx_datadir", szDatadir, charsmax( szDatadir ) );
    
    formatex( szDatadir, charsmax( szDatadir ), "%s", szDatadir );
    
    if( !dir_exists( szDatadir ) )
        mkdir( szDatadir );
    
    formatex( g_szFile, charsmax( g_szFile ), "%s/ball.ini", szDatadir );
    
    if( !file_exists( g_szFile ) ) {
        write_file( g_szFile, "// Ball Spawn Editor", -1 );
        write_file( g_szFile, " ", -1 );
        
        return; // We dont need to load file
    }
    
    new szData[ 256 ], szMap[ 32 ], szOrigin[ 3 ][ 16 ];
    new iFile = fopen( g_szFile, "rt" );
    
    while( !feof( iFile ) ) {
        fgets( iFile, szData, charsmax( szData ) );
        
        if( !szData[ 0 ] || szData[ 0 ] == ';' || szData[ 0 ] == ' ' || ( szData[ 0 ] == '/' && szData[ 1 ] == '/' ) )
            continue;
        
        parse( szData, szMap, 31, szOrigin[ 0 ], 15, szOrigin[ 1 ], 15, szOrigin[ 2 ], 15 );
        
        if( equal( szMap, g_szMapname ) ) {
            new Float:vOrigin[ 3 ];
            
            vOrigin[ 0 ] = str_to_float( szOrigin[ 0 ] );
            vOrigin[ 1 ] = str_to_float( szOrigin[ 1 ] );
            vOrigin[ 2 ] = str_to_float( szOrigin[ 2 ] );
            
            CreateBall( 0, vOrigin );
            
            g_vOrigin = vOrigin;
            
            break;
        }
    }
    
    fclose( iFile );
}

public CmdButtonsMenu( id ) {
    if( get_user_flags( id ) & ADMIN_RCON )
        menu_display( id, g_iButtonsMenu, 0 );
    
    return PLUGIN_HANDLED;
}

public HandleButtonsMenu( id, iMenu, iItem ) {
    if( iItem == MENU_EXIT )
        return PLUGIN_HANDLED;
    
    new szKey[ 2 ], _Access, _Callback;
    menu_item_getinfo( iMenu, iItem, _Access, szKey, 1, "", 0, _Callback );
    
    new iKey = str_to_num( szKey );
    
    switch( iKey ) {
        case 1:    {
            if( pev_valid( g_iBall  ) )
                return PLUGIN_CONTINUE;
                
            CreateBall( id );
        }
        case 2: {
            if( is_valid_ent( g_iBall  ) ) {
                entity_set_vector( g_iBall , EV_VEC_velocity, Float:{ 0.0, 0.0, 0.0 } ); // To be sure ?
                entity_set_origin( g_iBall , g_vOrigin );
                
                entity_set_int( g_iBall , EV_INT_movetype, MOVETYPE_BOUNCE );
                entity_set_size( g_iBall , Float:{ -15.0, -15.0, 0.0 }, Float:{ 15.0, 15.0, 12.0 } );
                entity_set_int( g_iBall , EV_INT_iuser1, 0 );
                client_print( id, print_chat, "*** Loading Ball ***" );
            }
        }
        case 3: {
            new iEntity;
            
            while( ( iEntity = find_ent_by_class( iEntity, g_szBallName ) ) > 0 )
                remove_entity( iEntity );
            client_print( id, print_chat, "*** Ball Deleted ! ***" );
        }
        case 4: {
            new iBall, iEntity, Float:vOrigin[ 3 ];
            
            while( ( iEntity = find_ent_by_class( iEntity, g_szBallName ) ) > 0 )
                iBall = iEntity;
            
            if( iBall > 0 )
                entity_get_vector( iBall, EV_VEC_origin, vOrigin );
            else
                return PLUGIN_HANDLED;
            
            new bool:bFound, iPos, szData[ 32 ], iFile = fopen( g_szFile, "r+" );
            
            if( !iFile )
                return PLUGIN_HANDLED;
            
            while( !feof( iFile ) ) {
                fgets( iFile, szData, 31 );
                parse( szData, szData, 31 );
                
                iPos++;
                
                if( equal( szData, g_szMapname ) ) {
                    bFound = true;
                    
                    new szString[ 256 ];
                    formatex( szString, 255, "%s %f %f %f", g_szMapname, vOrigin[ 0 ], vOrigin[ 1 ], vOrigin[ 2 ] );
                    
                    write_file( g_szFile, szString, iPos - 1 );
                    
                    break;
                }
            }
            
            if( !bFound )
                fprintf( iFile, "%s %f %f %f^n", g_szMapname, vOrigin[ 0 ], vOrigin[ 1 ], vOrigin[ 2 ] );
            
            fclose( iFile );
            
            client_print( id, print_chat, "*** Ball Saved ! ***" );
        }
        default: return PLUGIN_HANDLED;
    }
    
    menu_display( id, g_iButtonsMenu, 0 );
    
    return PLUGIN_HANDLED;
}

public EventRoundStart(id) {
    if( !g_bNeedBall )
        return;
    
    if( !is_valid_ent( g_iBall  ) )
        CreateBall( 0, g_vOrigin );
    else {
        entity_set_vector( g_iBall , EV_VEC_velocity, Float:{ 0.0, 0.0, 0.0 } ); // To be sure ?
        entity_set_origin( g_iBall , g_vOrigin );
        
        entity_set_int( g_iBall , EV_INT_solid, SOLID_BBOX );
        entity_set_int( g_iBall , EV_INT_movetype, MOVETYPE_BOUNCE );
        entity_set_size( g_iBall , Float:{ -15.0, -15.0, 0.0 }, Float:{ 15.0, 15.0, 12.0 } );
        entity_set_int( g_iBall , EV_INT_iuser1, 0 );
    }
}

public FwdHamObjectCaps( id ) {
    if( pev_valid( g_iBall  ) && is_user_alive( id ) ) {
        static iOwner; iOwner = pev( g_iBall , pev_iuser1 );
        
        if( iOwner == id )
            KickBall( id );
    }
}

// BALL BRAIN :)
////////////////////////////////////////////////////////////
public FwdThinkBall( iEntity ) {
    if( !is_valid_ent( g_iBall   ) )
        return PLUGIN_HANDLED;
    
    entity_set_float( iEntity, EV_FL_nextthink, halflife_time( ) + 0.05 );
    
    static Float:vOrigin[ 3 ], Float:vBallVelocity[ 3 ];
    entity_get_vector( iEntity, EV_VEC_origin, vOrigin );
    entity_get_vector( iEntity, EV_VEC_velocity, vBallVelocity );
    
    static iOwner; iOwner = pev( iEntity, pev_iuser1 );
    static iSolid; iSolid = pev( iEntity, pev_solid );
    
    
    if( iOwner > 0 ) {
        static Float:vOwnerOrigin[ 3 ];
        entity_get_vector( iOwner, EV_VEC_origin, vOwnerOrigin );
        
        static const Float:vVelocity[ 3 ] = { 1.0, 1.0, 0.0 };
        
        if( !is_user_alive( iOwner ) ) {
            entity_set_int( iEntity, EV_INT_iuser1, 0 );
            
            vOwnerOrigin[ 2 ] += 5.0;
            
            entity_set_origin( iEntity, vOwnerOrigin );
            entity_set_vector( iEntity, EV_VEC_velocity, vVelocity );
            
            return PLUGIN_CONTINUE;
        }
        
        if( iSolid != SOLID_NOT )
            set_pev( iEntity, pev_solid, SOLID_NOT );
        
        static Float:vAngles[ 3 ], Float:vReturn[ 3 ];
        entity_get_vector( iOwner, EV_VEC_v_angle, vAngles );
        
        vReturn[ 0 ] = ( floatcos( vAngles[ 1 ], degrees ) * 55.0 ) + vOwnerOrigin[ 0 ];
        vReturn[ 1 ] = ( floatsin( vAngles[ 1 ], degrees ) * 55.0 ) + vOwnerOrigin[ 1 ];
        vReturn[ 2 ] = vOwnerOrigin[ 2 ];
        vReturn[ 2 ] -= ( entity_get_int( iOwner, EV_INT_flags ) & FL_DUCKING ) ? 10 : 30;
        
        entity_set_vector( iEntity, EV_VEC_velocity, vVelocity );
        entity_set_origin( iEntity, vReturn );
    } else {
        if( iSolid != SOLID_BBOX )
            set_pev( iEntity, pev_solid, SOLID_BBOX );
        
        static Float:flLastVerticalOrigin;
        
        if( vBallVelocity[ 2 ] == 0.0 ) {
            static iCounts;
            
            if( flLastVerticalOrigin > vOrigin[ 2 ] ) {
                iCounts++;
                
                if( iCounts > 10 ) {
                    iCounts = 0;
                    
                    UpdateBall( 0 );
                }
            } else {
                iCounts = 0;
                
                if( PointContents( vOrigin ) != CONTENTS_EMPTY )
                    UpdateBall( 0 );
            }
            
            flLastVerticalOrigin = vOrigin[ 2 ];
        }
    }
    
    return PLUGIN_CONTINUE;
}

KickBall( id ) {
    set_user_maxspeed(id, 230.0)
    static Float:vOrigin[ 3 ];
    entity_get_vector( g_iBall , EV_VEC_origin, vOrigin );
    
    vOrigin[2] += 35;
    
    if( PointContents( vOrigin ) != CONTENTS_EMPTY )
        return PLUGIN_HANDLED;

    new Float:vVelocity[ 3 ];
    velocity_by_aim( id, 650, vVelocity );
    
    beam(10)
    emit_sound(g_iBall, CHAN_ITEM, kicked, 1.0, ATTN_NORM, 0, PITCH_NORM)
    
    set_pev( g_iBall , pev_solid, SOLID_BBOX );
    entity_set_size( g_iBall , Float:{ -15.0, -15.0, 0.0 }, Float:{ 15.0, 15.0, 12.0 } );
    entity_set_int( g_iBall , EV_INT_iuser1, 0 );
    entity_set_origin(g_iBall,vOrigin)
    entity_set_vector( g_iBall , EV_VEC_velocity, vVelocity );
        
    return PLUGIN_CONTINUE;
}

// BALL TOUCHES
////////////////////////////////////////////////////////////
public FwdTouchPlayer( Ball, id ) {
    if( is_user_bot( id ) )
        return PLUGIN_CONTINUE;
    
    static iOwner; iOwner = pev( Ball, pev_iuser1 );
    
    if( iOwner == 0 ) {
        entity_set_int( Ball, EV_INT_iuser1, id );
        beam(10)
        emit_sound(Ball, CHAN_ITEM, gotball, 1.0, ATTN_NORM, 0, PITCH_NORM);
        set_hudmessage(255, 20, 20, -1.0, 0.4, 1, 1.0, 1.5, 0.1, 0.1, 2)
        show_hudmessage(id,"*** YOU HAVE THE BALL! ***")
        set_user_maxspeed(id, 230.0)
    }
    return PLUGIN_CONTINUE;
}

public FwdTouchWorld( Ball, World ) {
    static Float:vVelocity[ 3 ];
    entity_get_vector( Ball, EV_VEC_velocity, vVelocity );
    
    if( floatround( vector_length( vVelocity ) ) > 10 ) {
        vVelocity[ 0 ] *= 0.85;
        vVelocity[ 1 ] *= 0.85;
        vVelocity[ 2 ] *= 0.85;
        
        entity_set_vector( Ball, EV_VEC_velocity, vVelocity );
        
        emit_sound( Ball, CHAN_ITEM, BALL_BOUNCE_GROUND, 1.0, ATTN_NORM, 0, PITCH_NORM );
    }

    return PLUGIN_CONTINUE;
}


// ENTITIES CREATING
////////////////////////////////////////////////////////////
CreateBall( id, Float:vOrigin[ 3 ] = { 0.0, 0.0, 0.0 } ) {
    if( !id && vOrigin[ 0 ] == 0.0 && vOrigin[ 1 ] == 0.0 && vOrigin[ 2 ] == 0.0 )
        return 0;
	
    g_bNeedBall = true;
    
    g_iBall = create_entity( "info_target" );
    
    if( is_valid_ent( g_iBall ) ) {
        entity_set_string( g_iBall , EV_SZ_classname, g_szBallName );
        entity_set_int( g_iBall , EV_INT_solid, SOLID_BBOX );
        entity_set_int( g_iBall , EV_INT_movetype, MOVETYPE_BOUNCE );
        entity_set_model( g_iBall , g_szBallModel );
        entity_set_size( g_iBall , Float:{ -15.0, -15.0, 0.0 }, Float:{ 15.0, 15.0, 12.0 } );
        
        entity_set_float( g_iBall , EV_FL_framerate, 0.0 );
        entity_set_int( g_iBall , EV_INT_sequence, 0 );
        
        entity_set_float(g_iBall , EV_FL_nextthink, get_gametime( ) + 0.05 );
    
        glow(g_iBall,ballcolor[0],ballcolor[1],ballcolor[2],10)
        
        client_print( id, print_chat, "*** Ball Spawned! ***" );
        
        if( id > 0 ) {
            new iOrigin[ 3 ];
            get_user_origin( id, iOrigin, 3 );
            IVecFVec( iOrigin, vOrigin );
            
            vOrigin[ 2 ] += 5.0;
            
            entity_set_origin( g_iBall , vOrigin );
        } else
            entity_set_origin( g_iBall , vOrigin );
        
        g_vOrigin = vOrigin;
        
        return g_iBall ;
    }
    
    return -1;
}

beam(life) {
    message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
    write_byte(22); // TE_BEAMFOLLOW
    write_short(g_iBall); // ball
    write_short(beamspr); // laserbeam
    write_byte(life); // life
    write_byte(5); // width
    write_byte(ballbeam[0]); // R
    write_byte(ballbeam[1]); // G
    write_byte(ballbeam[2]); // B
    write_byte(175); // brightness
    message_end();    
}
glow(id, r, g, b, on) {
    if(on == 1) {
        set_rendering(id, kRenderFxGlowShell, r, g, b, kRenderNormal, 255)
        entity_set_float(id, EV_FL_renderamt, 1.0)
    }
    else if(!on) {
        set_rendering(id, kRenderFxNone, r, g, b,  kRenderNormal, 255)
        entity_set_float(id, EV_FL_renderamt, 1.0)
    }
    else if(on == 10) {
        set_rendering(id, kRenderFxGlowShell, r, g, b, kRenderNormal, 255)
        entity_set_float(id, EV_FL_renderamt, 1.0)
    }
}  
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
*/