Best Player MOTD

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5255
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 74 пъти
Получена благодарност: 539 пъти
Години: 21
Контакти:

Best Player MOTD

Мнение от OciXCrom TM » 18 окт 2017, 20:23

Изображение

Best Player MOTD

Изображение Изображение
Описание
  • В края на всеки мап най-добрият играч се показва в MOTD прозорец, заедно с неговата статистика. Информацията в MOTD прозореца, както и начинът на определяне на най-добрия играч, може изцяло да се променят по доста лесен начин.
Команди и кварове
  • bpm_formula "157" -- начин на определяне на най-добрия играч (повече информация по-долу)
  • bpm_min_players "6" -- минимум нужен брой на играчи в края на мапа за да се покаже MOTD прозорецът
  • bpm_motd_header "Best Player: $name$" -- заглавието на MOTD прозореца за най-добрия играч
  • bpm_motd_stats "Player Stats: $name$" -- заглавието на MOTD прозореца за собствената статистика
  • bpm_obey_team "0" -- ако е включено, най-добрият играч ще бъде избран от даден отбор (0 = изключено; 1 = терористи; 2 = контра-терористи; 3 = победилият отбор)
  • bpm_save_type "0" -- начин на запазване на "победите" (0 = ник; 1 = ИП адрес; 2 = SteamID)
  • say /mystats -- показва текущата ви статистика
Заместители
  • Заместителите сложени в $долари$ може да се ползват в MOTD файловете и кваровете за заглавия.
  • Заместителите сложени в (скоби) може да се ползват в квара "bpm_formula".
  • $map$ -- името на картата
  • $name$ -- името на играча
  • $wins$ -- броят на победи (0)
  • $kills$ -- броят на убийства (1)
  • $kills_sb$ -- броят на убийства според резултата в scoreboard (2)
  • $deaths$ -- броят на умирания (3)
  • $deaths_sb$ -- броят на умирания според резултата в scoreboard (4)
  • $headshots$ -- броят на headshots (5)
  • $hits$ -- броят на удари (6)
  • $damage$ -- количеството на направена щета (7)
  • $kdratio$ -- съотношението между убийствата и умиранията (8)
  • $kdratio_sb$ -- съотношението между убийствата и умиранията според резултата в scoreboard (9)
  • $hsratio$ -- съотношението между headshots и убийствата (a)
  • $ctscore$ -- броя на победи на контра-терористите
  • $tscore$ -- броя на победи на терористите
  • $best_team$ -- победилият отбор (ct/t/draw)
Определяне на най-добрия играч
  • За да намери най-добрия играч, плъгинът първо проверява броя на убийствата на всички играчи и избира този с най-много такива. В случай, че избере повече от един играч с еднакъв брой на убийства, плъгинът сравнява броя на убийства с headshot на тези играчи. Ако отново има дублиране, сега плъгинът ще сравни количеството на щета направена от играчите и ще избере този, който е направил най-много.
  • Цялата тази процедура може да се редактира чрез промяна на квара "bpm_formula", който по подразбиране е настроен на "157". Както можете да видите от списъка със заместители, 1 означава брой на убийства, 5 е брой на headshots, а 7 е направената щета, съответно плъгинът ще провери тези 3 параметри едно по едно. Ако искате примерно първо да провери щетата (7), след това броя на умирания (3), и съотношението на headshots (a), кварът ще трябва да го сложите на "73a".
Благодарности
  • Плъгинът е направен по предложението на "aLbaShaRe" от тази тема.
Допълнителна информация и линк за теглене

Изображение
Изображение
Изображение

Потребителски аватар

deadlylord ZONATAEU
Потребител
Потребител
Мнения: 572
Регистриран: 04 апр 2017, 16:35
Местоположение: Бургас, България
Получена благодарност: 1 път
Години: 21
Контакти:

Best Player MOTD

Мнение от deadlylord ZONATAEU » 19 окт 2017, 07:44

@aLbaShaRe Благодаря за идеята!
@OciXCrom Благодаря за плъгина!

За съжаление при компилиране, излиза

Код: Избери всички

D:\Games\cs1.6\cstrike\addons\amxmodx\scripting\crx_bestplayer.sma(343 -- 344) : warning 213: tag mismatch
D:\Games\cs1.6\cstrike\addons\amxmodx\scripting\crx_bestplayer.sma(344 -- 345) : warning 213: tag mismatch
D:\Games\cs1.6\cstrike\addons\amxmodx\scripting\crx_bestplayer.sma(345 -- 346) : warning 213: tag mismatch
Пробвах на single player и на реалния сървър
Best Player MOTD 1.0 OciXCrom crx_bestplayer. running
Плъгина е включен, но не работи, нито командата /mystats, нито MOTD в края на рунда
Последна промяна от deadlylord ZONATAEU на 19 окт 2017, 09:05, променено общо 1 път.

Потребителски аватар

MF1 1913
Потребител
Потребител
Мнения: 306
Регистриран: 12 окт 2016, 21:15
Местоположение: гр.Варна
Получена благодарност: 7 пъти
Контакти:

Best Player MOTD

Мнение от MF1 1913 » 19 окт 2017, 08:59

При мен си компилира без проблеми...
http://prntscr.com/gz89se
New DM FUN server ! Join now.
93.123.18.54:27018 :bg:

Потребителски аватар

deadlylord ZONATAEU
Потребител
Потребител
Мнения: 572
Регистриран: 04 апр 2017, 16:35
Местоположение: Бургас, България
Получена благодарност: 1 път
Години: 21
Контакти:

Best Player MOTD

Мнение от deadlylord ZONATAEU » 19 окт 2017, 09:08

Най-вероятно полза "функция" от 1.8.3 и за това при мен не се компилира правилно.

Би било хубаво да се направи плъгина да работи и при писане/използване на amx_map и amx_votemap

Потребителски аватар

LoShIaA
Потребител
Потребител
Мнения: 322
Регистриран: 20 окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 6 пъти
Години: 26

Best Player MOTD

Мнение от LoShIaA » 19 окт 2017, 09:08

То и при него се компилира просто има предупреждения и при теб има едно имаше го и при мен. Трябва на ред 89 да замениш това public client_disconnect(id) с това public client_disconnected(id) и няма да има предупреждение. Идеята за плъгина е много добра ама въобръжението на автора за тези мотд екрани е уникално. Поздравявам го.

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5255
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 74 пъти
Получена благодарност: 539 пъти
Години: 21
Контакти:

Best Player MOTD

Мнение от OciXCrom TM » 19 окт 2017, 20:13

@deadlylord - това е бъг от компилатора, който е оправен в 1.8.3. Не е никакъв проблем и няма влияние върху работата на плъгина. Ще се опитам да направя да не го показва. Относно самия плъгин - MOTD се показва в края на мапа, а не рунда. Ако командата не работи, вероятно имаш плъгин за чата, който я блокира, тъй че премести плъгина над него в plugins.ini. Не съм сигурен дали може да се направи при ръчно сменяне, но ще потърся.

Добавено преди 1 час 29 минути 46 секунди:
Изображение
  • Добавен е победилият отбор в MOTD прозореца.
  • Добавен е кварът "bpm_obey_team".
  • Добавени са нови заместители: $ctscore$, $tscore$, $best_team$.

Потребителски аватар

deadlylord ZONATAEU
Потребител
Потребител
Мнения: 572
Регистриран: 04 апр 2017, 16:35
Местоположение: Бургас, България
Получена благодарност: 1 път
Години: 21
Контакти:

Best Player MOTD

Мнение от deadlylord ZONATAEU » 20 окт 2017, 17:16

Сложих го най-горе и под linux си работи, но на по-старите платформи не работи.

Добавено преди 4 часа 14 минути 14 секунди:
Мисля, че открих къде е проблема, тъй като използвам плъгин, който позволява на рунда да продължава до края на картата, вместо да сменя посредата на рунд, най-вероятно той бъгва твоя плъгин и не се пуска в края на рунда

Код: Избери всички

/* Allow Round Finish
About:
This plugin allows the last round to be finnished even if the timelimit has expired

Credits: 
Ops in #AMXmod @ Quakenet for alot of help ( + AssKicR & CheesyPeteza ) 
*/

#include <amxmodx>

new g_IsLastRound = 0
new g_OldTimelimit=0

#define TASK_ID_CHECKFORMAPEND 241
#define TASK_ID_DELAYMAPCHANGE 242

public plugin_init()
{
	register_plugin("Allow round finish", "1.0.2" ,"EKS")
	
	register_event("SendAudio","Event_EndRound","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
	set_task(15.0,"Task_MapEnd",TASK_ID_CHECKFORMAPEND,_,_,"d",1)
}

public Task_MapEnd()
{
	if(get_playersnum())
	{
		g_IsLastRound = 1
		g_OldTimelimit = get_cvar_num("mp_timelimit")
		//log_amx("g_OldTimelimit: %d",g_OldTimelimit)
		server_cmd("mp_timelimit 0")
		client_print(0,print_chat,"Timelimit has expired, mapchange will happen after this round")
	}
}
public Event_EndRound()
{
	if(g_IsLastRound == 1)
	{
		client_print(0,print_chat,"Round is over, changing map in 5 seconds")
		set_task(5.0,"Task_DelayMapEnd",TASK_ID_DELAYMAPCHANGE,_,_,"a",1) // We delay the end of the map with a few sec, so the last guys death is viewable
	}
}
public server_changelevel(map[])
{
	if(g_IsLastRound == 1)
		Task_DelayMapEnd()
}
public Task_DelayMapEnd()
{
	remove_task(TASK_ID_DELAYMAPCHANGE)
	g_IsLastRound = 0
	if(get_cvar_num("mp_timelimit") == 0)
		server_cmd("mp_timelimit %d",g_OldTimelimit)
}
Но пък от друга страна, както казах /mystats работи и best player излезе, когато сложиш плъгина https://i.imgur.com/i6WzvMh.png

И все пак както казах, според мен ще бъде много по-добре да се направи плъгина да работи, дори и когато админ смени рунда с amx_votemap / amx_map / rtv вот и тн. Не знам дали е въжможно да се направи проверка за евента, който изкарва scoreboard за край на картата и вместо него да изкарва твоя MOTD

Потребителски аватар

aLbaShaRe
Потребител
Потребител
Мнения: 51
Регистриран: 10 окт 2016, 20:17

Best Player MOTD

Мнение от aLbaShaRe » 27 окт 2017, 18:37

плъгина дава грешка

Код: Избери всички

L 10/26/2017 - 23:49:34: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20171026.log")
L 10/26/2017 - 23:49:34: replace() buffer not big enough (21>=18)
L 10/26/2017 - 23:49:34: [AMXX] Run time error 10 (plugin "crx_bestplayer.amxx") (native "replace") - debug not enabled!
L 10/26/2017 - 23:49:34: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5255
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 74 пъти
Получена благодарност: 539 пъти
Години: 21
Контакти:

Best Player MOTD

Мнение от OciXCrom TM » 28 окт 2017, 14:19

Активирай "debug" режим и дай отново грешката за да видя на кой ред е в кода.

Потребителски аватар

aLbaShaRe
Потребител
Потребител
Мнения: 51
Регистриран: 10 окт 2016, 20:17

Best Player MOTD

Мнение от aLbaShaRe » 28 окт 2017, 15:24

Интересна работа ся па спря да дава грешка след като написах дебъг

Отговори

Върни се в “Одобрени плъгини”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост