Skocz do zawartości
MAGNET

Lista serwerów !serwery [DZIAŁA!]

Rekomendowane odpowiedzi

Opis

 

Przedstawiam plugin, który udostępnia na serwerze komendę !serwery. Wyświetlana jest wówczas lista serwerów (skonfigurowana w pliku *.cfg), z którymi możemy się połączyć bezpośrednio po wybraniu ich z menu

 

Przykładowy plik konfiguracyjny (edycja w sourcemod/configs/ServerList.cfg):

"Serwery"
{
	"CodMod"
	{
		"Name" "[siec.pl] CodMod"
		"IP" "54.38.58.72:27015"
	}
	"AWP"
	{
		"Name" "[siec.pl] AWP"
		"IP" "145.239.24.170:27190"
	}
}

image.png

 

 

Instalacja

 

Do poprawnego działania pluginu potrzebne jest wgranie dodatkowo:

[Redirect] Core
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

LobbySessionFixer
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!
(musi być wgrane na każdym serwerze, którego dodaliśmy do listy!)

PTaH
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

 

Spoiler
#include <sourcemod>
#include <multicolors>
#include <redirect_core>

#define TAG "{purple}[Serwery]{default}"

public void OnPluginStart() {
    RegConsoleCmd("sm_serwery", ListaSerwerow);
}

public Action ListaSerwerow(int client, int args) {
    char nameBuffer[256];
    char ipBuffer[64];
    char pathBuffer[1024];
    BuildPath(Path_SM, pathBuffer, sizeof(pathBuffer), "configs/ServerList.cfg");
    KeyValues kv = new KeyValues("List");
    kv.ImportFromFile(pathBuffer);

    if (!kv.GotoFirstSubKey()) {
        CPrintToChat(client, "%s Brak dostępnych serwerów!", TAG);
        return Plugin_Handled;
    }

    Menu menu = new Menu(ListaSerwerow_Handler);
    menu.SetTitle("Wybierz serwer:");

    do {
        kv.GetString("Name", nameBuffer, sizeof(nameBuffer));
        kv.GetString("IP", ipBuffer, sizeof(ipBuffer));
        menu.AddItem(ipBuffer, nameBuffer);
    }
    while (kv.GotoNextKey(false))

    delete kv;
    menu.Display(client, 0);

    return Plugin_Continue;
}

int IPToNum(const char[] sIP) {
	char sResult[4][4];
	return (ExplodeString(sIP, ".", sResult, 4, 4) == 4) ? GetIP32FromIPv4(sResult) : 0;
}

public int ListaSerwerow_Handler(Menu menu, MenuAction action, int client, int item) {
    switch (action) {
    case MenuAction_Select:
        {
            char IP[64];
            GetMenuItem(menu, item, IP, sizeof(IP));
            int port = -1;
            for (int x = strlen(IP) - 1; x >= 0; x--) {
                if (IP[x] == ':') {
                    port = StringToInt(IP[x + 1]);
                    IP[x] = '\0';
                    break;
                }
            }
            RedirectClientOnServer(client, IPToNum(IP), port);
        }
    case MenuAction_End:
        delete menu;
    }
}

 

 

server_redirect.zip
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No tak i znów cały splendor spłynął na Ciebie, a kto Cię nakierował? 😄 haha
Dobra robota, zaraz wgrywam 😉

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ahh CS:GO w końcu się udało komuś zrobić redirecta. Ciekawe rozwiązanie

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Napisano (edytowane)

del

Edytowane przez szogun

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Teraz, Brum Brum napisał:

Ahh CS:GO w końcu się udało komuś zrobić redirecta. Ciekawe rozwiązanie

 

Ja jedynie użyłem funkcji przekierowania napisanej przez ruskich

 

Posiłkowałem się tym: https://forums.alliedmods.net/showthread.php?p=2686650#post2686650
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 minutę temu, MAGNET napisał:

 

Ja jedynie użyłem funkcji przekierowania napisanej przez ruskich

 

Posiłkowałem się tym: https://forums.alliedmods.net/showthread.php?p=2686650#post2686650
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Nie napisałem, że Ty xD Tylko ogólnie, że ktoś wpadł na dobry i ciekawy pomysł

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ruskie to zaraz Source 2 szybciej wypuszczą niż Valve na ten csgo xd

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Smuci mnie jedynie fakt, że CSGO zaraz zamieni się w dawne CS 1.6 - tzn. jest np. 30/32 graczy, client łączy się z serwerem lecz on zostaje przekierowany na jakiś inny niechciany serwer. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mam pytanie a z tym pluginem gosetti nie banuje reklamy ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wydaje mi się, że ładowanie wartości z KeyValues bezpośrednio do menu za każdym razem, będzie chciało posiłkować się CPU, nie lepiej wepchnąć dane w Array? 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zdecydowanie taka operacja wymaga obliczeń. Ja jednak nie chciałem niepotrzebne zaśmiecać pamięci (nie ma tego dużo, ale jednak kilka stringów tam siedzi). Dodatkowo nie jest to jakoś bardzo wymagające obliczeniowo i, co najważniejsze, nie jest ono wykonywane zbyt często - bo jak często ktoś patrzy na listę serwerów? Myślę, że 20 razy na mapę to sufit

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


×
×
  • Dodaj nową pozycję...