Плагин по ботам, чтобы после смерти последнего человека умирали также все боты

Konstantin

Участник
Сообщения
1,775
Реакции
759
Всем привет! Ребят, если кому не лень/есть время, не мог бы сделать такой плагин, чтобы после смерти последнего человека умирали также все боты?
Пользуюсь, правда, одним плагином (Botsplugin.smx), но в нём помимо этой еще несколько ненужных функций, а также один недостаток: если играют только боты, то при смерти одного помирают все...
Оффтоп
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Re: Плагин по ботам.

UPDATED
Попробуй этот код
PHP:
#pragma semicolon 1
#include <sourcemod>

new player;
new bot;

public OnPluginStart()
{
	HookEvent("player_death", Event_OnPlayerDeath);
}

public Event_OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
	player = 0;
	bot = 0;
	for(new i = 1; i <= MaxClients; i++)
	if(IsClientInGame(i) && IsPlayerAlive(i))
	{
		if(!IsFakeClient(i))
		{
			player++;
		}
		if(IsFakeClient(i))
		{
			bot++;
		}
	}	
	if(player < 1 && bot > 0)
	{
		ServerCommand("bot_kill");
	}
}
 
Последнее редактирование:

Konstantin

Участник
Сообщения
1,775
Реакции
759
Re: Плагин по ботам.

DoK_1997, а что мне с этим делать? Я в этом совсем 0!:)
 

Sania

Участник
Сообщения
98
Реакции
160
Re: Плагин по ботам.

Konstantin,Вот
 

Вложения

  • bot_kill.smx
    2.4 КБ · Просмотры: 11
  • bot_kill.sp
    600 байт · Просмотры: 17

Konstantin

Участник
Сообщения
1,775
Реакции
759
Re: Плагин по ботам.

Sania, К сожалению, не мрут... Карту менял, сервер перезагружал, предыдущий плагин выключал.
 

energywav

Участник
Сообщения
25
Реакции
2
Re: Плагин по ботам.

Потому что тебе скинули неработающий, dok написал правильно.
 

Вложения

  • bot_kill.sp
    535 байт · Просмотры: 6
  • bot_kill.smx
    2.1 КБ · Просмотры: 1
Последнее редактирование:

Konstantin

Участник
Сообщения
1,775
Реакции
759
Re: Плагин по ботам.

Потому что тебе скинули неработающий, dok написал правильно.

Эммм... После моей смерти (играл 3х3) боты продолжают "мирно воевать"...
П.С. Ладно, ребят, не заморачивайтесь. Спасибо за старания!
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Re: Плагин по ботам.

Konstantin
Ты пробовал? Да возможны ошибки по коду, но он у меня работает


energywav
Он теперь работает, ранее был сделан по другому в 4 посту есть пример
 

energywav

Участник
Сообщения
25
Реакции
2
Re: Плагин по ботам.

ой) Конечно же там && =) Перезалил*
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Re: Плагин по ботам.

UPDATED
PHP:
#pragma semicolon 1 
#include <sourcemod> 

public OnPluginStart() HookEvent("player_death", Event_OnPlayerDeath);

public Event_OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) 
{ 
	new player = 0, bot = 0; 
	for(new i = 1; i <= MaxClients; i++)
	{
		if(IsClientInGame(i) && IsPlayerAlive(i)) 
		{ 
			if(!IsFakeClient(i)) player++;
			else bot++; 
		}     
	}
	if(player < 1 && bot > 0) ServerCommand("bot_kill");
}

Так же имеется демо теста на сервере
Скачать

P.S. Помог и справил wS
 

Вложения

  • cbot.smx
    2.1 КБ · Просмотры: 16
  • cbot.sp
    454 байт · Просмотры: 18
Последнее редактирование:

Scarface_slv

Участник
Сообщения
222
Реакции
47
Konstantin,что бы боты не умирали когда игроков совсем нет можно попробовать так
Правда хз работает или нет, тем более зачем это надо?
 

Вложения

  • test.rar
    5.6 КБ · Просмотры: 14

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Ну я еще думал про этот код,
PHP:
#pragma semicolon 1 
#include <sourcemod> 

public OnPluginStart() HookEvent("player_death", Event_OnPlayerDeath);

public Event_OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) 
{
	new player = 0, bot = 0;
	for(new i = 1; i <= MaxClients; i++) {
		if(IsClientInGame(i) && IsPlayerAlive(i)) { 
			if(!IsFakeClient(i)) player++;
			else bot++; 
		}     
	}
	if(!IsFakeClient(GetClientOfUserId(GetEventInt(event, "userid"))) && player < 1 && bot > 0) ServerCommand("bot_kill");
}
но на этой странице понял так, что использовать одиночно нельзя, вот и был в растерянности..
 

energywav

Участник
Сообщения
25
Реакции
2
PHP:
#pragma semicolon 1
#include <sourcemod>

public OnPluginStart() 
{ 
	HookEvent("player_death", Event_OnPlayerDeath); 
} 

public Event_OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) 
{
	if(!IsFakeClient(GetClientOfUserId(GetEventInt(event, "userid"))))
	{
		new check = 0;
		for (new i = 1; i <= MaxClients; i++)
		{
			if (IsClientInGame(i) && !IsFakeClient(i) && IsPlayerAlive(i))
			{
				check = 1;
				break;
			}
		}
		if (check == 0)
		{
			ServerCommand("bot_kill");
		}
	}
}
Проще в самом начале проверку поставить
 

_wS_

Участник
Сообщения
383
Реакции
760
Проще без лишней переменной check :-D

PHP:
public Event_OnPlayerDeath(Handle:event, const String:name[], bool:silent)
{
	if (!IsFakeClient(GetClientOfUserId(GetEventInt(event, "userid"))))
	{
		for (new i = 1; i <= MaxClients; i++)
		{
			if (IsClientInGame(i) && !IsFakeClient(i) && IsPlayerAlive(i)) return;
		}
		ServerCommand("bot_kill");
	}
}
 

energywav

Участник
Сообщения
25
Реакции
2
НА самом деле не очень понятно, когда можно использовать return, а когда - нет
 

acik_traiks

Что нибудь напишем?)
Сообщения
770
Реакции
627
а еще проще BotsManager
Можно не только убийства ботов но и многое другое
 

Konstantin

Участник
Сообщения
1,775
Реакции
759
Привет!
Ребят, помогите немного переделать один плагин, а именно Botsplugin. Меня в нём всё устраивает, кроме того, что если играют боты (3х3), то после смерти первого умирают все сразу! (дело в том, что я использую botnames, а в поиске серверов у псевдолюдей по фрагам минуса - палево :) ) Функция botspl_autokill должна быть включена и оставшиеся боты должны умирать только после смерти последнего человека.
 

Вложения

  • Botsplugin.rar
    7.1 КБ · Просмотры: 10
Сверху Снизу