Иконка ресурса

The Annihilation 1.0 - 1.0.2

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
  • Автор ресурса
  • #1
The Annihilation 1.0.2

Описание:

Данный плагин представляет собой менеджер, который делает ваш сервер не просто Knife сервером, а сервером-аннигиляции, примером которого может быть "Перетягивание каната".
А если подробнее, каждая команда должна захватывать игроков в свою команду, пока игрок во вражеской команде не останется один. Последнего необходимо убить, но этот игрок может захватить всех так же, как и вы. Победит та команда, которая убила последнего игрока.
Можно сравнить с настольной игрой "Реверси", а так же Zombie Mod, только тут "заражают" обе команды :)

Особенности плагина:
- Захват с 1 удара.
- Смена скина игрока на скин команды.
- Последний игрок в команде не захватывается.
- Отключены: спасение заложников и установка бомб, что позволяет играть на любой карте.
- Захваченному игроку выдаётся 200 здоровья.
- Автоматическое возрождение через 5 сек после смерти.
- Автоматическое возрождение после подключения.
- Команда возрождения !respawn, !res

P.S. Выкладываю плагин, который делал для своего сервера, поэтому 100% поддержку плагина не обещаю. Работает только на CSGO, но вы можете адаптировать под CSS сменив модели, которые выставляются плагином.
 
Последнее редактирование модератором:

pracc

Быть, а не казаться.
Сообщения
946
Реакции
541
Re: [CSGO] The Annihilation 1.0

Сделаю на днях сервер у себя по этому моду и усовершенствую твой мод для своего сервера, если ты не против.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
  • Автор ресурса
  • #7
Re: [CSGO] The Annihilation 1.0.1

Версия 1.0.1.

Исправлены некоторые ошибки.
 
Последнее редактирование модератором:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #8
Re: [CSGO] The Annihilation 1.0.1

Primo, Лови критику
PHP:
new CTCount;
new TCount;
Зачем они тебе глобально?

PHP:
if(GetClientTeam(victim) == 3 && GetClientTeam(attacker) == 2 && CTCount > 1)
		{
			/* бла-бла*/
		}
		else if(GetClientTeam(victim) == 2 && GetClientTeam(attacker) == 3 && TCount > 1)
По несколько раз получаешь команду. Лучше получить 1 раз и записать в переменную.
PHP:
public Action:RespawnPlayer(Handle:timer, any:client)
{
	if(IsClientInGame(client) && !IsPlayerAlive(client)) CS_RespawnPlayer(client);
	KillTimer(timer);
	CloseHandle(timer);
}
Тут не надо делать ни KillTimer(timer); ни CloseHandle(timer); Можно либо убрать это всё либо убрать и дописать return Plugin_Stop;

PHP:
public RemoveWeapon(client)
{
	new current0 = GetPlayerWeaponSlot(client, 0);
	new current1 = GetPlayerWeaponSlot(client, 1);
	new current3 = GetPlayerWeaponSlot(client, 3);
	new current4 = GetPlayerWeaponSlot(client, 4);
	if(IsValidEntity(current0) && current0 != INVALID_ENT_REFERENCE)
	{
		RemovePlayerItem(client, current0);
	}
	if(IsValidEntity(current1) && current1 != INVALID_ENT_REFERENCE)
	{
		RemovePlayerItem(client, current1);
	}
	if(IsValidEntity(current3) && current3 != INVALID_ENT_REFERENCE)
	{
		RemovePlayerItem(client, current3);
	}
	if(IsValidEntity(current4) && current4 != INVALID_ENT_REFERENCE)
	{
		RemovePlayerItem(client, current4);
	}
	//GivePlayerItem(client, "weapon_knife");
}
Тут делай циклом.
PHP:
public RemoveWeapon(client)
Не надо тут писать public.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
  • Автор ресурса
  • #9
Re: [CSGO] The Annihilation 1.0.1

Зачем они тебе глобально?
Надо.

if(GetClientTeam(victim) == 3 && GetClientTeam(attacker) == 2 && CTCount > 1)
        {
            /* бла-бла*/
        }
        else if(GetClientTeam(victim) == 2 && GetClientTeam(attacker) == 3 && TCount > 1)

Команда игрока меняется по кд, да, к тому же, если 1 проверка прошла успешно, то 2 не выполняется. else if же.



public Action:RespawnPlayer(Handle:timer, any:client)
{
    if(IsClientInGame(client) && !IsPlayerAlive(client)) CS_RespawnPlayer(client);
    KillTimer(timer);
    CloseHandle(timer);
}

Да я запутался уже с этими таймера, вы мне говорите, то закрывать, то не закрывать.
Я закрыл хандл потому, что где-то прочитал в комментариях на https://sm.alliedmods.net/api/ , что если не закрыть хандл, то это приведёт к крашу сервера. Не хочу рисковать.



Тут делай циклом.
Суть не меняется, удаляется всё. А с циклом мне нужно было оставить нож, а если бы я добавил проверку на слот, то бишь слот равен = 2, это привело бы к создании лишней проверки. А так, выполняется то же кол-во операций, и без лишних операций увеличения значения переменной и проверок и т.п.

Не надо тут писать public.
Буду знать.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #10
Re: [CSGO] The Annihilation 1.0.1

Primo, Оффтоп
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
  • Автор ресурса
  • #11

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: [CSGO] The Annihilation 1.0.1

если 1 проверка прошла успешно, то 2 не выполняется. else if же.
А если нет, то каждый раз всё узнаётся ещё раз, что не хорошо.
Оффтоп
Этого достаточно, а последующее и отдельное применение CloseHandle для таймера часто приводит к ошибке.
Если не хочешь рисковать, то после приравнивай Handle к "пустоте".
В данном случае, в самом таймере он действительно не нужен. Если бы ты вынес его в функцию со сбросом ещё где-то, то отлично.
new current3 = GetPlayerWeaponSlot(client, 3);
И как, сколько гранат остаётся?
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
  • Автор ресурса
  • #13
Re: [CSGO] The Annihilation 1.0.1

AlmazON, Если вы про то, что я проверяю команду каждого игрока, то у меня просто были проблемы, и данная проверка решила проблему.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: [CSGO] The Annihilation 1.0.1

Primo, может хоть так?
PHP:
switch (GetClientTeam(victim))
{
	case 2:
	{
		if (GetClientTeam(attacker) == 3 && TCoun t > 1)
		{
		...
		}
	}
	case 3:
	{
		if (GetClientTeam (attacker) == 2 && CTCount > 1)
		{
		...
		}
	}
}
Так действительно данные клиента извлекаются 1 раз - там идёт лишь сравнение, как будто это переменная.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
  • Автор ресурса
  • #15
Re: [CSGO] The Annihilation 1.0.1

AlmazON, ну, это будет самым оптимальным. Спасибо.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
  • Автор ресурса
  • #16
Re: [CSGO] The Annihilation 1.0.2

Annihilation 1.0.2


Исправлены ошибки.
 
Последнее редактирование модератором:

Похожие темы

Сверху Снизу