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

ZiemniaK

Użytkownik
  • Postów

    21
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez ZiemniaK

  1. To się nie bierz za serwery csgo, skoro nie potrafisz tego zrobić ;-;

     

    Tam są do pobrania dwa pliki. 

    Config i .sp (skrypt, kod), który musisz skompilować do .smx (plugin). Do skompilowania brakuje include'a updater.inc, który musisz sobie ściągnąć i wrzucić do includ'ów kompilatora. Oczywiście w configu ustawiasz tagi i kolory (jest tam przykład już ustawiony jak to zrobić)

     

    Napisalem Ci BARDZO prosto co masz zrobić, jeśli dalej nie będziesz ogarniał, to odpuść sobie narazie robienie serwera, naucz się ogólnie podstaw SourceMod ;)

    Aaa

     

    oczywiscie musisz jeszcze scp (simple chat processor) wgrać przed tym 

  2. Mam problem z kolorem tagu na czacie.

    Tak to wygląda na czacie:

    dc143c[H-ADMIN] ZiemniaK Farmskins.com :  TEST

    To config:

        "H-ADMIN"
    	{
    		"flag"				"z"
    		"tag"				"[H-ADMIN] "
    		"tagcolor"			"#dc143c"
    		"namecolor"			"T"
    		"textcolor"			"G"
    	}

    Chcę, aby tag był czerwony. 

    Pluginy, których używam:

    CCC - https://forums.alliedmods.net/showthread.php?t=186695

    scp - https://forums.alliedmods.net/showthread.php?t=198501&page=36

  3. 19 godzin temu, camerdisco napisał:

    Wprowadzenie pobierania userid zamiast numeru klienta służy do lepszej walidacji klienta, w takim przypadku nie jest to konieczne, jednak przy jakichś powtarzających się timerach warto tego używać.

    btw. Mieszasz stary syntax z nowym

    Dzięki za rady, zapamiętam to  sobie.

    Stary syntax, czyli

    'public Action:player_spawned(Handle:event, const String:name[], bool:dontBroadcast)' zamiast 'public Action player_spawned(Handle event, const String name[], bool dontBroadcast'??
  4. Dzięki wielkie za pomoc!

    Nie zmieniałem wszystkiego jak u ciebie. Problem leżał w HookEvencie. Zmieniłem HookEvent z player_spawned na player_spawn i działa. Zrobiłem też client, jako zmienną lokalną, dzięki czemu zniknęły warningi. W CallBacku Timer'a nie jest potrzebna zmienna client ;)

     

    Do zamknięcia, problem rozwiązany

     

  5. 22 godziny temu, HansToNieJa napisał:

    Osobiście wydaję mi się że zrobiłeś to całkiem dobrze, ale jeśli mam rozumieć chcesz te hp i armor na start rundy więc zmieniłem ten kawałek i ogólnie napisałbym to tak:

    
    #include <sourcemod>
    #include <cstrike>
    
    #pragma semicolon 1
    #pragma newdecls required
    
    public Plugin myinfo = 
    {
        name = "Wiecej hp za grupe",
        author = "Hans"
    };
     
    public void OnPluginStart() 
    {
    	HookEvent("round_start", Event_RoundStart);
    }
    
    public Action Event_RoundStart(Handle event, const char[] name, bool dontBroadcast)
    {
    	int client = GetClientOfUserId(GetEventInt(event, "userid"));
    	
    	if(IsGroup(client))
    	{
    		SetEntityHealth(client, 160);
    		SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1);
    	}
    	else
    	{
    		SetEntityHealth(client, 145);
    		SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1);
    	}
    }
    
    stock bool IsGroup(int client)
    {
    	char tag[64];
    	CS_GetClientClanTag(client, tag, sizeof(tag));	
    	
    	if(StrEqual(tag, "[Plac Zabaw]"))
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }

     

    To się kompiluje, ale w ogóle nie działa.

     

     

    21 godzin temu, camerdisco napisał:

    W takim przypadku łapiesz wszystkich graczy przy pomocy pętli.

    W twojej sytuacji zrobiłbym po prostu timer na powiedzmy 0.5, który wtedy nadawałby owe bonusy.

    Coś tam nakodziłem, ale nie do końca to działa i nie wiem, dlaczego ;v

    Tak wygląda kod:

    #include <sourcemod>
    #include <cstrike>
    
    public Plugin myinfo = {
        name = "",
        author = "ZiemniaK",
        description = "",
        version = "",
        url = ""
    };
     
    public void OnPluginStart() 
    {
    	HookEvent("player_spawned", player_spawned);
    }
    
    
    new client;
    
    
    public Action:player_spawned(Handle:event, const String:name[], bool:dontBroadcast)
    {
    	client = GetClientOfUserId(GetEventInt(event, "userid"));
    	CreateTimer(0.5, TimerCallBack, client);
    }
    
    public Action:TimerCallBack(Handle:timer, any:client)
    {
    	
    	new String:tag[64];
    	CS_GetClientClanTag(client, tag, sizeof(tag));	
    	
    	if(StrEqual(tag, "[Plac Zabaw]"))
    	{
    		SetEntityHealth(client, 160);
    		SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1);
    	}
    	else
    	{
    		SetEntityHealth(client, 145);
    		SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1);
    	}
    }
    
    
    

    Przy kompilacji mam trochę warning'ów: 

     

    A tak to działa(sorry za muzykę, ale akurat podczas nagrywania w tle to miałem i dopiero po  uploadzie to zauważyłem):

     

    Dodam też, że próbowałem HookEvent zmieniać na round_start, ale ciągle to samo 

  6. Jest jeszcze else, który mówi, że jak jest inna grupa, to 145 ma dać. Testowałem na obu i prawie działa.

    Zobacz moment między 19, a 20 sekundom. Respi mnie z dobrą ilością hp, oraz armoru, lecz ułamek sekundy później następuje ponowny resp, już z podstawowymi wartościami. Dzieje się tak niezależnie od tego, czy mam tag, czy też nie.

    Myślałem coś na cvarami, ale tam nieszczególnie coś znalazłem. Oczywiście mogłem coś przeoczyć, bo dopiero zaczynam swoją zabawę z SM i mogłem się nie dopatrzyć czegoś ważnego

  7. 51 minut temu, camerdisco napisał:

    Brakuje biblioteki cstrike.

    Jak ja nienawidzę przez to programowania ;-;

    Zawsze szukasz problemu długi czas, sprawdzasz dokładnie wszystko, a tu taka drobnostka ;v Siedziałem jakoś godzinę nad tym i już miałem ochotę wyrzucić ten komputer przez okno ;D

     

    Dzieki, sprawdzę jak wrócę do domu, jeśli wszystko będzie działać, to napiszę ;)

     

     

  8. Co tu jest nie tak?

    Wywala błąd w 23 linii ;v

    #include <sourcemod>
    
    public Plugin myinfo = {
        name = "",
        author = "ZiemniaK",
        description = "",
        version = "",
        url = ""
    };
     
    public void OnPluginStart() 
    {
    	HookEvent("player_spawned", player_spawned);
    }
    
    
    
    public Action:player_spawned(Handle:event, const String:name[], bool:dontBroadcast)
    {
    	new client = GetClientOfUserId(GetEventInt(event, "userid"));
    	
    	new String:tag[64];
    	CS_GetClientClanTag(client, tag, sizeof(tag));	
    	
    	if(StrEqual(tag, "[Plac Zabaw]"))
    	{
    		SetEntityHealth(client, 160);
    		SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1);
    	}
    	else
    	{
    		SetEntityHealth(client, 145);
    		SetEntProp(client, Prop_Send, "m_ArmorValue", 99, 1);
    	}
    }

     

  9. Próbuję napisać plugin, który po śmierci gracza wyświetla wszystkim obecnym na serwerze informację o jego śmierci na czacie.

    Działa mi wszystko oprócz tego, czy zabójstwo było strzałem w głowę, czy też nie.

     

    new Bool:hs;
    GetEventBool(event, "headshot", hs);
    
    if(hs = true)
    	{
    		PrintToChatAll("\x01 \x03%s \x01zabił \x03%s \x01używając \x02%s \x01strzałem w głowę.", aname, cname, wep);
    		return Plugin_Continue;
    	}
    		else
    		{
    			PrintToChatAll("\x01 \x03%s \x01zabił \x03%s \x01używając \x02%s \x01strzałem w korpus.", aname, cname, wep);
    			return Plugin_Continue;
    		}

     

    Do zamknięcia, problem rozwiązany.

     

    Wystarczyło to:

    new Bool:hs;
    GetEventBool(event, "headshot", hs);

    przenieść zaraz nad tego if'a. Wczesniej było to trochę wyżej, nad innym if'em

×
×
  • Dodaj nową pozycję...