simsen
Użytkownik-
Postów
12 -
Dołączył
-
Ostatnia wizyta
Treść opublikowana przez simsen
-
Wystarczy dodać ją do maplist.txt w folderze csgo, albo usunąć wszystkie mapy z tego pliku wtedy sourcemod robi listę automatycznie ze wszystkich które są w folderze maps
-
Tutaj jest najnowsza działająca i aktualizowana wersja: https://github.com/Silenci0/UMC wystarczy dobrze skonfigurować i na pewno działa, bo używam na każdym serwerze.
-
U mnie normalnie działa, ca prawda wystarczyło usunąć 2 linijki kodu odpowiadającego za game-me, więc nie psuje to działania pluginu, oczywiście jeżeli nie masz zamiaru używać gameme. Poniżej masz kod który użyłem do kompilacji, a w załącznikach include i sp, jeżeli nie uda ci się samemu to gotowy skompilowany smx. new 6.smxnew 6.sp #include <sourcemod> #include <sdkhooks> #include <sdktools> #include <cstrike> #include <clientprefs> #include <overlays> #undef REQUIRE_PLUGIN #include <kento_rankme/rankme> #include <gameme> #include <zr_rank> #include <hlstatsx_api> #define REQUIRE_PLUGIN #pragma newdecls required #pragma semicolon 1 int rank[MAXPLAYERS+1] = {0, ...}; int oldrank[MAXPLAYERS+1] = {0, ...}; // ConVar Variables ConVar g_CVAR_RanksPoints[18]; ConVar g_CVAR_RankPoints_Type; ConVar g_CVAR_RankPoints_Flag; ConVar g_CVAR_RankPoints_Prefix; ConVar g_CVAR_RankPoints_HudOverlay; ConVar g_CVAR_RankPoints_OverlayTime; ConVar g_CVAR_RankPoints_SoundEnable; ConVar g_CVAR_RankPoints_SoundRankUp; ConVar g_CVAR_RankPoints_SoundRankDown; // Variables to store ConVar values; int g_RankPoints_Type; int g_RankPoints_Flag; int g_RankPoints_HudOverlay; int g_RankPoints_SoundEnable; float g_RankPoints_OverlayTime; char g_RankPoints_SoundRankUp[PLATFORM_MAX_PATH]; char g_RankPoints_SoundRankDown[PLATFORM_MAX_PATH]; char g_RankPoints_Prefix[40]; int RankPoints[18]; bool g_zrank; bool g_kentorankme; bool g_gameme; bool g_hlstatsx; char RankStrings[19][256]; char RankOverlays[18][PLATFORM_MAX_PATH]; public Plugin myinfo = { name = "[CS:GO] Matchmaking Ranks by Points", author = "Hallucinogenic Troll", description = "Prints the Matchmaking Ranks on scoreboard, based on points stats by a certain rank.", version = "1.6", url = "https://PTFun.net/" }; public void OnPluginStart() { RegConsoleCmd("sm_mm", Menu_Points); HookEvent("announce_phase_end", Event_AnnouncePhaseEnd); HookEvent("player_death", Event_PlayerDeath); HookEvent("player_disconnect", Event_Disconnect, EventHookMode_Pre); // ConVar to check which rank you want g_CVAR_RankPoints_Type = CreateConVar("ranks_matchmaking_typeofrank", "0", "Type of Rank that you want to use for this plugin (0 for Kento Rankme, 1 for GameMe, 2 for ZR Rank, 3 for HLStatsX)", _, true, 0.0, true, 3.0); g_CVAR_RankPoints_Prefix = CreateConVar("ranks_matchmaking_prefix", "[{purple}Fake Ranks{default}]", "Chat Prefix"); g_CVAR_RankPoints_Flag = CreateConVar("ranks_matchmaking_flag", "", "Flag to restrict the ranks to certain players (leave it empty to enable for everyone)"); g_CVAR_RankPoints_HudOverlay = CreateConVar("ranks_matchmaking_hudoverlay" , "1", "Chooses between a HUD Text Message (0) or an Overlay (1)", _, true, 0.0, true, 1.0); g_CVAR_RankPoints_OverlayTime = CreateConVar("ranks_matchmaking_overlaytime", "5.0", "Time between showing and deleting the overlay (need \"ranks_matchmaking_hudoverlay\" set to 1). 0.0 means forever", _, true, 0.0, false); g_CVAR_RankPoints_SoundEnable = CreateConVar("ranks_matchmaking_soundenable", "1", "Enable sounds when a player ranks up or deranks", _, true, 0.0, true, 1.0); g_CVAR_RankPoints_SoundRankUp = CreateConVar("ranks_matchmaking_soundrankup", "levels_ranks/levelup.mp3", "Path to the sound which will play on Rank Up (needs \"ranks_matchmaking_soundenable\" set to 1)"); g_CVAR_RankPoints_SoundRankDown = CreateConVar("ranks_matchmaking_soundrankdown", "levels_ranks/leveldown.mp3", "Path to the sound which will play on Derank (needs \"ranks_matchmaking_soundenable\" set to 1)"); // Rank Points ConVars; g_CVAR_RanksPoints[0] = CreateConVar("ranks_matchmaking_point_s1", "1000", "Number of Points to reach Silver I", _, true, 0.0, false); g_CVAR_RanksPoints[1] = CreateConVar("ranks_matchmaking_point_s2", "1100", "Number of Points to reach Silver II", _, true, 0.0, false); g_CVAR_RanksPoints[2] = CreateConVar("ranks_matchmaking_point_s3", "1200", "Number of Points to reach Silver III", _, true, 0.0, false); g_CVAR_RanksPoints[3] = CreateConVar("ranks_matchmaking_point_s4", "1300", "Number of Points to reach Silver IV", _, true, 0.0, false); g_CVAR_RanksPoints[4] = CreateConVar("ranks_matchmaking_point_se", "1400", "Number of Points to reach Silver Elite", _, true, 0.0, false); g_CVAR_RanksPoints[5] = CreateConVar("ranks_matchmaking_point_sem", "1500", "Number of Points to reach Silver Elite Master", _, true, 0.0, false); g_CVAR_RanksPoints[6] = CreateConVar("ranks_matchmaking_point_g1", "1700", "Number of Points to reach Gold Nova I", _, true, 0.0, false); g_CVAR_RanksPoints[7] = CreateConVar("ranks_matchmaking_point_g2", "1900", "Number of Points to reach Gold Nova II", _, true, 0.0, false); g_CVAR_RanksPoints[8] = CreateConVar("ranks_matchmaking_point_g3", "2100", "Number of Points to reach Gold Nova III", _, true, 0.0, false); g_CVAR_RanksPoints[9] = CreateConVar("ranks_matchmaking_point_g4", "2300", "Number of Points to reach Gold Nova IV", _, true, 0.0, false); g_CVAR_RanksPoints[10] = CreateConVar("ranks_matchmaking_point_mg1", "2500", "Number of Points to reach Master Guardian I", _, true, 0.0, false); g_CVAR_RanksPoints[11] = CreateConVar("ranks_matchmaking_point_mg2", "2700", "Number of Points to reach Master Guardian II", _, true, 0.0, false); g_CVAR_RanksPoints[12] = CreateConVar("ranks_matchmaking_point_mge", "2900", "Number of Points to reach Master Guardian Elite", _, true, 0.0, false); g_CVAR_RanksPoints[13] = CreateConVar("ranks_matchmaking_point_dmg", "3100", "Number of Points to reach Distinguished Master Guardian", _, true, 0.0, false); g_CVAR_RanksPoints[14] = CreateConVar("ranks_matchmaking_point_le", "3300", "Number of Points to reach Legendary Eagle", _, true, 0.0, false); g_CVAR_RanksPoints[15] = CreateConVar("ranks_matchmaking_point_lem", "3500", "Number of Points to reach Legendary Eagle Master", _, true, 0.0, false); g_CVAR_RanksPoints[16] = CreateConVar("ranks_matchmaking_point_smfc", "3700", "Number of Points to reach Supreme Master First Class", _, true, 0.0, false); g_CVAR_RanksPoints[17] = CreateConVar("ranks_matchmaking_point_ge", "3900", "Number of Points to reach Global Elite", _, true, 0.0, false); LoadTranslations("ranks_matchmaking.phrases"); AutoExecConfig(true, "ranks_matchmaking"); } public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max) { MarkNativeAsOptional("ZR_Rank_GetPoints"); MarkNativeAsOptional("RankMe_OnPlayerLoaded"); MarkNativeAsOptional("RankMe_GetPoints"); MarkNativeAsOptional("QueryGameMEStats"); return APLRes_Success; } public void OnLibraryAdded(const char[] name) { if (StrEqual(name, "zr_rank")) { g_zrank = true; } else if (StrEqual(name, "rankme")) { g_kentorankme = true; } else if(StrEqual(name, "gameme")) { g_gameme = true; } else if (StrEqual(name, "hlstatsx_api")) { g_hlstatsx = true; } } public void OnLibraryRemoved(const char[] name) { if (StrEqual(name, "zr_rank")) { g_zrank = false; } else if(StrEqual(name, "rankme")) { g_kentorankme = false; } else if(StrEqual(name, "gameme")) { g_gameme = false; } else if (StrEqual(name, "hlstatsx_api")) { g_hlstatsx = false; } } public void OnMapStart() { for (int i = 0; i < 18; i++) RankPoints[i] = g_CVAR_RanksPoints[i].IntValue; g_RankPoints_HudOverlay = g_CVAR_RankPoints_HudOverlay.IntValue; g_RankPoints_OverlayTime = g_CVAR_RankPoints_OverlayTime.FloatValue; g_CVAR_RankPoints_Prefix.GetString(g_RankPoints_Prefix, sizeof(g_RankPoints_Prefix)); g_RankPoints_SoundEnable = g_CVAR_RankPoints_SoundEnable.IntValue; g_CVAR_RankPoints_SoundRankUp.GetString(g_RankPoints_SoundRankUp, sizeof(g_RankPoints_SoundRankUp)); g_CVAR_RankPoints_SoundRankDown.GetString(g_RankPoints_SoundRankDown, sizeof(g_RankPoints_SoundRankDown)); char buffer[10]; g_CVAR_RankPoints_Flag.GetString(buffer, sizeof(buffer)); if(StrEqual(buffer, "0") || strlen(buffer) < 1) g_RankPoints_Flag = -1; else g_RankPoints_Flag = ReadFlagString(buffer); g_RankPoints_Type = g_CVAR_RankPoints_Type.IntValue; int iIndex = FindEntityByClassname(MaxClients+1, "cs_player_manager"); if (iIndex == -1) SetFailState("Unable to find cs_player_manager entity"); SDKHook(iIndex, SDKHook_ThinkPost, Hook_OnThinkPost); GetRanksNames(); if(g_RankPoints_HudOverlay) GetRanksOverlays(); if(g_RankPoints_SoundEnable) GetRanksGradesSounds(); } public void GetRanksGradesSounds() { char buffer[PLATFORM_MAX_PATH]; Format(buffer, sizeof(buffer), "sound/%s", g_RankPoints_SoundRankUp); AddFileToDownloadsTable(buffer); Format(buffer, sizeof(buffer), "*/%s", g_RankPoints_SoundRankUp); FakePrecacheSound(buffer); Format(buffer, sizeof(buffer), "sound/%s", g_RankPoints_SoundRankDown); AddFileToDownloadsTable(buffer); Format(buffer, sizeof(buffer), "*/%s", g_RankPoints_SoundRankDown); FakePrecacheSound(buffer); } public void GetRanksOverlays() { for(int i = 0; i < 18; i++) { Format(RankOverlays[i], sizeof(RankOverlays[]), "lvl_overlays/overlay_hd_%d", (i+1)); PrecacheDecalAnyDownload(RankOverlays[i]); } } public void GetRanksNames() { FormatEx(RankStrings[0], sizeof(RankStrings[]), "%t", "Unranked"); FormatEx(RankStrings[1], sizeof(RankStrings[]), "%t", "Silver I"); FormatEx(RankStrings[2], sizeof(RankStrings[]), "%t", "Silver II"); FormatEx(RankStrings[3], sizeof(RankStrings[]), "%t", "Silver III"); FormatEx(RankStrings[4], sizeof(RankStrings[]), "%t", "Silver IV"); FormatEx(RankStrings[5], sizeof(RankStrings[]), "%t", "Silver Elite"); FormatEx(RankStrings[6], sizeof(RankStrings[]), "%t", "Silver Elite Master"); FormatEx(RankStrings[7], sizeof(RankStrings[]), "%t", "Gold Nova I"); FormatEx(RankStrings[8], sizeof(RankStrings[]), "%t", "Gold Nova II"); FormatEx(RankStrings[9], sizeof(RankStrings[]), "%t", "Gold Nova III"); FormatEx(RankStrings[10], sizeof(RankStrings[]), "%t", "Gold Nova Master"); FormatEx(RankStrings[11], sizeof(RankStrings[]), "%t", "Master Guardian I"); FormatEx(RankStrings[12], sizeof(RankStrings[]), "%t", "Master Guardian II"); FormatEx(RankStrings[13], sizeof(RankStrings[]), "%t", "Master Guardian Elite"); FormatEx(RankStrings[14], sizeof(RankStrings[]), "%t", "Distinguished Master Guardian"); FormatEx(RankStrings[15], sizeof(RankStrings[]), "%t", "Legendary Eagle"); FormatEx(RankStrings[16], sizeof(RankStrings[]), "%t", "Legendary Eagle Master"); FormatEx(RankStrings[17], sizeof(RankStrings[]), "%t", "Supreme First Master Class"); FormatEx(RankStrings[18], sizeof(RankStrings[]), "%t", "Global Elite"); } public Action RankMe_OnPlayerLoaded(int client) { if(g_kentorankme && g_RankPoints_Type == 0) { int points = RankMe_GetPoints(client); CheckRanks(client, points); } } public void OnClientPostAdminCheck(int client) { if (IsValidClient(client)) { if (g_gameme && g_RankPoints_Type == 1) { } else if (g_zrank && g_RankPoints_Type == 2) { int points = ZR_Rank_GetPoints(client); CheckRanks(client, points); } else if (g_hlstatsx && g_RankPoints_Type == 3) { HLStatsX_Api_GetStats("playerinfo", client, _HLStatsX_API_Response, 0); } } } public int QuerygameMEStatsCallback(int command, int payload, int client, Handle &datapack) { if ((client > 0) && (command == RAW_MESSAGE_CALLBACK_PLAYER)) { Handle data2 = CloneHandle(datapack); ResetPack(data2); int points; points = ReadPackCell(data2); points = ReadPackCell(data2); points = ReadPackCell(data2); CloseHandle(data2); CheckRanks(client, points); } } public void _HLStatsX_API_Response(int command, int payload, int client, DataPack &datapack) { if (!IsValidClient(client) || command != HLX_CALLBACK_TYPE_PLAYER_INFO) { return; } DataPack pack = view_as<DataPack>(CloneHandle(datapack)); int points; points = pack.ReadCell(); points = pack.ReadCell(); delete datapack; delete pack; CheckRanks(client, points); } public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast) { int victim = GetClientOfUserId(event.GetInt("userid")); if(IsValidClient(victim)) CheckPoints(victim); int attacker = GetClientOfUserId(event.GetInt("attacker")); if(IsValidClient(attacker)) CheckPoints(attacker); int assister = GetClientOfUserId(event.GetInt("assister")); if(IsValidClient(assister)) CheckPoints(assister); } public Action Event_Disconnect(Event event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(event.GetInt("userid")); if(client) rank[client] = 0; } public void CheckPoints(int client) { if (g_kentorankme && g_RankPoints_Type == 0) { int points = RankMe_GetPoints(client); CheckRanks(client, points); } else if (g_gameme && g_RankPoints_Type == 1) { } else if (g_zrank && g_RankPoints_Type == 2) { int points = ZR_Rank_GetPoints(client); CheckRanks(client, points); } else if (g_hlstatsx && g_RankPoints_Type == 3) { HLStatsX_Api_GetStats("playerinfo", client, _HLStatsX_API_Response, 0); } } public void CheckRanks(int client, int points) { if(g_RankPoints_Flag != -1) { if(!CheckCommandAccess(client, "", g_RankPoints_Flag, true)) { rank[client] = 0; return; } } // Unranked if(points < RankPoints[0]) rank[client] = 0; else if(points >= RankPoints[0] && points < RankPoints[1]) // Silver I rank[client] = 1; else if(points >= RankPoints[1] && points < RankPoints[2]) // Silver II rank[client] = 2; else if(points >= RankPoints[2] && points < RankPoints[3]) // Silver III rank[client] = 3; else if(points >= RankPoints[3] && points < RankPoints[4]) // Silver IV rank[client] = 4; else if(points >= RankPoints[4] && points < RankPoints[5]) // Silver Elite rank[client] = 5; else if(points >= RankPoints[5] && points < RankPoints[6]) // Silver Elite Master rank[client] = 6; else if(points >= RankPoints[6] && points < RankPoints[7]) // Gold Nova I rank[client] = 7; else if(points >= RankPoints[7] && points < RankPoints[8]) // Gold Nova II rank[client] = 8; else if(points >= RankPoints[8] && points < RankPoints[9]) // Gold Nova III rank[client] = 9; else if(points >= RankPoints[9] && points < RankPoints[10]) // Gold Nova Master rank[client] = 10; else if(points >= RankPoints[10] && points < RankPoints[11]) // Master Guardian I rank[client] = 11; else if(points >= RankPoints[11] && points < RankPoints[12]) // Master Guardian II rank[client] = 12; else if(points >= RankPoints[12] && points < RankPoints[13]) // Master Guardian Elite rank[client] = 13; else if(points >= RankPoints[13] && points < RankPoints[14]) // Distinguished Master Guardian rank[client] = 14; else if(points >= RankPoints[14] && points < RankPoints[15]) // Legendary Eagle rank[client] = 15; else if(points >= RankPoints[15] && points < RankPoints[16]) // Legendary Eagle Master rank[client] = 16; else if(points >= RankPoints[16] && points < RankPoints[17]) // Supreme Master First Class rank[client] = 17; else if(points >= RankPoints[17]) // Global Elite rank[client] = 18; if(rank[client] > oldrank[client] && rank[client] > 0) { switch(g_RankPoints_HudOverlay) { case 0: { SetHudTextParams(-1.0, 0.125, 5.0, 255, 255, 255, 255, 0, 0.25, 1.5, 0.5); ShowHudText(client, 5, "%t", "Rank Up", RankStrings[rank[client]]); } case 1: { ShowOverlay(client, RankOverlays[rank[client] - 1], g_RankPoints_OverlayTime); } } if(g_RankPoints_SoundEnable) { ClientCommand(client, "playgamesound Music.StopAllMusic"); EmitSoundToClient(client, g_RankPoints_SoundRankUp, SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, 0.75); } } if(rank[client] < oldrank[client] && rank[client] > 0) { switch(g_RankPoints_HudOverlay) { case 0: { SetHudTextParams(-1.0, 0.125, 5.0, 255, 255, 255, 255, 0, 0.25, 1.5, 0.5); ShowHudText(client, 5, "%t", "Rank Down", RankStrings[rank[client]]); } case 1: { ShowOverlay(client, RankOverlays[rank[client] - 1], g_RankPoints_OverlayTime); } } if(g_RankPoints_SoundEnable) { ClientCommand(client, "playgamesound Music.StopAllMusic"); EmitSoundToClient(client, g_RankPoints_SoundRankDown, SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, 0.75); } } oldrank[client] = rank[client]; } public void Hook_OnThinkPost(int iEnt) { static int iRankOffset = -1; if (iRankOffset == -1) iRankOffset = FindSendPropInfo("CCSPlayerResource", "m_iCompetitiveRanking"); int iRank[MAXPLAYERS+1]; for (int i = 1; i <= MaxClients; i++) { if(IsValidClient(i)) { iRank[i] = rank[i]; SetEntDataArray(iEnt, iRankOffset, iRank, MaxClients+1); } } } public Action Menu_Points(int client, int args) { Menu menu = new Menu(Panel_Handler); char buffer[256]; Format(buffer, sizeof(buffer), "%t", "Rank Menu Title"); menu.SetTitle(buffer); Format(buffer, sizeof(buffer), "%t", "Less Than X Points", RankStrings[0], (RankPoints[0] - 1)); menu.AddItem("1", buffer); char S_i[2]; for(int i = 1; i < 17; i++) { IntToString(i, S_i, sizeof(S_i)); Format(buffer, sizeof(buffer), "%t", "Between X and Y", RankStrings[i], RankPoints[i - 1], (RankPoints[i + 1] - 1)); menu.AddItem(S_i, buffer); } Format(buffer, sizeof(buffer), "%t", "More Than X Points", RankStrings[18], (RankPoints[17] - 1)); menu.AddItem("17", buffer); menu.ExitButton = true; menu.Display(client, 20); } public int Panel_Handler(Menu menu, MenuAction action, int client, int choice) { if(action == MenuAction_Select) { } else if (action == MenuAction_End) { delete menu; } } public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon) { if (buttons & IN_SCORE && !(GetEntProp(client, Prop_Data, "m_nOldButtons") & IN_SCORE)) { Handle hBuffer = StartMessageOne("ServerRankRevealAll", client); if (hBuffer == INVALID_HANDLE) PrintToChat(client, "INVALID_HANDLE"); else EndMessage(); } return Plugin_Continue; } public Action Event_AnnouncePhaseEnd(Handle event, const char[] name, bool dontBroadcast) { Handle hBuffer = StartMessageAll("ServerRankRevealAll"); if (hBuffer == INVALID_HANDLE) PrintToServer("ServerRankRevealAll = INVALID_HANDLE"); else EndMessage(); return Plugin_Continue; } stock bool IsValidClient(int client) { if(client >= 1 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client)) return true; return false; } // https://wiki.alliedmods.net/Csgo_quirks stock void FakePrecacheSound(const char[] szPath) { AddToStringTable(FindStringTable("soundprecache"), szPath); } gameme.inc zr_rank.inc hlstatsx_api.inc
-
Właśnie nie chodzi mi o same mapy, tylko po prostu chciałem zrobić tak żeby wszystko się pobierało z workshopa
-
Witam, wiecie może jak skonfigurować Ultimate Map Chooser, żeby współpracował z workshopem? Próbowałem normalnie do umc_mapcycle dodać zamiast nazwy całą ścieżkę "workshop/id/mapa", ale plugin nie wykrywał wtedy zupełnie mapy.
-
W error logach nic nie masz ?
-
Poszukuje aktualizacji skin i kos
simsen odpowiedział(a) na SerweryCs temat w Prośby o napisanie pluginu
Ciekawe że go używam i od miesiąca i nie dostałem ani jednego bana, ale dobra widzę że lepiej się znacie... -
ROZWIĄZANE Spam pakietami z dziwnych ip i portów.
simsen odpowiedział(a) na Xxcarbon22xX temat w Pytania ogólne
Ja też polecam migracje do innej firmy to odcinanie od steam'a wykończyło kiedyś serwery na których maiłem admina... -
Poszukuje aktualizacji skin i kos
simsen odpowiedział(a) na SerweryCs temat w Prośby o napisanie pluginu
Darmowego nie ma jednak polecam na pisać do franuga za 120zł masz najnowsze kosy z aktualizacjami + antyban'a i nie musisz zmieniać tokenów. -
W csgo>addons>sourcemod>config>core.cfg zmieniasz FollowValveServerGuildlines czy coś takiego na samym dole z yes na no i po restarcie serwera powinno zadziałać.
-
No nie do końca, bo większość tych stron nie oferuje porządnego anty-ddos'a i procesów z odpowiednim taktowaniem rdzenia, a to właśnie jest potrzebne do cs'a... Osobiście polecam https://www.sprintdatacenter.pl pakiety z procesorami v3, korzystam od jakiś 5 miesięcy i jeszcze nie miałem problemów.