krasiobe Нов
Брой мнения : 1 Дата на регистрация : 12.05.2023
| Заглавие: Rank System Ultimate Пет 12 Май 2023, 17:48 | |
| [align=center] [size=200]« Rank System Ultimate »[/size][/align] ❯ [size=150]Описание:[/size]Представям ви една уникална ранк система, която няма да намерите другаде в интернет. Системата е писана изцяло от мен (с малко помощ от HueHue) и е вложен адски много труд в нея като кодът е максимално оптимизиран, четлив и подреден. Като за начало, ранк системата работи с reapi и всички статистики, с които разполага като xp, level, kills, headshots и много други, се взимат от там и се запазват в реално време с MySQL. Освен това, има куп неща като Skills (умения), отборно XP, асистенции, Stats Viewer, което съставлява меню за разглеждане на статистиките на другите играчи, уникални /top15, /rankstats и Map End Stats motd екрани, web stats и още. Всички неща, които включва системата, могат да бъдат лесно настройвани с конфигурационен файл, в него е обяснено всичко. Също има включен и lang файл за лесно променяне и на всички съобщения. Към системата е добавен и API, който съдържа куп нативи, благодарение на които може лесно да си създадете ваши подплъгини. Ранк системата работи без проблем при пълен сървър и по нея няма открити бъгове. Сега ще ви представя всичко, с което разполага тя. ❯ [size=150]HUD информация:[/size][You must be registered and logged in to see this image.]Това е HUD информацията на играча относно неговия ранк статус. По подразбиране изглежда така. Може да се промени да бъде във вид на DHUD, да ѝ се променя цвета и позицията, и да се прилагат заместители в нея. Ето списък с всички заместители, както и тяхните предназначения: - %name% - Името на играча.
- %xp% - Текущото XP на играча.
- %level% - Текущото ниво на играча.
- %rank% - Името на текущия ранк на играча.
- %next_xp% - Нужното XP за достигане на следващото ниво на играча.
- %next_level% - Следващото ниво на играча.
- %next_rank% - Името на следващото ниво на играча.
- %max_levels% - Максималният брой нива.
- %server_rank% - Ранка на играча в сървъра.
- %max_server_ranks% - Максималния брой ранкове в сървъра.
- %skill% - Името на текущото умение на играча.
- %skill_range% - Диапазонът на текущото умение на играча. Той се изчислява по следната формула: 100.0 * Убийства / (Убийства + Умирания)
- %next_skill% - Името на следващото умение на играча
- %next_skill_range% - Нужният диапазон за достигане на следващото умение на играча.
- %minutes% - Минутите, които играчът е прекарал в сървъра за една сесия.
- %seconds% - Секундите, които играчът е прекарал в сървъра за една сесия.
- %newline% - Нов ред.
Как ще подредите заместителите е без никакво значение. Максималният брой на HUD информацията е 512 символа. Когато умрете, информацията се сменя на играчът, когото наблюдавате.
[/hr] ❯ [size=150]MOTD екрани:[/size]Направени са уникални Top15, Rank Stats и Map End Stats motd екрани, като към тях има добавени куп харатеристики. Всички неща като дизайн, изображения, текст, цветове и други, може да бъдат променяни от .php и .css файла на съответния мотд екран. Ето подброно описание и снимки за всеки от тях: - [size=125]Top 15[/size]
[You must be registered and logged in to see this image.]
Така изглежда Top 15 по подразбиране. Както виждате, таблицата се състои от следните колони: Топ, Име, Асистенции, Убийства, Умирания, Удари в главата (и проценти), Най-Ценен Играч, Спечелени рундове, Заложени бомби, Експлодирали бомби, Обезвредени бомби, XP, Умение и Ранк. С натискането на всяко заглавие на съответната колона, ще подреди играчите по тази колона по възходящ или низходящ ред. Както също виждате, при всеки играч има индикатор дали е онлайн или офлайн в сървъра, също и флага от неговата страна, стийм аватар и иконка (ако е такъв), и дали е нов във сървъра. Има и цветни имена за Випове или Админи. Те могат лесно да се костумизират от config файла. Цветовете на рамките за всеки скил също може да се костумизира. Натискането на даден играч ще ви отведе до неговата ранк статс страница, която по-долу ще видите. Ранковете по подразбиране са направени да бъдат тези на CS:GO, снимки с тях може да видите тук.
Отварянето на топ статистиките става с командата /top или /topX като X са местата до които да се показва. (например /top20, /top50, /top100 т.н.) Може да използвате и командата /bot или /botX, която ще изкара последните играчи в сървъра.
Под таблицата също има и добавена търсачка на играчите по техното име, ип или стийм ид, както и страници.
- [size=125]Rank Stats[/size]
[You must be registered and logged in to see this image.]
Така изглежда motd страницата на статистиките на играча. Ранк статистиката се състои от следните три колони:
- В първата колона, на най-горния ред показва Steam аватара на играча (ако той е такъв), който при натискане ще ви отведе до неговия стийм профил. До него е флага на държавата, от която е. Под флага е индикатор на играча дали е онлайн/офлайн в сървра, името на играча и на кое място седи той в сървъра, както и неговото умение. Над умението се изписва по какво се ранкват играчите по подразбиране, зададено от конфигурационния файл. На по-долния ред показва ранк статуса на играча, в прочие, изображението на текущия му ранк, XP бар-а и нужното XP до следващ ранк и изображението на следващия му ранк. Под тях са "highlight-ите" на играча. Колко пъти е бил най-ценен играч, колко спечелени рунда има, колко заложени, експлодирали и обезвредени бомби има.
- Във втората колона са изброени основните статистики на играча. Тя се състои от следните неща: Убийства, Умирания, Асистенции, Удари в главата (и проценти), Коефициент Умирания/Убийства, Изстрели, Удари, Щети, Проценти Точност, Проценти Ефективност, Първи логин в сървъра, Последен логин в сървъра и Изиграно Време.
- Третата колона се отнася за топ 5 любими оръжия на играча. В нея ще се показват изображения на петте оръжия, с които играчът е направил най-много убийства, както и техния брой и име отляво.
- [size=125]Map End Stats[/size]
[You must be registered and logged in to see this image.]
Така изглежда статистиката, която ще се показва на края на всяка карта. Най-отгоре в центъра е заглавието на статистиката, под него вляво е името на самата играна карта. Под картата изписва кой отбор е победил, тоест отбора, направил най-голям брой резултати. Ако резултатът между двата отбора е равен, то ще изписва Match Draw по подразбиране. Под това е таблицата на самата статистика. В нея са показани Топ играчите на мача и купите за първите три места. Както при top15, тук също показва онлайн/офлайн индикатор на играча, флаг, стийм аватар и иконка, и дали той е нов. Вдясно на него показва неговите убийства, умирания, Коефициент Умирания/Убийства, Най-Ценен Играч и ранк.. Под топ статистиката се намира индивидуалната статистиката на играчът. Там се изписва колко убийства и умирания е направил, и също колко общо XP е получил.
Лимита на символи за всеки мотд екран е НЕОГРАНИЧЕН. Всички те се настройват от файл с .php разширение. Също така, МОТД екраните се показват правилно на всички резолюции както при стийм, така и при нон-стийм. При стийм се показват цялостно, без скрол за всяка една резолюция от типа "normal" и "widescreen". [size=150]Снимки на МОТД екраните за non-steam, може да видите от тук: ЦЪК[/size]
[/hr] ❯ [size=150]Web Stats:[/size]Към системата има добавен web stats, чрез който лесно може да си добавяте сървъри, на които да се разглеждат техните статистики. Така изглежда и самата страница с 5 примерни добавени сървъра: [You must be registered and logged in to see this image.]Натискането на сървър ще покаже iframe на top15 на съответния сървър по този начин.
[/hr] ❯ [size=150]Stats Viewer:[/size]Към системата има добавено меню за преглеждане на статистиките на другите играчи, които играят в момента във сървъра. Когато цъкнете върху даден играч, ще се отвори Rank Stats motd екрана със статистиките на съотвения играч. Може да подредите играчите в менюто по XP, Убийства, Най-Ценен Играч, Спечелени Рунда, Заложени Бомби, Експлодирали Бомби, Обезвредени Бомби, Изиграно Време и Умение. [You must be registered and logged in to see this image.]
[/hr] ❯ [size=150] Настройки:[/size] [You must be registered and logged in to see this image.]Както споменах в описанието, системата разполага с конфигурационен файл за лесно настройване на всичко. В него ще видите различни секции. Под всяка секция са дадени всички настройки, които се отнасят за съответната секция. Това е списъка с всички секции, тяхните настройки, стойности по подразбиране и кратко описание относно тях: - [MySQL]
Вашата MySQL информация.
- MYSQL_HOST = 127.0.0.1
- MYSQL_USER = root
- MYSQL_PASSWORD =
- MYSQL_DATABASE = amx
- MYSQL_TABLE = rank_system
- MYSQL_TABLE2 = weapon_kills
- MYSQL_TABLE3 = map_stats
- [Настройки]
Вида за запазване на данните на играчите. (0 = запази по име | 1 = запази по IP | 2 = запази по SteamID)
- SAVE_TYPE = 2
Чат префикса за всяко съобщение. ($1 = нормален цвят, $3 = отборен цвят, $4 = зелен цвят)
- CHAT_PREFIX = $3[$4Rank System Ultimate$3]$1
Показва ранк информация за играча в началото на всеки рунд. Неща като с колко ранка се е качил/спаднал, както и дали е влязал/излязал в Топ 15.
- RANK_INFO = 1
Включва/Изключва ранкването на ботовете.
- RANK_BOTS = 1
За колко време играчът предстоял в сървъра се счита като нов (в секунди).
- TIME_NEW = 7200
По какво да се подреждат играчите в top 15 по подразбиране. (0 = XP | 1 = Име | 2 = Убийства | 3 = Асистенции | 4 = Умирания | 5 = Умение | 6 = Глави | 7 = Заложени бомби | 8 = Експлодирали бомби | 9 = Обезвредени бомби | 10 = Спечелени рундове | 11 = Най-ценни играчи)
- DEFAULT_ORDER = 0
Включи/Изключи ранк статус HUD-a.
- HUD_ENABLE = 1
Вида на HUD ранк статуса, ако е вкючен. (0 = HUD | 1 = DHUD)
- HUD_TYPE = 0
HUD ранк статус информацията на играча.
- HUD_INFO = Name: %name% %newline%Level: %level% / %max_levels% %newline%XP: %xp% / %next_xp% %newline%Rank: %rank% %newline%Current Session: %minutes%min %seconds%sec %newline%Server Rank: %server_rank% / %max_server_ranks% %newline%Skill: [%skill% %skill_range%]
HUD ранк статус информацията на играча ако той е достигнал последното ниво.
- HUD_INFO_MAX = Name: %name% %newline%Level: %level% %newline%XP: %xp% %newline%Rank: %rank% %newline%Server Rank: %server_rank% / %max_server_ranks% %newline%Skill: [%skill% %skill_range%]
Стойности на HUD съощението. (червено, зелено, синьо, позиция X, позиция Y)
- HUD_VALUES = -1 255 -1 0.01 0.15
Вида на показване на съобщението, когато играчът вдигне/спадне ранк. (0 = всички в сървъра го виждат | 1 = само той си го вижда)
- LEVEL_MESSAGE_TYPE = 0
Ефект на екрана при вдигане на ранк. (червено, зелено, синьо, яркост, времетраене)
- LEVELUP_EFFECTS = 0 255 0 75 1.0
Звукът при вдигане на ранк. (празно = няма звук)
- LEVELUP_SOUND = warcraft3/levelupcaster.wav
Ефект на екрана при спадане на ранк. (червено, зелено, синьо, яркост, времетраене)
- LEVELDN_EFFECTS = 255 0 0 75 1.0
Звукът при спадане на ранк. (празно = няма звук)
- LEVELDN_SOUND = warcraft3/purgetarget1.wav
Стойности относно асистенциите, те са колко минимална щета трябва да направи играчът, за да се счита за асистент и колко пари да получава при асистенция.
- ASSIST_VALUES = 40 100
Включи/Изключи HUD-a при получаване на XP.
- XP_HUD_ENABLE = 1
Включи/Изключи HUD-a при получаване на отборно XP.
- XP_HUD_TEAM_ENABLE = 1
Вида на HUD-a при получаване на XP, ако е включен. (0 = HUD | 1 = DHUD)
- XP_HUD_TYPE = 1
Вида на HUD-a при получаване на отборно XP, ако е включен. (0 = HUD | 1 = DHUD)
- XP_HUD_TEAM_TYPE = 1
Съобщението при получаване на XP.
- XP_HUD_GET = +%xp% XP
Съобщението при получаване на отборно XP.
- XP_HUD_TEAM_GET = +%xp% Team XP
Съобщението при губене на XP.
- XP_HUD_LOSE = -%xp% XP
Съобщението при губене на отборно XP.
- XP_HUD_TEAM_LOSE = -%xp% Team XP
Стойности на XP HUD съобщението (червено, зелено, синьо, позиция X, позиция Y, ефекти (0 = без ефект | 1 = премигване | 2 = пишеща машина), времетраене)
- XP_HUD_VALUES = 0 255 255 0.85 0.70 0 1.0
Стойности на отборното XP HUD съобщение (червено, зелено, синьо, позиция X, позиция Y, ефекти (0 = без ефект | 1 = премигване | 2 = пишеща машина), времетраене)
- XP_HUD_TEAM_VALUES = 0 255 255 0.85 0.75 0 1.0
Включи/Изключи MVP HUD съобщението.
- MVP_HUD_ENABLE = 1
Вида на MVP HUD съобщението, ако е включен. (0 = HUD | 1 = DHUD)
- MVP_HUD_TYPE = 0
Стойности на MVP HUD съобщението (червено, зелено, синьо, позиция X, позиция Y)
- MVP_HUD_VALUES = 0 255 255 0.85 0.70
- [Команди]
- Комадите за отваряне на RankStats motd-то.
- STATS_COMMANDS = say /statsme, say_team /statsme, say /rankstats, say_team /rankstats
Командите за отваряне на Stats Viewer менюто.
- STATSVIEWER_COMMANDS = say /stats, say_team /stats, say /statslist, say_team /statslist, say /statsviewer, say_team /statsviewer, say /sw, say_team /sw
Командите за показване на XP информацията на играча в чата. [You must be registered and logged in to see this image.]
- XP_COMMANDS = say /xp, say_team /xp, say /level, say_team /level
Командите за показване на ранк информацията на играча в чата. [You must be registered and logged in to see this image.]
- RANK_COMMANDS = say /rank, say_team /rank, say /skill, say_team /skill
Командите за включване/изключване на HUD ранк статус съобщението на играча.
- HUDINFO_COMMANDS = say /hudinfo, say_team /hudinfo
- [Ранкове]
В тази секция се добавят вашите ранкове. Употреба: Името на ранка = Нужното XP Лимитът за добавяне на ранкове е неограничен.
- n/a = 0
Silver I = 50 Silver II = 100 Silver III = 250 Silver IV = 500 Silver Elite = 750 Silver Elite Master = 1000 Gold Nova I = 1250 Gold Nova II = 1500 Gold Nova III = 2000 Gold Nova Master = 2500 Master Guardian = 3000 Master Guradian II = 4000 Master Guardian Elite = 5000 Distinguished Master Guardian = 6000 Legendary Eagle = 8000 Legendary Eagle Master = 10000 Supreme Master First Class = 12500 Global Elite = 15000
- [Умения]
В тази секция се добавят вашите умения. Употреба: Името на умението = Нужният диапазон Диапазонът на умение на играча се изчислява по следната формула: 100.0 * Убийства / (Убийства + Умирания) Лимитът за добавяне на умения е неограничен.
- N- = 0.00
N = 10.00 N+ = 15.00 A- = 20.00 A = 30.00 A+ = 35.00 V- = 40.00 V = 50.00 V+ = 55.00 E- = 60.00 E = 70.00 E+ = 75.00 M- = 80.00 M = 90.00 M+ = 95.00
- [XP Награди]
Тук се намират XP наградите. Списък с всички ключови думи: kill, headshot, assist, blind, bomb_plant, bomb_defuse, bomb_explode, team_kill, suicide, t_win, ct_win, t_lose, ct_lose, vip, vip_flags, името на оръжието (knife, usp, ak47 т.н.) Употреба: ключова дума = 'XP' 'Отборно XP'. Например: bomb defuse = 10 20 ще дава 30 XP (10+20) на играчът, обезвредил бомбата + 20 отборно XP. Отборното XP не е задължително. Стойностите на ключовите думи headshot ,blind и името на оръжието се прибавят към стойността на kill. Пример: kill = 5, headshot = 3 и blind = 2 ще ви даде 10 XP при Headshot, ако сте заслепен. Стойността на ключовата дума vip се добавя към стойността на всички ключови думи.
- kill = 5
headshot = 3 assist = 2 blind = 2 knife = 5 grenade = 8 bomb_plant = 10 3 bomb_defuse = 15 5 bomb_explode = 10 3 team_kill = -7 suicide = -10 vip = 2 vip_flags = r
[/hr] ❯ [size=150]Админ команди:[/size]Към системата има добавени само 3 админ команди. И трите изискват админите да са с флаг ADMIN_RCON. - rsu_give_xp <име|#userid> <стойност> -- Дава XP на посочен играч.
- rsu_reset_stats <име> -- Рестартира статистиките на посочен играч.
- rsu_reset_tables -- Занулява MySQL таблиците.
[/hr] ❯ [size=150]API[/size]:Системата разполага със собствена библиотека ranksultimate.inc, която важи за направата на подплъгини. Ето един примерен елементарен подплъгин който при всеки удар дава +15 XP на играчът и +5 на отбора ако той е CT. - Код:
-
#include <amxmodx> #include <hamsandwich> #include <ranksultimate>
public plugin_init() { RegisterHam(Ham_TakeDamage, "player", "hamDamage") }
public hamDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iDmgBits) { if(!is_user_connected(iVictim) || !is_user_connected(iAttacker) || iAttacker == iVictim || get_user_team(iAttacker) == get_user_team(iVictim)) { return }
rsu_give_user_xp(iAttacker, 15) rsu_give_team_xp(2, 5) } Списък с всички нативи: - rsu_user_level_updated(индекс, ниво, bool:levelup) -- Извиква се когато нивото на клиента се промени.
- @параметър индекс -- Индекса на клиента.
- @параметър ниво -- Новото ниво.
- @параметър levelup -- True ако клиента качи ниво, false ако спадне.
- @не връща нищо
rsu_user_xp_updated(индекс, xp, bool:teamxp) -- Извиква се когато XP-то на клиента се промени. @параметър индекс -- Индекса на клиента. @параметър xp -- XP-то. @параметър teamxp -- True ако полученото XP е отборно, false ако не е. @не връща нищо rsu_get_user_xp(индекс) -- Връща текущото XP на клиента. @параметър индекс -- Индекса на клиента. @връща -- Текущото XP на клиента. rsu_get_user_next_xp(индекс) -- Връща XP-то на следващия ранк на клиента. @параметър индекс -- Индекса на клиента. @връща -- XP-то на следващия ранк на клиента. rsu_get_user_level(индекс) -- Връща текущото ниво на клиента. @параметър индекс -- Индекса на клиента. @връща -- Текущото ниво на клиента. rsu_get_user_kills(индекс) -- Връща общия брой убийства на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой убийства на клиента. rsu_get_user_deaths(индекс) -- Връща общия брой умирания на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой умирания на клиента. rsu_get_user_headshots(индекс) -- Връща общия брой удари в главите на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой на удари в главите на клиента. rsu_get_user_assists(индекс) -- Връща общия брой асистенции на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой асистенции на клиента. rsu_get_user_shots(индекс) -- Връща общия брой изстрели на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой изстрели на клиента. rsu_get_user_hits(индекс) -- Връща общия брой удари на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой удари на клиента. rsu_get_user_damage(индекс) -- Връща общия брой щети нанесал клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой щети нанесал клиента. rsu_get_user_mvp(индекс) -- Връща общия брой MVP на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой MVP на клиента. rsu_get_user_rounds_won(индекс) -- Връща общия брой спечелени рунда на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой спечелени рунда на клиента. rsu_get_user_bombs_planted(индекс) -- Връща общия брой заложени бомби на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой заложени бомби на клиента. rsu_get_user_bombs_exploded(индекс) -- Връща общия брой експлодирали бомби на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой вксплодирали бомби на клиента. rsu_get_user_bombs_defused(индекс) -- Връща общия брой обезвредени бомби на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общия брой обезвредени бомби на клиента. rsu_get_user_played_time(индекс) -- Връща общото изиграно време на клиента. @параметър индекс -- Индекса на клиента. @връща -- Общото изиграно време на клиента. rsu_get_rank_by_level(ниво, буфер[], дължина) -- Връща името на ранка, съотвестващ на специфично ниво. @параметър ниво -- Нивото. @параметър буфер -- Буфера, в който да се store-ва името. @параметър индекс -- Максималната дължина на буфера. @не връща нищо rsu_get_user_rank(индекс, буфер[], дължина) -- Връща името на текущия ранк на клиента. @параметър индекс -- Индекса на клиента. @параметър буфер -- Буфера, в който да се store-ва името. @параметър индекс -- Максималната дължина на буфера. @не връща нищо rsu_get_user_skill(индекс, буфер[], дължина) -- Връща името на текущото умение на клиента. @параметър индекс -- Индекса на клиента. @параметър буфер -- Буфера, в който да се store-ва името. @параметър индекс -- Максималната дължина на буфера. @не връща нищо rsu_get_user_skill_range(индекс) -- Връща диапазона на умение на играча във вид на float. @параметър индекс -- Индекса на клиента. @връща -- Диапазона на умение на играча. rsu_get_user_server_rank(индекс) -- Връща текущия ранк в сървъра на клиента. @параметър индекс -- Индекса на клиента. @връща -- Текущия ранк в сървъра на клиента. rsu_get_max_levels() -- Връща максималния брой на всички нива. @връща -- Максималния брой на всички нива. rsu_get_max_server_ranks() -- Връща максималния брой ранкове в сървъра. @параметър индекс -- Индекса на клиента. @връща -- Максималния брой ранкове в сървъра. rsu_give_user_xp(индекс, стойност = 0) -- Дава специфична стойнст XP на клиента. @параметър индекс -- Индекса на клиента. @параметър стойност -- XP стойност. @връща -- Стойността на XP-то. rsu_give_team_xp(отбор, стойност = 0) -- Дава специфична стойнст XP на специфичен отбор. @параметър отбор -- Отбора. (0 - няма, 1 - терористи, 2 - контра-терористи, 3 - наблюдатели) @параметър стойност -- XP стойност. @връща -- Стойността на XP-то. rsu_reset_stats() -- Занулява MySQL таблиците.
[/hr] ❯ [size=150] Цена: 35€[/size] В архива, който ще получите има 2 папки. В едната plugin е самият плъгин, в прочие, конфигурационния файл, lang файла, библиотеките и .sma кода (без .amxx). В другата папка, която е web се състои от всички .php файлове, както и техните css stylesheet-ове и изображеня. Също разбира се и конфигурационния файл, както и компонтентите GeoIP и LGSL. Папката web трябва да бъде качена на вашия уеб сайт.
[/hr] Плащането става само и единствено чрез PayPal. Разбира се, предлагам пълна поддръжка на плъгина, както и БЕЗПЛАТНИ ъпдейти. За поръчки може да ми пишете: - Тук във форума на лично съобщение.
- В Discord Tornado_SW#4983
[size=150]Сървъри използващи плъгина:[/size][size=150] тук[/size] |
|