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

Most Deadly Player 1.0.0

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #1
Most Deadly Player

Описание:
  • Показ самого смертоносного игрока в конце раунда.
    Аналог плагина Most destructive.
d94a1d9e4b4e.jpg

Если никто никого не ранил - отображения в чате от плагина не будет.
Если вред игрокам был нанёсен лишь самой картой - информация об ущербе от игрового мира (полезно на сервере типа Bunny Hop или Mini Games):
5067e16a5dd9.jpg

Если количество убийств у игрока с любым другим одинаковое - выбирается тот, кто нанёс больше урона.
Если происходит ситуация выше и урон также един - победителем станет наиболее точный игрок.
Также, в некоторых случаях, возможен показ игрового мира, как победителя, если он оказался смертоносней любого из игроков ("насмешка"/небольшое разнообразие).

Требования:

Поддерживаются игры:
  • Любая игра (кроме показа урона, например, DOD)

Установка:
  • Переместите или скопируйте файл "MostDeadlyPlayer.sp" в директорию addons\sourcemod\scripting сервера.
  • Скомпилируйте плагин. Переместите или скопируйте полученный файл "MostDeadlyPlayer.smx" в директорию addons\sourcemod\plugins сервера.

PHP:
v1.0.0  (21.06.2015) - пробная версия.
 
Последнее редактирование модератором:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
AlmazON, когда ты уже будешь выкладывать с smx? :(
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #5
когда ты уже будешь выкладывать с smx?
Оффтоп Да и зачем оно - куча файлов потом в профиле отображается, мне искать нужный неудобно.
Пусть учатся компилировать, раз уж сервером обзавелись!
 

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • #6
Мне одному тяжело ориентироваться в этом коде?)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #9
до обфускации кода недалеко
Оффтоп Переменные/функции укорочены, а остальное - просто стиль.
Я бы добавил и сразу, но вы же без html-цветов не можете, а ради этого добавлять буфер+замену как-то не хотелось.
вывод в hint добавь
Под конец раунда? На 3 секунды? Да надо ли оно там?! Оффтоп
 

SenatoR

Участник
Сообщения
773
Реакции
344
AlmazON, А в больших плагинах ты тоже переменные\функции сокращаешь?
Вопрос из любопытства.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #12
в больших плагинах ты тоже переменные\функции сокращаешь?
Всегда. Как часть стиля. Мне итак всё понятно, не путаюсь.
Не сокращаю, если только кому-то просто в помощь плагин нужен и чтобы было ясно, что где, остальным - в случае редактирования.
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Хотелось бы немного переделанный вывод увидеть)
1 убийство
2 убийства
3 убийства
4 убийства
5 убийств
....
1 ранение
2 ранения
3 ранения
4 ранения
5 ранений
....
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #14
переделанный вывод увидеть
Математическую формулу склонения имён существительных знаешь? А вручную делать многовато (на DM нужно, как минимум, до тысяч расписать - это перебор).
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Математическую формулу склонения имён существительных знаешь? А вручную делать многовато (на DM нужно, как минимум, до тысяч расписать - это перебор).

Решил сделать кардинально.
PHP:
	if (MaxDamage > 0)
	{
		
		PrintHintTextToAll	("₪> Наибольший урон нанес %N - %d урона <₪\n₪> Большинство убийств в раунде сделал: %N убив %d <₪",MaxDamage,Damage[MaxDamage],MaxKills,Kills[MaxKills]);
		
		switch (GetClientTeam(MaxDamage))
		{
			case 2:		{CPrintToChatAll("{green}₪>{default} Наибольший {green}урон{default} нанес {red}%N{default} - {green}%d{default} урона",MaxDamage,Damage[MaxDamage]);}
			case 3:		{CPrintToChatAll("{green}₪>{default} Наибольший {green}урон{default} нанес {blue}%N{default} - {green}%d{default} урона",MaxDamage,Damage[MaxDamage]);}
			default:	{CPrintToChatAll("{green}₪>{default} Наибольший {green}урон{default} нанес {lightgreen}%N{default} - {green}%d{default} урона",MaxDamage,Damage[MaxDamage]);}
		}
		
		switch (GetClientTeam(MaxDamage))
		{
			case 2:			
			{
				switch (Kills[MaxKills])
				{
					case 1:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}одного {default}противника",MaxKills,Kills[MaxKills]);
					case 2:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}двоих {default}противников",MaxKills,Kills[MaxKills]);
					case 3:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}троих {default}противников",MaxKills,Kills[MaxKills]);
					case 4:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}четверых {default}противников",MaxKills,Kills[MaxKills]);
					default:		CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}%d-х {default}противников",MaxKills,Kills[MaxKills]);
				}
			}
			
			case 3:
			{
				switch (Kills[MaxKills])
				{
					case 1:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}одного {default}противника",MaxKills,Kills[MaxKills]);
					case 2:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}двоих {default}противников",MaxKills,Kills[MaxKills]);
					case 3:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}троих {default}противников",MaxKills,Kills[MaxKills]);
					case 4:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}четверых {default}противников",MaxKills,Kills[MaxKills]);
					default:		CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}%d-х {default}противников",MaxKills,Kills[MaxKills]);
				}
			}
			
			default:
			{				
				switch (Kills[MaxKills])
				{
					case 1:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}одного {default}противника",MaxKills,Kills[MaxKills]);
					case 2:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}двоих {default}противников",MaxKills,Kills[MaxKills]);
					case 3:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}троих {default}противников",MaxKills,Kills[MaxKills]);
					case 4:			CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}четверых {default}противников",MaxKills,Kills[MaxKills]);
					default:		CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}%d-х {default}противников",MaxKills,Kills[MaxKills]);
				}
			}
		}
		
	}


Возможно не идеал - но как по мне - лучше. И да, с русским языком в таком плане у меня некие проблемы имеются, так что это скорее всего не ко мне)

Если я не ошибаюсь то нужно взять последнюю цифру из большого числа и смотреть по ней, например:
1 фраг
2 фрага
3 фрага
4 фрага
5 фрагов

точно так же и в большом числе получиться:
281 фраг
282 фрага
283 фрага
284 фрага
285 фрагов

Возможно я идиот, но я пытался)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #16
Сверху Снизу