Member
Join Date: Jan 2017
Location: Malaysia
03-28-2017
, 21:34
Re: Line too long
#2
Quote:
Originally Posted by
OciXCrom
Could you please attach the file here rather than copying its contents?
I am sorry, sir.
Which file you wish me to attach here?
Include file or the original plugin?
[ EDIT ]
I see, so you want the original plugin, aight?
Sure, here.
[ EDIT 1 ]
But, the resources is still missing. My laptop has been a mess lately. You can download the resources from Dias' thread though, all his threads are still up and available for public use.
[ EDIT 2 ]
Anyone who still want the full code without error and warning, here.
PHP Code:
#include <amxmodx> #include <fakemeta> #include <engine> #include <xs> #include <hamsandwich> #define PLUGIN "Testing Plugin" #define VERSION "0.1" #define AUTHOR "MuhdZaim" #define MAX_COUNT 4 new bool : g_iHaunted [ 33 ], bool : g_illusioning [ 33 ], g_FakePlr [ 33 ] new g_iEntGhost [ 33 ][ MAX_COUNT ], cvar_duration , g_Model [ 128 ] new GHOST_CLASSNAME [ ] = "Ghost" new GHOST_FAKEPLR [ ] = "Fake_Ghost" new g_ModelName [ ] = "tsukuyomi" public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) cvar_duration = register_cvar ( "ghost_duration" , "15.0" ) register_clcmd ( "say /change" , "ChangeModel" ) register_event ( "HLTV" , "NewRound" , "1=0" , "2=0" ) RegisterHam ( Ham_Think , GHOST_CLASSNAME , "Fw_Think" , 1 ) register_forward ( FM_AddToFullPack , "AddToFullPack" , 1 ) } public NewRound ( id ) { if( g_iHaunted [ id ] ) g_iHaunted [ id ] = false } public ChangeModel ( id ) { if( ! g_iHaunted [ id ] ) { g_iHaunted [ id ] = true ; MakeGhost ( id ) } } public MakeGhost ( id ) { if( ! is_user_alive ( id ) || ! g_iHaunted [ id ] ) return; g_illusioning [ id ] = true static Float : iOrigin [ 3 ], Float : uOrigin [ 3 ], ent for( new i = 0 ; i < MAX_COUNT ; i ++ ) { if( ! pev_valid ( ent ) ) { g_iEntGhost [ id ][ i ] = create_entity ( "info_target" ) } ent = g_iEntGhost [ id ][ i ] if( i == 0 ) { get_position ( ent , 100.0 , 0.0 , 0.0 , iOrigin ) } else if( i == 1 ) { get_position ( ent , 50.0 , 100.0 , 0.0 , iOrigin ) } else if( i == 2 ) { get_position ( ent , - 100.0 , 0.0 , 0.0 , iOrigin ) } else if( i == 3 ) { get_position ( ent , - 50.0 , - 100.0 , 0.0 , iOrigin ) } entity_set_origin ( ent , iOrigin ) entity_get_vector ( id , EV_VEC_origin , uOrigin ) npc_turntotarget ( ent , iOrigin , uOrigin ) static ModelName1 [ 128 ] formatex ( ModelName1 , sizeof ModelName1 , "models/player/%s/%s.mdl" , g_ModelName , g_ModelName ) formatex ( g_Model , sizeof g_Model , "models/player/%s/%s.mdl" , g_ModelName , g_ModelName ) entity_set_string ( ent , EV_SZ_classname , GHOST_CLASSNAME ) entity_set_model ( ent , ModelName1 ) entity_set_int ( ent , EV_INT_solid , SOLID_NOT ) entity_set_int ( ent , EV_INT_movetype , MOVETYPE_PUSHSTEP ) new Float : mins [ 3 ] = { - 16.0 , - 16.0 , - 36.0 } new Float : maxs [ 3 ] = { 16.0 , 16.0 , 36.0 } entity_set_size ( ent , mins , maxs ) set_pev ( ent , pev_renderfx , kRenderFxGlowShell ) set_pev ( ent , pev_rendermode , kRenderTransAlpha ) set_pev ( ent , pev_renderamt , 0.0 ) set_pev ( ent , pev_owner , id ) set_pev ( id , pev_iuser1 , 4 ) set_entity_anim ( ent , 4 ) drop_to_floor ( ent ) set_pev ( ent , pev_nextthink , halflife_time ( ) + 0.01 ) } set_task ( get_pcvar_float ( cvar_duration ), "RemoveIllusion" , id ) } public ThinkGhost ( ent ) { if( ! pev_valid ( ent ) ) return; static id id = pev ( ent , pev_owner ) if( ! is_user_alive ( id ) || ! g_illusioning [ id ] ) return; hook_ent ( ent , id , 150.0 ) set_pev ( ent , pev_nextthink , halflife_time ( ) + 0.01 ) } public AddToFullPack ( es , e , ent , host , hostflag , player , pset ) { if( ! is_user_alive ( host ) || ! pev_valid ( ent ) && ! g_illusioning [ host ] ) return FMRES_IGNORED static classname [ 32 ] pev ( ent , pev_classname , GHOST_CLASSNAME , sizeof ( GHOST_CLASSNAME ) ) if( equal ( classname , GHOST_CLASSNAME ) && pev ( ent , pev_owner ) == host ) { set_es ( es , ES_RenderAmt , 255.0 ) static Float : Angle [ 3 ], Float : Origin [ 3 ], Float : Origin2 [ 3 ] pev ( ent , pev_angles , Angle ) pev ( host , pev_origin , Origin ) pev ( ent , pev_origin , Origin2 ) new Float : X = Origin [ 0 ] - Origin2 [ 0 ] new Float : Z = Origin [ 2 ] - Origin2 [ 2 ] new Float : radians = floatatan ( Z / X , radian ) Angle [ 1 ] = radians * ( 180 / 3.14 ) if( Origin [ 0 ] < Origin2 [ 0 ] ) { Angle [ 1 ] = - 180.0 } set_es ( es , ES_Angles , Angle ) } else if( equal ( classname , GHOST_FAKEPLR ) ) { static ent_owner ent_owner = pev ( ent , pev_owner ) if( is_user_alive ( ent_owner ) ) { set_es ( es , ES_RenderMode , kRenderNormal ) set_es ( es , ES_RenderAmt , 255.0 ) engfunc ( EngFunc_SetModel , ent , g_Model ) } } if( is_user_alive ( ent ) ) { set_es ( es , ES_RenderMode , kRenderTransAlpha ) set_es ( es , ES_RenderAmt , 0.0 ) new iEnt = find_ent_by_owner ( - 1 , GHOST_FAKEPLR , ent ) if( ! iEnt || ! pev_valid ( ent ) ) { iEnt = create_fake_player ( ent ) } g_FakePlr [ ent ] = iEnt } return FMRES_HANDLED } public hook_ent ( ent , victim , Float : speed ) { static Float : fl_Velocity [ 3 ] static Float : VicOrigin [ 3 ], Float : EntOrigin [ 3 ] pev ( ent , pev_origin , EntOrigin ) pev ( victim , pev_origin , VicOrigin ) static Float : distance_f distance_f = get_distance_f ( EntOrigin , VicOrigin ) if ( distance_f > 60.0 ) { new Float : fl_Time = distance_f / speed fl_Velocity [ 0 ] = ( VicOrigin [ 0 ] - EntOrigin [ 0 ]) / fl_Time fl_Velocity [ 1 ] = ( VicOrigin [ 1 ] - EntOrigin [ 1 ]) / fl_Time fl_Velocity [ 2 ] = ( VicOrigin [ 2 ] - EntOrigin [ 2 ]) / fl_Time } else { fl_Velocity [ 0 ] = 0.0 fl_Velocity [ 1 ] = 0.0 fl_Velocity [ 2 ] = 0.0 } entity_set_vector ( ent , EV_VEC_velocity , fl_Velocity ) } stock get_position ( ent , Float : forw , Float : right , Float : up , Float : vStart []) { new Float : vOrigin [ 3 ], Float : vAngle [ 3 ], Float : vForward [ 3 ], Float : vRight [ 3 ], Float : vUp [ 3 ] pev ( ent , pev_origin , vOrigin ) pev ( ent , pev_view_ofs , vUp ) //for player xs_vec_add ( vOrigin , vUp , vOrigin ) pev ( ent , pev_v_angle , vAngle ) // if normal entity ,use pev_angles vAngle [ 0 ] = 0.0 angle_vector ( vAngle , ANGLEVECTOR_FORWARD , vForward ) //or use EngFunc_AngleVectors angle_vector ( vAngle , ANGLEVECTOR_RIGHT , vRight ) angle_vector ( vAngle , ANGLEVECTOR_UP , vUp ) vStart [ 0 ] = vOrigin [ 0 ] + vForward [ 0 ] * forw + vRight [ 0 ] * right + vUp [ 0 ] * up vStart [ 1 ] = vOrigin [ 1 ] + vForward [ 1 ] * forw + vRight [ 1 ] * right + vUp [ 1 ] * up vStart [ 2 ] = vOrigin [ 2 ] + vForward [ 2 ] * forw + vRight [ 2 ] * right + vUp [ 2 ] * up } stock set_entity_anim ( ent , anim ) { entity_set_float ( ent , EV_FL_animtime , get_gametime ()) entity_set_float ( ent , EV_FL_framerate , 1.0 ) entity_set_float ( ent , EV_FL_frame , 0.0 ) entity_set_int ( ent , EV_INT_sequence , anim ) } public npc_turntotarget ( ent , Float : Ent_Origin [ 3 ], Float : Vic_Origin [ 3 ]) { if(! pev_valid ( ent )) return new Float : newAngle [ 3 ] entity_get_vector ( ent , EV_VEC_angles , newAngle ) new Float : x = Vic_Origin [ 0 ] - Ent_Origin [ 0 ] new Float : z = Vic_Origin [ 1 ] - Ent_Origin [ 1 ] new Float : radians = floatatan ( z / x , radian ) newAngle [ 1 ] = radians * ( 180 / 3.14 ) if ( Vic_Origin [ 0 ] < Ent_Origin [ 0 ]) newAngle [ 1 ] -= 180.0 entity_set_vector ( ent , EV_VEC_v_angle , newAngle ) entity_set_vector ( ent , EV_VEC_angles , newAngle ) } public create_fake_player ( id ) { new iEnt = create_entity ( "info_target" ) set_pev ( iEnt , pev_classname , GHOST_FAKEPLR ) set_pev ( iEnt , pev_movetype , MOVETYPE_FOLLOW ) set_pev ( iEnt , pev_solid , SOLID_NOT ) set_pev ( iEnt , pev_aiment , id ) set_pev ( iEnt , pev_owner , id ) set_pev ( iEnt , pev_renderfx , kRenderFxGlowShell ) set_pev ( iEnt , pev_rendermode , kRenderTransAlpha ) set_pev ( iEnt , pev_renderamt , 255.0 ) return iEnt }
Attached Thumbnails
Attached Files
Last edited by Kotoamatsukami; 03-28-2017 at 21:52 .
Reason: Added succeed image and the script without any error and warning