Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Перевести в спектры

Статус пользователя Akushi
сообщение 30.10.2011, 17:45
Сообщение #1


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

/* Plugin generated by AMXX-Studio */
/* */
/* WebSiteBot */
/* By Parker; */
/* */
/* CvarS; */
/* bw_botname "www.viga-game.ru */
/* bw_kickbot "19" */
/* 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( ^"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()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang11274\\ f0\\ fs16 \n\\ par }
*/

Если не кикать бота когда кто то 1-2 присоединилось то он типо играет за кт, но убить его нельзя...
как сделать чтобы он был всегда в спектаторах?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Akushi
сообщение 1.11.2011, 20:00
Сообщение #2


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Не ужели не кто не знает как убрать вообще модель...?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
The Asmodai
сообщение 1.11.2011, 20:11
Сообщение #3
Стаж: 14 лет

Сообщений: 271
Благодарности: выкл.

Попробуй заменить fm_set_user_team(id, CS_TEAM_CT) на fm_set_user_team(id, CS_TEAM_UNASSIGNED)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 1.11.2011, 20:19
Сообщение #4


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Цитата(The Asmodai @ 2.11.2011, 0:11) *
Попробуй заменить fm_set_user_team(id, CS_TEAM_CT) на fm_set_user_team(id, CS_TEAM_UNASSIGNED)

Такое уже пробывал :biggrin: бот висеть начинает у теров...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
The Asmodai
сообщение 1.11.2011, 21:08
Сообщение #5
Стаж: 14 лет

Сообщений: 271
Благодарности: выкл.

Тогда не знаю. Очень все замороченно. А вообще должно само из кт за спекты его переводить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 1.11.2011, 21:48
Сообщение #6


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Цитата(The Asmodai @ 2.11.2011, 1:08) *
Тогда не знаю. Очень все замороченно. А вообще должно само из кт за спекты его переводить.

В таблице таба то переводит... но модель контровская весит и не убить ubeysya.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя H@ROS
сообщение 2.11.2011, 0:34
Сообщение #7


Стаж: 14 лет

Сообщений: 102
Благодарностей: 17
Полезность: 134

В коде присутствует много манипуляций со спавном бота, его размещении на карте и т.д. Как я понял, тебе всего этого не надо, а надо лишь бота, который бы отображался в спектаторах. Тогда смысл использовать этот плагин? Используй, к примеру, HLTV с таким именем, как тебе надо, либо надо писать другой плагин, т.к. в этом очень много хлама.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Accelerator
сообщение 2.11.2011, 6:13
Сообщение #8


Стаж: 16 лет

Сообщений: 142
Благодарностей: 45
Полезность: 252

http://forums.alliedmods.net/showpost.php?...mp;postcount=25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 2.11.2011, 12:42
Сообщение #9


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Цитата(Accelerator @ 2.11.2011, 10:13) *

Во спасибо точто надо... thank_you2.gif

Отредактировал: Akushi, - 6.11.2011, 16:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 3.11.2011, 16:12
Сообщение #10


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Он оказывается теперь если его кикнет потом сам не заходит обратно при выходе людей... только после смены мапы sad.gif


#include <amxmodx>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "WebSiteBot"
#define VERSION "1.0"
#define AUTHOR "Parker;"

new g_pEnable;
new g_pBotName;
new g_pMaxPlayers;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

g_pEnable = register_cvar("bw_enable", "1");
g_pBotName = register_cvar("bw_botname", "Change This");
g_pMaxPlayers = register_cvar("bw_maxplayers", "10");

if( get_pcvar_num(g_pEnable) )
{
set_task( 5.0, "CreateBot" );
}
}

public client_connect(id)
{
if( get_playersnum() >= get_pcvar_num(g_pMaxPlayers) )
{
new szBotName[33];
get_pcvar_string(g_pBotName, szBotName, 32);
server_cmd("kick ^"%s^"", szBotName);
}
}

public CreateBot()
{
new szBotName[33];
get_pcvar_string(g_pBotName, szBotName, 32);

new id = engfunc(EngFunc_CreateFakeClient, szBotName);
engfunc(EngFunc_FreeEntPrivateData, id);
set_pev(id, pev_flags, pev( id, pev_flags ) | FL_FAKECLIENT);

new szMsg[128];
dllfunc(DLLFunc_ClientConnect, id, szBotName, "127.0.0.1", szMsg);
dllfunc(DLLFunc_ClientPutInServer, id);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang11274\\ f0\\ fs16 \n\\ par }
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Accelerator
сообщение 6.11.2011, 6:38
Сообщение #11


Стаж: 16 лет

Сообщений: 142
Благодарностей: 45
Полезность: 252

Пробуйте

Отредактировал: Accelerator, - 6.11.2011, 6:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 6.11.2011, 15:37
Сообщение #12


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Цитата(Accelerator @ 6.11.2011, 10:38) *

Теперь ботов становится много много :biggrin: через время коннектятся и начинаются жестокие лаги на сервере, даже админку не открыть.
Прикрепленное изображение

Отредактировал: Akushi, - 6.11.2011, 16:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Accelerator
сообщение 6.11.2011, 16:18
Сообщение #13


Стаж: 16 лет

Сообщений: 142
Благодарностей: 45
Полезность: 252

[attachment=15267:bot.rar]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 6.11.2011, 21:41
Сообщение #14


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Цитата(Accelerator @ 6.11.2011, 20:18) *
[attachment=15267:bot.rar]

Всё также после кика (bw_maxplayers)
бот обратно не заходит... только после смены мапы.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Accelerator
сообщение 7.11.2011, 5:36
Сообщение #15


Стаж: 16 лет

Сообщений: 142
Благодарностей: 45
Полезность: 252

Проверил у себя. У меня всё нормально работает.

Бот кикается только тогда, когда на сервере игроков > или = числу, которое указано в кваре bw_maxplayers
Бот вновь заходит на сервер, когда кто-то из игроков отключается и если число оставшихся игроков на сервере < числа, которое указано в кваре bw_maxplayers, то бот вновь заходит на сервер.

Отредактировал: Accelerator, - 7.11.2011, 5:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 7.11.2011, 16:00
Сообщение #16


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

Иногда но редко делается пару или много ботов и начинаются лаги на сервере.

Отредактировал: Akushi, - 18.11.2011, 17:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Akushi
сообщение 18.11.2011, 17:58
Сообщение #17


Стаж: 16 лет

Сообщений: 883
Благодарностей: 313
Полезность: 604

ап pardon.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: