FakeClients Помощь с плагином

tima4502

Участник
Сообщения
71
Реакции
3
Как прибавить максимальное количесво ботов ? подскажите ?

C-подобный:
#include <sourcemod>
#include <sdktools>

#define PL_VERSION "1.0"

new maxplayers;
new Handle:MaxFakeClientAllowed;
new Handle:FakeClientsDelay;

public Plugin:myinfo =
{
name = "FakeClients",
author = "LouLoubizou",
description = "Put fake clients in server",
version = PL_VERSION,
url = "SourceMod: Half-Life 2 Scripting"
};

static String:FakeNames[32][] = {"Yusha", "Tommy12rus", "Roger18rus", "Bullet", "Jef", "Friki", "dimonik10rus", "Stivie", "Samagon", "Vitalina", "Dj", "Tiesto", "177rus", "Duke77rus", "omar", "achmed", "Armin", "hmmmm", "Pizza", "Ashot", "riki", "Yusha", "TbI", "freeman", "alyx", "barney", "g-man", "xcellent", "obtuse", "Moridin", "Rand", "YoungBull"};

public OnPluginStart(){
CreateConVar("sm_fakeclients_version", PL_VERSION, "Version of FakeClients plugin", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
MaxFakeClientAllowed = CreateConVar("sm_fakeclients_players","18","Number of players to simulate", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY, true, 0.0, true, 64.0);
FakeClientsDelay = CreateConVar("sm_fakeclients_delay","10","Delay after map change before fake clients join (seconds)", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY, true, 0.1, true, 10.0);
}

public OnMapStart(){
maxplayers = 0;
maxplayers = GetMaxClients();
new i;
new Float:Delay = GetConVarFloat(FakeClientsDelay);
new Float:NewDelay = Delay;
for(i=1; i<=GetConVarInt(MaxFakeClientAllowed); i++){
CreateTimer(NewDelay, OnTimedCreateFakeClient, 0);
NewDelay = NewDelay+Delay;
}
}

public OnClientPutInServer(client){
if (!IsFakeClient(client)){
new i;
for(i=1; i<=maxplayers; i++){
if (IsClientConnected(i)){
if(IsFakeClient(i)){
KickClient(i, "Slot reserved", i);
break;
}
}
}
}
}

public OnClientDisconnect(client){
CreateTimer(0.1, OnTimedCreateFakeClient, client);
}

public Action:OnTimedKick(Handle:timer, any:client){
KickClient(client, "Slot reserved", client);
return Plugin_Handled;
}

public Action:OnTimedCreateFakeClient(Handle:timer, any:client){
new clientcount = GetClientCount(true);
if (clientcount == maxplayers-1)
return Plugin_Handled;

new i;
new NumberOfFakeClients = 0;
for (i=1; i<=maxplayers; i++){
if (IsClientConnected(i)){
if(IsFakeClient(i))
NumberOfFakeClients++;
}
}
if (NumberOfFakeClients == GetConVarInt(MaxFakeClientAllowed))
return Plugin_Handled;

if (clientcount >= GetConVarInt(MaxFakeClientAllowed))
return Plugin_Handled;

new RandomName = GetRandomInt(0, 31);
CreateFakeClient(FakeNames[RandomName]);
return Plugin_Handled;
}
 
Последнее редактирование:

suremiur

♂ overlay master ♂
Сообщения
537
Реакции
585
Чтобы не получить предупреждение на форуме, пользуйся данными функциями:
upload_2018-9-9_13-10-46.png
 

Wanderer

Шизофреник
Сообщения
171
Реакции
27
C-подобный:
MaxFakeClientAllowed = CreateConVar("sm_fakeclients_players","18"

Вместо 18 пиши свое значение и компилируй.
 

Yura7181

Участник
Сообщения
678
Реакции
594
При смене карты не кикает с сообщением сервер полон? (только при смене карты)
 

Yura7181

Участник
Сообщения
678
Реакции
594
Возможно ли подправить плагин так чтобы он кикал ботов при коннекте игроков (в том числе когда игрок качает карту и/или просто идёт подключение к серверу), а не при выборе команды как сейчас и чтобы gotv не кикало.

За деньги конечно (Paypal или webmoney).

Вот версия используемая мною:

Спойлер:

PHP:
#include <sourcemod>
#include <sdktools>

#define PL_VERSION "1.0"

new maxplayers;
new Handle:MaxFakeClientAllowed;
new Handle:FakeClientsDelay;

public Plugin:myinfo =
{
  name = "FakeClients",
  author = "LouLoubizou",
  description = "Put fake clients in server",
  version = PL_VERSION,
  url = "http://sourcemod.net/"
}; 

static String:FakeNames[32][] = {"as you", "KakiChan", "el espaniol", "fire on you", "dm", "dima", "pashtet from cs", "ice crack", "roger that", "yes", "style of me", "laser", "spiderman", "mega bot", "planet", "mad", "u mad bro?", "what's up", "yeah", "the main", "road to global", "all time", "fake pro", "22222222", "11111111", "asfgfgfg", "wall", "wind", "we are the best", "your skill", "city of", "dj style"};

public OnPluginStart(){
    CreateConVar("sm_fakeclients_version", PL_VERSION, "Version of FakeClients plugin", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
    MaxFakeClientAllowed = CreateConVar("sm_fakeclients_players","40","Number of players to simulate", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY, true, 0.0, true, 64.0);
    FakeClientsDelay = CreateConVar("sm_fakeclients_delay","0.1","Delay after map change before fake clients join (seconds)", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY, true, 0.1, true, 10.0);
}

public OnMapStart(){
    maxplayers = 0;
    maxplayers = GetMaxClients();
    new i;
    new Float:Delay = GetConVarFloat(FakeClientsDelay);
    new Float:NewDelay = Delay;
    for(i=1; i<=GetConVarInt(MaxFakeClientAllowed); i++){
        CreateTimer(NewDelay, OnTimedCreateFakeClient, 0);
        NewDelay = NewDelay+Delay;
    }
}

public OnClientPutInServer(client){
    if (!IsFakeClient(client)){
        new i;
        for(i=1; i<=maxplayers; i++){
            if (IsClientConnected(i)){
                if(IsFakeClient(i)){
                    KickClient(i, "Slot reserved", i);
                    break;
                }
            }
        }
    }
}

public OnClientDisconnect(client){
    CreateTimer(0.1, OnTimedCreateFakeClient, client);
}

public Action:OnTimedKick(Handle:timer, any:client){
    KickClient(client, "Slot reserved", client);
    return Plugin_Handled;
}

public Action:OnTimedCreateFakeClient(Handle:timer, any:client){
    new clientcount = GetClientCount(true);
    if (clientcount == maxplayers-1)
        return Plugin_Handled;
 
    new i;
    new NumberOfFakeClients = 0;   
    for (i=1; i<=maxplayers; i++){
        if (IsClientConnected(i)){
            if(IsFakeClient(i))
                NumberOfFakeClients++;
        }
    }
    if (NumberOfFakeClients == GetConVarInt(MaxFakeClientAllowed))
        return Plugin_Handled;

    if (clientcount >= GetConVarInt(MaxFakeClientAllowed))
        return Plugin_Handled;
 
    new RandomName = GetRandomInt(0, 31);
    CreateFakeClient(FakeNames[RandomName]);
    return Plugin_Handled;
}
 
Последнее редактирование:

Yura7181

Участник
Сообщения
678
Реакции
594
@Yura7181, вот этот не должен кикать SourceTV (да и при коннекте кикакет, емнип)
Привет.
Спасибо.
Если я правильно понял. ГОТВ не кикает, но игроков кикает при смене карты?

Не компилирует почему то:

SourcePawn Compiler 1.9
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2017 AlliedModders LLC

plugin.sp(40) : error 001: expected token: ";", but found "}"
plugin.sp(45) : error 001: expected token: ";", but found "}"
plugin.sp(94) : error 001: expected token: ";", but found "}"

3 Errors.
 
Последнее редактирование:

Designed

Твой антибиотик
Сообщения
233
Реакции
107
Привет.
Спасибо.
Если я правильно понял. ГОТВ не кикает, но игроков кикает при смене карты?

Не компилирует почему то:

SourcePawn Compiler 1.9
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2017 AlliedModders LLC

plugin.sp(40) : error 001: expected token: ";", but found "}"
plugin.sp(45) : error 001: expected token: ";", but found "}"
plugin.sp(94) : error 001: expected token: ";", but found "}"

3 Errors.
 

Вложения

  • FakeClients 1.1.1.sp
    3 КБ · Просмотры: 244

Yura7181

Участник
Сообщения
678
Реакции
594
Спасибо.
Готв не кикает, но игроков кикает с сообщением сервер полон в ситуации когда сервер полон (или почти полон) и имеет 15 фековых клиентов.
 
Сверху Снизу