Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

Danix

Użytkownik
  • Postów

    70
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Danix

  1. Godzinę temu, Shazzy napisał:

    Te wszystkie zmienne w nawiase oznaczają parametry, które przyjmuje dana funkcja (które możesz ustawić i będą one używane w takcie wykonywania akcji). Wszystkie opisy za co odpowiada dany parametr masz w dokumentacji, np. https://sm.alliedmods.net/new-api/banning/OnBanClient

     

    no wiem, ale w jaki sposob moge to wykorzystac np. int time

    bo jestem glupi i tegi nie ogarniam, ze mam zmienna uzyc i ez

    znaczy parametry, nie eiem jak uzyc tych parametrow

  2. Witam przychodze z zapytaniem

    jak uzyc tego

    forward Action OnBanClient(int client, int time, int flags, const char[] reason, const char[] kick_message, const char[] command, any source)

    Nie rozumiem jak uzyc tego int time, int flags, jak uzyc to const char, kick)message, lub czegos takiego

    native bool GetCommandLine(char[] commandLine, int maxlen)

    Dokladnie to nie wiem jak uzyc w jakimkolwiek nawiasie intow, charpw itp, itd. Ktos wyjasni pls 

  3. #include <sourcemod>
    #include <sdktools>
    
    public void OnPluginStart(){
        RegConsoleCmd("sm_menubroni", bronie);
    }
    
     public Action bronie(int client, int args){
         Menu gMenu = new Menu(gMenu_Handler);
         gMenu.SetTitle("Wybierz broń!");
         gMenu.AddItem("1", "BROŃ - AK-47");
         gMenu.AddItem("2", "BROŃ - NEGEV");
         gMenu.AddItem("3", "[ON/OFF] wiadomości przy wybieraniu broni");
         gMenu.Display(client, 140000000);
     }
     
     public int gMenu_Handled(Menu menu, MenuAction action, int client, int Position, int a) {
         switch(action)
    	{
    		case MenuAction_Select:
    		{
    			switch(a) {
    				case 0:
    				{
    				    GivePlayerItem(client, "weapon_ak47");
    					 PrintToChat(client, " \x0B [BRONIE] \x04 ★\x02Twoja broń to \x01 AK-47\x04★"); // wybierajac opcje nr3 chcialbym aby ta wiadomosc nie wyswietlala sie, lub jesli juz byly wylaczona to zeby sie wyswietlala
    				}
    					case 1:
    				{
    				    GivePlayerItem(client, "weapon_negev");
    					 PrintToChat(client, " \x0B [BRONIE] \x04 ★\x02Twoja broń to \x01 AK-47\x04★"); // wybierajac opcje nr3 chcialbym aby ta wiadomosc nie wyswietlala sie, lub jesli juz byly wylaczona to zeby sie wyswietlala
    				}
    					case 2:
    				{
    				    FakeClientCommandEx(client, "sm_menubroni");
    				     PrintToChat(client, "\x03 Wiadomości zostały: (wlaczone/wylaczone}");
    				    
    				    // i tu te if powinny byc by wlaczac/wylaczac opcje " gMenu.AddItem("3", "[ON/OFF] wiadomości przy wybieraniu broni");", ze wlaczam wylaczam wiadomosci. cos tam ogarniam te ify, ale nie na tyle by zrobic z tego jakos dzialajaca rzecz
    				}
    			}
    		}
    		case MenuAction_End:
    			delete menu;
    	}
    	return 0;
     }

     

  4. 16 godzin temu, SUPER TIMOR napisał:

    https://sm.alliedmods.net/new-api/helpers/FindTarget

     

     

    Po co kombinować z pętlami, skoro możemy użyć gotowej funkcji FindTarget?

     

    Handler do CMD wyglądałby mniej więcej tak: 

     

    
    public Action CMD_Komenda(int client, int args) {
    	if(args > 1) {
    		ReplyToCommand(client, "Musisz użyć jednego argumentu - nicku gracza!");
    		return Plugin_Handled;
    	}
    	char buffer[64];
    	GetCmdArg(1, buffer, sizeof(buffer));
    	int target = FindTarget(client, arg1);
    	if(target > -1) {
    		char steamID[64];
    		GetClientAuthId(target, AuthId_Steam2, steamID, sizeof(steamID)
    		ReplyToCommand(client, "SteamID gracza %N - %s", target, steamID);
    	}
    	else
    		ReplyToCommand(client, "Nie znaleziono gracza.");
    	return Plugin_Handled;
    }
    

     

    To nie działa  ? Chyba, ze to nie jest w pelni gotowe xD ja rejestruje komende i dodaje includy jak cos

  5. 3 godziny temu, Maroxx napisał:

    robisz pętle po wszystkich graczach na serwerze i sprawdzasz czy wpisany nick zgadza się z jakims graczem na serwerze, jeśli tak to pobierasz jego steamid i wypisujesz na czacie, a jesli nie również możesz wypisać informację na czacie że danego gracza nie ma na serwerze.

    Tak to rozumiem

    #include <sourcemod>
    
    
    
    public Plugin myinfo = {
        name        = "cos",
        author      = "grafit",
        description = "pobiera steamod",
        version     = "0.0.0",
        url         = "jakas siec"
    };
    
    #include <sourcemod>
    
    public void OnPluginStart() {
     
    RegConsoleCmd("sm_steamid", CMD_steamid);
    }
    
    
    /* wyswietla steamid */
    
    petla(all, "*%N*", nick if good download steamid, steamIdBuffer);
    
    
    public Action CMD_steamid(int client, int args) {
    char steamIdBuffer[64];
    GetClientAuthId(client, AuthId_Steam2, steamIdBuffer, sizeof(steamIdBuffer));
    PrintToChat(client, "Twoje STEAMID to: %s ", steamIdBuffer);
    }

    No tak to rozumiem XD jak mowisz ze mam jakies petle robic po wszystkich graczach nie wiem jak to zrobic itd  @Maroxx XD

     

    • Śmieszne 1
  6. 18 godzin temu, emce napisał:

    Patrz! Idziesz do źródła pluginu.. 

     

    https://forums.alliedmods.net/showthread.php?t=299733

     

    czytasz opis i wiesz że za to gdzie ma być ranga masz dane od "mode" lukasz co możesz wstawić? 

     

    "mode"                "both"                // "mode" is identifier. Set tag mode (valid values are: "both" - "scoreboard" - "chat", Default is "both")

     

    I z tego co wnika zamiast both wstawiasz sobie scoreboard. 

     

    (o ile dobrze zrozumiałem pytanie *) 

    Nie do konca o to mi chodzilo, dobry to ja w tlumaczeniu nie jestem, ale i tak sobie poradzilem w inny sposob. Po prostu dalem range, ktorej nie idzie wybrac, i tyle ;d

  7. Cytat

    "TagMenu"        // Main key. Don't change it.
    {
        "1"        // Indexes. They must be in order from 1 and on. Maximum is 100.
        {
            "tag"                "Pro-Player"        // "tag" is identifier. Don't change it. Change the next string like "[Pro-Player]".
            "flag"                "a"                 // "flag" is identifier. Don't change it. Set a flag for tag access (empty = everyone)
            "steamid"            "STEAM_XX"            // "steamid" is identifier. Only if "flag" was empty plugin uses this. Make tag special for a steamid only.
            "tag_color"            "{green}"            // "tag_color" is identifier. Set client chat tag color. (Default is "{default}")
            "name_color"        "{teamcolor}"        // "name_color" is identifier. Set client chat name color. (Default is "{teamcolor}")
            "text_color"        "{default}"            // "text_color" is identifier. Set client chat text color. (Default is "{default}")
            "mode"                "both"                // "mode" is identifier. Set tag mode (valid values are: "both" - "scoreboard" - "chat", Default is "both")
        }
        "2"
        {
            "tag"                "Gracz"
            "flag"                ""
            "tag_color"            ""
            "name_color"               "{teamcolor}"
            "text_color"                "{default}"
            "mode"                "both"
        }
        "3"
        {
            "tag"                "VIP"
            "flag"                "a"
            "tag_color"            "{green}"
            "name_color"               "{teamcolor}"
            "text_color"                "{default}"
            "mode"                "both"
        }
        "4"
        {
            "tag"                "Premium - wkrotce nowa ranga"
            "flag"                "a"
            "tag_color"            "{orange}"
            "mode"                "both"
            }
        "5"
        {
            "tag"                "SVIP"
            "flag"                "zanmilh"
            "tag_color"            "{blue}"
            "name_color"               "{blue}"
            "text_color"                "{yellow}"
            "mode"                "both"

             }
        "6"
        {
            "tag"                "pro"
            "flag"                "a"
            "tag_color"            "{yellow}"
            "name_color"               "{teamcolor}"
            "text_color"                "{default}"
            "mode"                "both"
        }

        "7"
        {
            "tag"                "Wlasciciel *jak zrobic by byla tu wiadomosc, ktora nie robi prefixu na chacie, bo to jest cfg do prefixow i chce zeby pisala wiadomosc tylko w tym tagmenu, ze RANGI ADMINISTRACYJNE?"
            "flag"                "a"
            "tag_color"            "{red}"
            "name_color"               "{teamcolor}"
            "text_color"                "{default}"
            "mode"                "both"
        }
        "8"
        {
            "tag"                "blabla"
            "flag"                "zanmilh"
            "tag_color"            "{lightred}"
            "name_color"               "{teamcolor}"
            "text_color"                "{default}"
            "mode"                "both"
        }
        "9"
        {
            "tag"                "blllab"
            "flag"                "zanmilh"
            "tag_color"            "{lightred}"
            "name_color"               "{teamcolor}"
            "text_color"                "{default}"
            "mode"                "both"
        }
    }

    Chciałbym aby tam gdzie jest Wlasciciel pisalo tylko w menu, a w cs juz tylko wlasciciel

    bo jest to plugin z tagmenu, w ktorym wybiera sie prefixy i sa tam tez administracyjne i chcialbym zeby w menu pisalo tylko dla administracji, wie ktos jak to zrobic?

  8. Godzinę temu, ogbudowa napisał:
    
    #include <sourcemod>
    
    char ClientColor[MAXPLAYERS + 1][256];
    char red[256], green[256], blue[256], tytul[256], path[256];
    KeyValues kv;
    
    public OnPluginStart()
    {
    	RegConsoleCmd("sm_kolorek", Menu_Colors);
    	HookEvent("player_spawn", Player_Reset);
    }
    
    public Action Player_Reset(Event e, const char[] n, bool b)
    {
    	int client = GetClientOfUserId(GetEventInt(e, "userid"));
    	SetColor(client, ClientColor[client]);
    }
    
    public Action Menu_Colors(int client, int args)
    {
    	Menu menu = new Menu(Menu_Handler);
    	menu.SetTitle("Menu kolorów");
    	BuildPath(Path_SM, path, sizeof(path), "configs/plugin-kolory.ini");
    	kv = new KeyValues("Kolory");
    	kv.ImportFromFile(path);
    	if (!kv.GotoFirstSubKey())
    	{
    		delete kv;
    		return Plugin_Handled;
    	}
    	do 
    	{
    		kv.GetString("red", red, sizeof(red));
    		kv.GetString("green", green, sizeof(green));
    		kv.GetString("blue", blue, sizeof(blue));
    		kv.GetSectionName(tytul, sizeof(tytul))
    		menu.AddItem(tytul, tytul);
    	} while (kv.GotoNextKey());
    	menu.Display(client, MENU_TIME_FOREVER);
    	return Plugin_Handled;
    }
    
    void SetColor(int ent, const char[] Item)
    {
    	kv.ImportFromFile(path);
    	if (!kv.GotoFirstSubKey())
    	{
    		delete kv;
      		return Plugin_Handled;
    	}
    	do 
    	{
    		char Wybor[64];
    		kv.GetSectionName(Wybor, sizeof(Wybor));
    		if (StrEqual(Item, Wybor)) {
    			SetEntityRenderColor(ent, kv.GetNum("red"), kv.GetNum("green"), kv.GetNum("blue"), kv.GetNum("alpha"));
    			break;
    		}
    	} while (kv.GotoNextKey());
    }
    
    int Menu_Handler(Menu menu, MenuAction action, int client, int param2)
    {
    	switch (action) 
    	{
    		case MenuAction_Select:
    		{
    			char Item[64];
    			menu.GetItem(param2, Item, sizeof(Item));
    			ClientColor[client] = Item;
    			SetColor(client, Item);
    		}
    		case MenuAction_End:
          		delete menu;
    	}
    	return 0;
    }

    do tego pluginu potrzebujesz configu, którego wrzucasz do sourcemod/configs, w który podajesz nazwy kolorów wraz z paletą rgba

     

    
    #include <sourcemod>
    #include <sdktools>
    
    ConVar g_ShowDmgHintText;
    
    public OnPluginStart()
    {
    	g_ShowDmgHintText = CreateConVar("sm_showdmg", "0", "Obrażenia");
    	HookEvent("player_hurt", Player_Hurt);
    	AutoExecConfig(true, "cfg_showdmg");
    }
    
    public Action Player_Hurt(Event e, const char[] n, bool b)
    {
    	if (!g_ShowDmgHintText.BoolValue)
    		return Plugin_Handled;
    	int attacker = GetClientOfUserId(GetEventInt(e, "attacker"));
    	int victim = GetClientOfUserId(GetEventInt(e, "userid"));
    	int donedmg = GetEventInt(e, "dmg_health");
    	char victimName[64];
    	GetClientName(victim, victimName, sizeof(victimName));
    	PrintHintText(attacker, "Zadałeś %s %d obrażeń", victimName, donedmg);
    	return Plugin_Continue;
    }

    a ten plugin sam tworzy plik cfg w csgo/cfg/sourcemod, w którym możesz pozmieniać cvary lub w grze

    jeżeli są to pojedyncze opcje to celowałbym w cvary, które nie wymagają aż tylu lini kodu

    Mozna by bylo takie cos, tylko na wiadomosc tekstowa z configiem? bo stad malo rozumiem ?

    • Przykro mi 1
  9. Godzinę temu, Grafito napisał:

    taki jak ty podales co musze zmienic, aktualnie nie ma mnie pezy kompie @Maroxx

    @Maroxx

    Cytat

    #include <sourcemod>
    #include <multicolors>


    #define Interval 30.0

    Handle timerr;
    int counter = 0;

    char ads[][] =
    {
          " {blue} Jest Cheater? Skontaktuj się z administracją! {green}!kontakt",
          " {blue} Chcesz zakupić vipa? Skontaktuj się z administracją! {green} !kontakt",
        " {blue} Znalazłeś błąd? Skontaktuj się z administracją {green} !kontakt} Być może zostaniesz nagrodzony vipem \n {blue} Nie wiesz co ma vip? {green} wpisz !vip!"
            " {blue} Znalazłeś błąd? Skontaktuj się z administracją {green} !kontakt} Być może zostaniesz nagrodzony vipem \n {blue} Nie wiesz co ma vip? {green} wpisz !vip!"
    };


    public void OnMapStart()
    {
        timerr = CreateTimer(Interval, Reklamy, _, TIMER_REPEAT);
    }

    public void OnMapEnd()
    {
        KillTimer(timerr);
    }

    public Action Reklamy(Handle timer, any data)
    {
        CPrintToChatAll("{darkred}%s", ads[counter]);
        
        if (counter == sizeof(ads)-1)
        {
            counter = 0;
        }
        else
        {
            ++counter;
        }
        
    }

     

×
×
  • Dodaj nową pozycję...