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

Linux`

Użytkownik
  • Postów

    210
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    22

Odpowiedzi opublikowane przez Linux`

  1. Zamiast uzywac funkcji od zmiany predkosci, polecalbym ci skorzystac z zmiany bonusowych punktow kondycji.

     

    Tak to widze

    new Handle:mrozenie_task[65];
    public OnClientDisconnect(client)
    {
    	if(mrozenie_task[client] != INVALID_HANDLE)
    	{
    		KillTimer(mrozenie_task[client]);
    		mrozenie_task[client] = INVALID_HANDLE;
    	}
    }
    public Action:FreezePlayer(client)
    {
    	if(mrozenie_task[client] != INVALID_HANDLE)
    		return Plugin_Continue;
    
    	cod_set_user_bonus_trim(client, cod_get_user_trim(client, 0, 1, 0)-10000);
    	mrozenie_task[client] = CreateTimer(3.0, UnFreezePlayer, client, TIMER_FLAG_NO_MAPCHANGE);
    	PrintToChat(client, "[COD:MW] Zostaniesz odmrozony za 3 sekundy.");
    
    	SetEntityRenderColor(client, 255, 0, 170, 174);
    	return Plugin_Continue;
    }
    public Action:UnFreezePlayer(Handle:timer, any:client)
    {
    	if(!IsValidClient(client))
    		return Plugin_Continue;
    
    	cod_set_user_bonus_trim(client, cod_get_user_trim(client, 0, 1, 0)+10000);
    	mrozenie_task[client] = INVALID_HANDLE;
    
    	SetEntityRenderColor(client, 255, 255, 255, 255);
    	return Plugin_Continue;
    }

     

  2. new world_model;
    public OnMapStart()
    {
    	AddFileToDownloadsTable(""); // dodajesz do pobrania niestandardowe pliki
    	world_model = PrecacheModel(""); // precache lokalizacja ukrytego modelu
    }
    public OnClientPutInServer(client)
    {
    	SDKHook(client, SDKHook_WeaponSwitchPost, WeaponHookPost);
    	SDKHook(client, SDKHook_WeaponEquipPost, WeaponHookPost);
    }
    public OnClientDisconnect(client)
    {
    	SDKUnhook(client, SDKHook_WeaponSwitchPost, WeaponHookPost);
    	SDKUnhook(client, SDKHook_WeaponEquipPost, WeaponHookPost);
    }
    public Action:WeaponHookPost(client, weapon)
    {
    	if(!IsValidClient(client) || !ma_klase[client])
    		return Plugin_Continue;
    
    	new active_weapon = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon");
    	if(active_weapon != -1)
    		SetEntProp(active_weapon, Prop_Send, "m_iWorldModelIndex", world_model);
    
    	return Plugin_Continue;
    }

     

    polacz to z swoja klasa i ustaw lokalizacje modelu broni ktory nie bedzie sie wyswietlal (wystarczy usunac jego hitboxy, textury itp).

     

    • Super! 1
  3. A to tez raczej bardzo prosto. Na poczatku pobierasz calkowita inteligencje gracza i dzielisz lub mnozysz ja przez okreslona wartosc np

    cod_get_user_maks_intelligence(client)*10

     

    zakladajac ze przechwycona inteligencja gracza wyniesie 15, zostanie pomnozona przez 10 wiec razem da nam 150 i teraz pytanie co z tym dalej chcemy zrobic. Jezeli chcesz redukowac musisz odjac ta wartosc od glownej widzialnosci a wiec

     

    new widocznosc = cod_get_user_maks_intelligence(client)*10;
    SetEntityRenderColor(client, 255, 255, 255, (255-widocznosc < 1)? 1: 255-widocznosc);

    kod ten zabezpieczy nam odrazu zejscie zmiennej ponizej ustalonej wartosci w tym przypadku 1. Sprawdza sie to na wypadek ew bugu, np gdybysmy rozszerzyli maksymalna wartosc inteligencji bez zmiany mnoznika.

    • Super! 1
  4. Dnia 1.07.2017 o 22:10, camerdisco napisał:

    Nie. Funkcja wyciszenia dźwięków działa na zasadzie wyciszenie kompletnie dźwięków stóp, przez convar sv_footsteps, potem manualnie wypuszcza dźwięki dla każdego kto chodzi przez emitsound, a jeśli przejdzie bool od ma_item/perk to następuje return Plugin_Handled; Zamiast puszczenia dźwięków. Trzeba poprawić samą funkcję wypuszczania dźwięków. Wystarczy usunąć plugin perku/klasy, która używa funkcji wyciszenia kroków i powróci do normy.

     

    Dokladnie tak, bardzo dobrze zostalo tu to wyjsnione.

    Jezeli faktycznie ktorys z updatow spowodowal ten blad to postaram sie wydac fixa w formie tutoriala gdy znajde chwile.

  5. A najoptymalniej bedzie mozna zrobic to w ten sposob.

    #include <sourcemod>
    #include <codmod>
    
    new const String:nazwa[] = "Kameleon";
    new const String:opis[] = "Jest mniej widoczny na nożu na kucaka";
    new const String:bronie[] = "#weapon_mp7#weapon_glock";
    new const inteligencja = 0;
    new const zdrowie = 0;
    new const obrazenia = 0;
    new const wytrzymalosc = 10;
    new const kondycja = 0;
    
    new bool:ma_klase[65],
    bool:ma_render[65];
    
    public Plugin:myinfo =
    {
        name = nazwa,
        author = "Linux`",
        description = "Cod Item",
        version = "1.0",
        url = "http://steamcommunity.com/id/linux2006"
    };
    public OnPluginStart()
    {
        cod_register_class(nazwa, opis, bronie, inteligencja, zdrowie, obrazenia, wytrzymalosc, kondycja);
        ServerCommand("sv_disable_immunity_alpha 1");
        HookEvent("player_spawn", OdrodzenieGracza);
    }
    public cod_class_enabled(client)
    {
        ma_klase[client] = true;
        ma_render[client] = false;
    }
    public cod_class_disabled(client)
    {
        ma_klase[client] = false;
        StopRender(client);
    }
    public Action:OdrodzenieGracza(Handle:event, String:name[], bool:dontBroadcast)
    {
        new client = GetClientOfUserId(GetEventInt(event, "userid"));
        if(!IsValidClient(client) || !ma_klase[client])
            return Plugin_Continue;
    
        ma_render[client] = false;
        return Plugin_Continue;
    }
    public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapons)
    {
    	if(!IsValidClient(client) || !ma_klase[client])
    		return Plugin_Continue;
    
    	if(!IsPlayerAlive(client))
    		return Plugin_Continue;
    
    	if(buttons & IN_DUCK)
    	{
    		new String:weapon[32];
    		GetClientWeapon(client, weapon, sizeof(weapon));
    		if(StrEqual(weapon, "weapon_knife"))
    			StartRender(client);
    		else
    			StopRender(client);
    	}
    	else
    		StopRender(client);
    
    	return Plugin_Continue;
    }
    public Action:StartRender(client)
    {
    	if(!ma_render[client])
    	{
    		SetEntityRenderMode(client, RENDER_TRANSCOLOR);
    		SetEntityRenderColor(client, 255, 255, 255, 50);
    		ma_render[client] = true;
    	}
    
    	return Plugin_Continue;
    }
    public Action:StopRender(client)
    {
    	if(ma_render[client])
    	{
    		SetEntityRenderMode(client, RENDER_TRANSCOLOR);
    		SetEntityRenderColor(client, 255, 255, 255, 255);
    		ma_render[client] = false;
    	}
    
    	return Plugin_Continue;
    }

     

    • Super! 1
  6. 10 godzin temu, ALEKS napisał:

     

    Jeżeli uważasz, że inwestowanie w serwery CS:GO są nieopłacalne to trochę mi Cię szkoda... Sprzedajesz paczkę COD-Mod więc chyba powinieneś wiedzieć jak dobrze można zarobić na serwerach CS:GO.

    Jeśli chodziło oto, że nie opłaca się kupować reklamy dla serwerów CS:GO to zgadzam się z Tobą. 

     

    Może w niewielkim stopniu źle się wyraziłem, tak miałem na myśli głownie płatne reklamy dla serwerów csgo.

  7. 2 godziny temu, Znany napisał:

    Tak się zastanawiam :Ciężko jest zrobić sklepik php mysql+cron? Nie a nawet na necie jak ktos chce to pewnie jest...

     

    Na necie raczej się tego nie znajdzie w wersji free. Poniekąd by to napisać potrzebna jest w jakimś stopniu wiedza z tego zakresu, nie wszystkie funkcje zostały upublicznione. Poza tym mowa tu o css a nie cs:go, a tu sprawa wygląda trochę inaczej :P

    • Super! 1
  8. HookEvent("player_spawn", PlayerSpawn);
    
    public Action:PlayerSpawn(Handle:event_spawn, String:name[], bool:dontBroadcast)
    {
        new client = GetClientOfUserId(GetEventInt(event_spawn, "userid"));
        if(!IsValidClient(client) || IsFakeClient(client))
            return;
    
        ClientCommand(client, "models");
    }

     

  9. 37 minut temu, xBBBay ? napisał:

    Proszę:

    
    #include <sourcemod>
    #include <sdkhooks>
    #include <sdktools>
    #include <cstrike>
    
    
    public Plugin:myinfo =
    {
    	name = "Usuwa bronie zostaje noz",
    	author = "xBBBay",
    	description = "",
    	version = "1.0",
    	url = "http://steamcommunity.com/id/xbbbay"
    };
    
    public OnPluginStart()
    {
    	HookEvent("player_spawn", PlayerSpawn);
    }
    
    public Action:PlayerSpawn(Handle:event_spawn, String:name[], bool:dontBroadcast)
    {
    	new client = GetClientOfUserId(GetEventInt(event_spawn, "userid"));
    	if(!IsValidClient(client) || IsFakeClient(client))
    		return;
    
    	for(new slot = 0; slot < 4; slot ++)
    	{
    		new weapon_index = -1;
    		while((weapon_index = GetPlayerWeaponSlot(client, slot)) != -1)
    		{
    			if(IsValidEntity(weapon_index))
    			{
    				RemovePlayerItem(client, weapon_index);
    				AcceptEntityInput(weapon_index, "kill");
    			}
    		}
    	}
    
    	GivePlayerItem(client, "weapon_knife");
    }
    
    public bool IsValidClient(int client)
    {
    	if(client >= 1 && client <= MaxClients && IsClientInGame(client))
    		return true;
    
    	return false;
    }

    Można lepiej napisać, ważne że działa :)

     

    Sprawdzaj czy slot jest równy 2 to nie będzie usuwać noża więc i nie będzie potrzeby by go dodawać.

    • Super! 1
  10. Zobacz ten kod

    Cytat

    #include <sourcemod>
    #include <cstrike>

     

    public OnPluginStart()
    {
        RegConsoleCmd("chooseteam", BlokujKomende);
        RegConsoleCmd("jointeam", BlokujKomende);
    }
    public Action:BlokujKomende(client, args)
    {
        new team = GetClientTeam(client);
        if(team == CS_TEAM_CT || team == CS_TEAM_T)
            return Plugin_Handled;

     

        return Plugin_Continue;
    }

     

×
×
  • Dodaj nową pozycję...