Offline  
				 				
					 
				 				
					 
				 				
				Csatlakozott: 2011.06.07. 15:29Hozzászólások: 1728Megköszönt másnak:  1 alkalommal Megköszönték neki:  63 alkalommal 				 
			 
			
				
				
					
						WebSiteBot-os megoldás:
Kód: 
/* Plugin generated by AMXX-Studio */ 
/*                                 */ 
/*           WebSiteBot            */ 
/*            By Parker;           */ 
/*                                 */ 
/*      CvarS;                     */ 
/* bw_botname "www.YourWebSite.com */ 
/* bw_kickbot "4"                  */                    
/* bw_enable   "1"                  */ 
/*---------------------------------*/ 
#include <amxmodx> 
#include <amxmisc> 
#include <fakemeta> 
#include <hamsandwich> 
#include <xs> 
 
#define PLUGIN "WebSiteBot" 
#define VERSION "1.0" 
#define AUTHOR "Parker;" 
 
#define OFFSET_LINUX 5 
 
 
new  bw_botname
new  bw_botnumber
new  cvar_enable
new  g_oldbotname[ 32 ] 
new  g_oldbotid
new  g_teaminfo
 
enum  ( +=  1000 ) 
{ 
        TASK_ID_BOTS
} ;
 
enum  CS_Internal_Models 
{ 
        CS_DONTCHANGE  =  0 
} 
 
enum  CsTeams 
{ 
        CS_TEAM_UNASSIGNED  =  0 ,
        CS_TEAM_T  =  1 ,
        CS_TEAM_CT  =  2 ,
        CS_TEAM_SPECTATOR  =  3 
} ;
 
public  plugin_init ( )  { 
        register_plugin ( PLUGIN, VERSION, AUTHOR) 
        
        bw_botname =  register_cvar ( "bw_botname" , "www.YourWebSite.com.ar" ) 
        bw_botnumber =  register_cvar ( "bw_kickbot" , "4" ) 
        cvar_enable =  register_cvar ( "bw_enable" , "1" ) 
        set_task ( 5.0 , "Createbot" , TASK_ID_BOTS, _, _, "b" ) 
        g_teaminfo =  get_user_msgid ( "TeamInfo" ) 
        
} 
public  Createbot( ) 
{ 
        if (  get_pcvar_num ( cvar_enable)  !=  1  ) 
                return ;
                
        new  botname[ 32 ] 
        get_pcvar_string ( bw_botname, botname, 31 ) 
        
        new  id =  find_player ( "ia" , botname) 
        
        new  playersn =  get_playersnum ( ) 
 
        if (  ! equali ( botname, g_oldbotname)  ) 
        { 
                if (  is_user_connected ( g_oldbotid)  &&  is_user_bot ( g_oldbotid)  ) 
                { 
                        set_user_info ( g_oldbotid, "name" , botname) 
                        return ;
                } 
        } 
        
        
        if (  playersn <  get_pcvar_num ( bw_botnumber)  &&  ! id ) 
        { 
                g_oldbotid =  id =  engfunc ( EngFunc_CreateFakeClient , botname) 
                
                g_oldbotname =  botname
                
                if (  pev_valid (  id )  ) 
                { 
                        engfunc (  EngFunc_FreeEntPrivateData , id) 
                        dllfunc (  MetaFunc_CallGameEntity , "player" , id) 
                        set_user_info (  id, "rate" , "3500"  ) 
                        set_user_info (  id, "cl_updaterate" , "25"  ) 
                        set_user_info (  id, "cl_lw" , "1"  ) 
                        set_user_info (  id, "cl_lc" , "1"  ) 
                        set_user_info (  id, "cl_dlmax" , "128"  ) 
                        set_user_info (  id, "cl_righthand" , "1"  ) 
                        set_user_info (  id, "_vgui_menus" , "0"  ) 
                        set_user_info (  id, "_ah" , "0"  ) 
                        set_user_info (  id, "dm" , "0"  ) 
                        set_user_info (  id, "tracker" , "0"  ) 
                        set_user_info (  id, "friends" , "0"  ) 
                        set_user_info (  id, "*bot" , "1"  ) 
                        set_pev (  id, pev_flags , pev (  id, pev_flags  )  |  FL_FAKECLIENT  ) 
                        set_pev (  id, pev_colormap , id ) 
                        
                        new  msg[ 128 ] 
                        dllfunc (  DLLFunc_ClientConnect , id, botname, "127.0.0.1" , msg ) 
                        dllfunc (  DLLFunc_ClientPutInServer , id ) 
                        engfunc (  EngFunc_RunPlayerMove , id, Float : { 0.0 ,0.0 ,0.0 } , 0.0 , 0.0 , 0.0 , 0 , 0 , 76  ) 
                        
                        fm_set_user_team( id, CS_TEAM_CT ) ;
                        dllfunc ( DLLFunc_Spawn , id) 
                } 
        } 
        
        else  if (  playersn >  get_pcvar_num ( bw_botnumber)  &&  id ) 
        { 
                set_pev ( id, pev_effects , pev ( id, pev_effects )  &  ~EF_NODRAW ) 
                server_cmd (  "kick #%d" , get_user_userid ( id)  ) 
        } 
        
        else  if (  id ) 
        { 
                if (  ! is_user_alive ( id)  ) 
                        dllfunc ( DLLFunc_Spawn , id) 
                
                set_pev ( id, pev_effects , pev ( id, pev_effects )  &  EF_NODRAW ) 
                set_pev ( id, pev_solid , SOLID_NOT ) 
                set_pev ( id, pev_takedamage , DAMAGE_NO ) 
                
                fix_score_team( id,"SPECTATOR" ) 
                
        } 
} 
 
stock  bool : bw_botis_valid( id) 
{        
        return  (  is_user_connected ( g_oldbotid)  &&  is_user_bot ( g_oldbotid)  &&  id ==  g_oldbotid ) 
} 
stock  fm_set_user_team( id, { CsTeams,_} : team, { CS_Internal_Models,_} : model =  CS_DONTCHANGE ) 
{ 
        if (  ! is_user_connected ( id)  ) 
                return  0 ;
        
        set_pdata_int ( id, 114 , _: team, OFFSET_LINUX) ;
 
        if ( model) 
        { 
                set_pdata_int (  id, 126 , _: model, OFFSET_LINUX) ;
        } 
 
        dllfunc (  DLLFunc_ClientUserInfoChanged , id, engfunc (  EngFunc_GetInfoKeyBuffer , id )  ) ;
 
        static  const  teams[ ]  =  {  "UNASSIGNED" , "TERRORIST" , "CT" , "SPECTATOR"  } ;
 
        emessage_begin ( MSG_BROADCAST , g_teaminfo) ;
        ewrite_byte ( id) ;
        ewrite_string ( teams[ _: team] ) ;
        emessage_end ( ) ;
    
        return  1 ;
 
} 
 
stock  fix_score_team( id, const  TEAM[ ] ) 
{ 
        emessage_begin ( MSG_BROADCAST , g_teaminfo) ;
        ewrite_byte ( id) ;
        ewrite_string ( TEAM) ;
        emessage_end ( ) ;
} 
stock  bw_make_cvarexec( const  config[ ] ) 
{ 
        new  f =  fopen ( config, "wt" ) ;
        new  stringscvars[ 192 ] 
        
        fprintf ( f, "// Bot WebSite^n" ) 
        fprintf ( f, "// -_-_-_-_-_-_-^n" ) 
        get_pcvar_string ( bw_botname, stringscvars, 191 ) 
        fprintf ( f, "bw_botname ^" % s^ " // Bot name, Default( ^" http: //www.YourWebSite.com.ar^" )^n", stringscvars) 
        fprintf ( f, "bw_kickbot %i // Number of Player to Kick the Bot^n" , get_pcvar_num ( bw_botnumber) ) 
        fprintf ( f, "^n" ) 
        
        fclose ( f) ;
        
        server_cmd ( "exec %s" , config) 
        server_exec ( ) 
} 
 
Kód: 
/* Plugin generated by AMXX-Studio */ 
/*                                 */ 
/*           WebSiteBot            */ 
/*            By Parker;           */ 
/*                                 */ 
/*      CvarS;                     */ 
/* bw_botname "www.YourWebSite.com */ 
/* bw_kickbot "4"                  */                    
/* bw_enable   "1"                  */ 
/*---------------------------------*/ 
#include <amxmodx> 
#include <amxmisc> 
#include <fakemeta> 
#include <hamsandwich> 
#include <xs> 
 
#define PLUGIN "WebSiteBot" 
#define VERSION "1.0" 
#define AUTHOR "Parker;" 
 
#define OFFSET_LINUX 5 
 
 
new  bw_botname
new  bw_botnumber
new  cvar_enable
new  g_oldbotname[ 32 ] 
new  g_oldbotid
new  g_teaminfo
 
enum  ( +=  1000 ) 
{ 
        TASK_ID_BOTS
} ;
 
enum  CS_Internal_Models 
{ 
        CS_DONTCHANGE  =  0 
} 
 
enum  CsTeams 
{ 
        CS_TEAM_UNASSIGNED  =  0 ,
        CS_TEAM_T  =  1 ,
        CS_TEAM_CT  =  2 ,
        CS_TEAM_SPECTATOR  =  3 
} ;
 
public  plugin_init ( )  { 
        register_plugin ( PLUGIN, VERSION, AUTHOR) 
        
        bw_botname =  register_cvar ( "bw_botname" , "www.YourWebSite.com.ar" ) 
        bw_botnumber =  register_cvar ( "bw_kickbot" , "4" ) 
        cvar_enable =  register_cvar ( "bw_enable" , "1" ) 
        set_task ( 5.0 , "Createbot" , TASK_ID_BOTS, _, _, "b" ) 
        g_teaminfo =  get_user_msgid ( "TeamInfo" ) 
        
} 
public  Createbot( ) 
{ 
        if (  get_pcvar_num ( cvar_enable)  !=  1  ) 
                return ;
                
        new  botname[ 32 ] 
        get_pcvar_string ( bw_botname, botname, 31 ) 
        
        new  id =  find_player ( "ia" , botname) 
        
        new  playersn =  get_playersnum ( ) 
 
        if (  ! equali ( botname, g_oldbotname)  ) 
        { 
                if (  is_user_connected ( g_oldbotid)  &&  is_user_bot ( g_oldbotid)  ) 
                { 
                        set_user_info ( g_oldbotid, "name" , botname) 
                        return ;
                } 
        } 
        
        
        if (  playersn <  get_pcvar_num ( bw_botnumber)  &&  ! id ) 
        { 
                g_oldbotid =  id =  engfunc ( EngFunc_CreateFakeClient , botname) 
                
                g_oldbotname =  botname
                
                if (  pev_valid (  id )  ) 
                { 
                        engfunc (  EngFunc_FreeEntPrivateData , id) 
                        dllfunc (  MetaFunc_CallGameEntity , "player" , id) 
                        set_user_info (  id, "rate" , "3500"  ) 
                        set_user_info (  id, "cl_updaterate" , "25"  ) 
                        set_user_info (  id, "cl_lw" , "1"  ) 
                        set_user_info (  id, "cl_lc" , "1"  ) 
                        set_user_info (  id, "cl_dlmax" , "128"  ) 
                        set_user_info (  id, "cl_righthand" , "1"  ) 
                        set_user_info (  id, "_vgui_menus" , "0"  ) 
                        set_user_info (  id, "_ah" , "0"  ) 
                        set_user_info (  id, "dm" , "0"  ) 
                        set_user_info (  id, "tracker" , "0"  ) 
                        set_user_info (  id, "friends" , "0"  ) 
                        set_user_info (  id, "*bot" , "1"  ) 
                        set_pev (  id, pev_flags , pev (  id, pev_flags  )  |  FL_FAKECLIENT  ) 
                        set_pev (  id, pev_colormap , id ) 
                        
                        new  msg[ 128 ] 
                        dllfunc (  DLLFunc_ClientConnect , id, botname, "127.0.0.1" , msg ) 
                        dllfunc (  DLLFunc_ClientPutInServer , id ) 
                        engfunc (  EngFunc_RunPlayerMove , id, Float : { 0.0 ,0.0 ,0.0 } , 0.0 , 0.0 , 0.0 , 0 , 0 , 76  ) 
                        
                        fm_set_user_team( id, CS_TEAM_T ) ;
                        dllfunc ( DLLFunc_Spawn , id) 
                } 
        } 
        
        else  if (  playersn >  get_pcvar_num ( bw_botnumber)  &&  id ) 
        { 
                set_pev ( id, pev_effects , pev ( id, pev_effects )  &  ~EF_NODRAW ) 
                server_cmd (  "kick #%d" , get_user_userid ( id)  ) 
        } 
        
        else  if (  id ) 
        { 
                if (  ! is_user_alive ( id)  ) 
                        dllfunc ( DLLFunc_Spawn , id) 
                
                set_pev ( id, pev_effects , pev ( id, pev_effects )  &  EF_NODRAW ) 
                set_pev ( id, pev_solid , SOLID_NOT ) 
                set_pev ( id, pev_takedamage , DAMAGE_NO ) 
                
                fix_score_team( id,"SPECTATOR" ) 
                
        } 
} 
 
stock  bool : bw_botis_valid( id) 
{        
        return  (  is_user_connected ( g_oldbotid)  &&  is_user_bot ( g_oldbotid)  &&  id ==  g_oldbotid ) 
} 
stock  fm_set_user_team( id, { CsTeams,_} : team, { CS_Internal_Models,_} : model =  CS_DONTCHANGE ) 
{ 
        if (  ! is_user_connected ( id)  ) 
                return  0 ;
        
        set_pdata_int ( id, 114 , _: team, OFFSET_LINUX) ;
 
        if ( model) 
        { 
                set_pdata_int (  id, 126 , _: model, OFFSET_LINUX) ;
        } 
 
        dllfunc (  DLLFunc_ClientUserInfoChanged , id, engfunc (  EngFunc_GetInfoKeyBuffer , id )  ) ;
 
        static  const  teams[ ]  =  {  "UNASSIGNED" , "TERRORIST" , "CT" , "SPECTATOR"  } ;
 
        emessage_begin ( MSG_BROADCAST , g_teaminfo) ;
        ewrite_byte ( id) ;
        ewrite_string ( teams[ _: team] ) ;
        emessage_end ( ) ;
    
        return  1 ;
 
} 
 
stock  fix_score_team( id, const  TEAM[ ] ) 
{ 
        emessage_begin ( MSG_BROADCAST , g_teaminfo) ;
        ewrite_byte ( id) ;
        ewrite_string ( TEAM) ;
        emessage_end ( ) ;
} 
stock  bw_make_cvarexec( const  config[ ] ) 
{ 
        new  f =  fopen ( config, "wt" ) ;
        new  stringscvars[ 192 ] 
        
        fprintf ( f, "// Bot WebSite^n" ) 
        fprintf ( f, "// -_-_-_-_-_-_-^n" ) 
        get_pcvar_string ( bw_botname, stringscvars, 191 ) 
        fprintf ( f, "bw_botname ^" % s^ " // Bot name, Default( ^" http: //www.YourWebSite.com.ar^" )^n", stringscvars) 
        fprintf ( f, "bw_kickbot %i // Number of Player to Kick the Bot^n" , get_pcvar_num ( bw_botnumber) ) 
        fprintf ( f, "^n" ) 
        
        fclose ( f) ;
        
        server_cmd ( "exec %s" , config) 
        server_exec ( ) 
} 
 
Infinite Round : 
http://forums.alliedmods.net/showthread.php?t=117782