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

naXe

Użytkownik
  • Postów

    100
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Odpowiedzi opublikowane przez naXe

  1. CS_GetClientClanTag zwraca string, więc należy ten tekst porównać poprzez StrEqual lub StrContains

     

    np.

    new String:szClanTagName[32];
    CS_GetClientClanTag(client, szClanTagName, sizeof(szClanTagName));
    
    if(StrEqual(szClanTagName, "Jakiś Tag")) {
        // kod, gdy gracz ma tag o nazwie 'Jakiś Tag'
    }
    
    if(StrContains(szClanTagName, "Jakiś Tag") != -1) {
        // kod, gdy tag gracza zawiera w nazwie 'Jakiś Tag'
    }
    
  2. Opis: Sprzedam aplikację, która umożliwia dodawanie serwerów do tabeli, która jest wyświetlana na stronie głównej lub na każdej stronie forum (ustawienie). Aplikacja działa na IP.Board w wersji 3.2 i nowszej (do 3.4.7).
    Aplikacja korzysta z biblioteki GameQ, dzięki czemu obsługiwana jest duża ilość gier m.in. CS 1.6, CS:S, CS:GO, CS:CZ, TS3, VT, MineCraft, COD, COD2, COD4, TF2. Pełna lista gier: https://github.com/A...ameq/protocols.

    Dane z serwera (mapa, gracze, nazwa) są pobierane co X czasu przez system zadań (cronjob), dzięki temu serwer WWW nie jest obciążany.

    Po najechaniu kursorem i naciśnięciu na:
    nazwę serwera: wyświetla się okno z informacjami: Na jakim systemie jest postawiony serwer, czy serwer jest zabezpieczony przez VAC, czy serwer ma założone hasło, protokół oraz ilość botów na serwerze.
    nazwę mapy: wyświetla się okno z miniaturką mapy, która jest pobierany z serwera WWW. Można zmienić, aby miniaturki były pobierane z np. gametracker. Dodatkowo po samym najechaniu na nazwę mapy, wyświetla się w toltip-ie nazwa następnej mapy, jeśli jest ustawiona i nie jest to taka sama mapa jak aktualna.
    ilość graczy: wyświetla się okno z listą graczy oraz fragami i czasem spędzonym na serwerze.
    Cena: 50 zł
    Płatność: Przelew, PayPal
    Kontakt: PW, GG 8361062
    Allegro (nie wymagane): Jeśli klient sobie zażyczy to nie ma problemu, ale należy doliczyć 1 zł.
    Zdjęcia: 
    Dołączona grafika Dołączona grafika Dołączona grafika Dołączona grafika

    Lista forów na której jest moja lista serwerów: 
    404 Not Found
    http://infinite-gamers.pl/
    Just a moment please...
    http://ice-killers.xaa.pl/
    404 Not Found
    Błąd - ProjektSpark.pl - Sieć serwerów gier oraz portal gamingowy!


    Mini FAQ:
    Czy jest możliwość zaktualizowania aplikacji do nowszej wersji?
    Naturalnie. Należy pamiętać, że nie wszystkie modyfikacje są darmowe. Aktualizacje, w których została wyeliminowane błędy są darmowe (np. 2.0.0 -> 2.0.1), ale, te, w których zostały dodane nowe możliwości są już płatne i koszt aktualizacji wynosi 20% ceny.
     
    Ile wynosi czas realizacji zamówienia?
    Wszystko zależy od klienta, kiedy wyśle przelew (lub inna płatność ustalona wcześniej). Po otrzymanej wpłacie staram się wysłać paczkę plików do 24 godzin.
    Gdy rozmowa z klientem jest na komunikatorze internetowym (Gadu-Gadu, TeamSpeak3) to staram się wysłać od razu.
     
    Czy można wysyłać potwierdzenia przelewu?
    Owszem można, ale nie wiem czy to coś Wam da  :) Nie wysyłam plików osobom przed zaksięgowaniem pieniędzy na moim koncie, z którymi nie robiłem żadnej transakcji w przeszłości.
     
    Czy można kupić aplikację na raty?
    Niestety, nie ma takiej możliwości.
     
    Czy mogę usunąć stopkę w prawym górnym rogu tabelki i panelu admina?
    Nie. Jeśli zobaczę, że ktoś usunął to ta osoba zostaje wpisana do mojej 'czarnej listy' oraz nie ma możliwości zaktualizowania aplikacji do nowszej wersji. 

  3. Domyślnie CKEditor dodaje tag <p>, zamiast <br> i przez to powoduje duże odstępy.

    Widać w tym poście. Między tą linijką, a tą powyższą jest niepotrzebna luka.

     

    Proponuję zmniejszyć tę lukę, a najlepiej zlikwidować.

    Wystarczy dodać do custom.css

    p {
    	-webkit-margin-before: 0em;
    	-webkit-margin-after: 0em;
    }

    ACP -> Personalizacja -> Style -> Edytuj HTML i CSS -> Zakładka CSS i wybór custom.css ;)

  4. Opis znajduje się w kodzie, więc nie widzę sensu, aby pisać to jeszcze raz poście.
    Można również zmienić, aby blokowało pierwszy bombsite (najczęściej nazywa się 'A').
    Do działania pluginu potrzebna jest biblioteka Multi Colors.
    Plugin działa na każdej mapie!
    Testowane tylko na serwerze CS:GO z SourceModem 1.8.0!
     

    Informacja:
    Na mapie de_nuke zablokuje dolny bombsite, a na de_inferno mały (ten za tzw. bananem). Na innym mapach niestety nie wiem, bo nie testowałem.

     

    Cvary:

    // Jeśli graczy w CT jest mniej niż wartość tego cvara to zablokuje BS'a
    // Default: "4"
    // Minimum: "1.000000"
    sm_bs_lock_min "4"
    
    
    // Nazwa zablokowanego BS'a
    // Default: "B"
    sm_bs_lock_bs_name "B"

     

    Poniżej jest kod źródłowy.

     

    #pragma semicolon 1
    
    #include <sourcemod>
    #include <sdktools>
    #include <multicolors>
    
    public Plugin:myinfo = {
    	name = "BombSite Lock",
    	author = "naXe",
    	description = "Blokuje X bombsite, gdy jest mniej niż Y CT",
    	version = "0.1",
    	url = "http://topmasters.pl/"
    };
    
    new g_iBombSiteEnt[2];
    new bool:g_bBombSiteStatus;
    new String:g_szMapName[32];
    new String:g_szCvarBS[10];
    new g_iCvarCT;
    new Handle:g_hCvarCT;
    new Handle:g_hCvarBS;
    
    public OnPluginStart() {
    	CreateConVar("sm_bs_lock_version", "0.1", "Plugin version",  FCVAR_REPLICATED|FCVAR_NOTIFY);
    	g_hCvarCT = CreateConVar("sm_bs_lock_min", "4", "Jesli graczy w CT jest mniej niz wartosc tego cvara to zablokuje BS'a", FCVAR_NONE, true, 1.0);
    	g_hCvarBS = CreateConVar("sm_bs_lock_bs_name", "B", "Nazwa zablokowanego BS'a");
    
    	HookEvent("round_start", RoundStart, EventHookMode_Post);
    	HookEvent("bomb_pickup", BombPickup);
    }
    
    public OnMapStart() {
    	g_iCvarCT = GetConVarInt(g_hCvarCT);
    	GetConVarString(g_hCvarBS, g_szCvarBS, 9);
    	
    	new iBombSite[2];
    	GetCurrentMap(g_szMapName, 32);
    
    	if(StrEqual(g_szMapName, "de_dust2") || StrEqual(g_szMapName, "de_chateau") || StrEqual(g_szMapName, "de_train")) {
    		iBombSite[0] = 1;
    		iBombSite[1] = 0;
    	} else {
    		iBombSite[0] = 0;
    		iBombSite[1] = 1;
    	}
    	g_iBombSiteEnt[iBombSite[0]] = FindEntityByClassname(-1, "func_bomb_target");
    	g_iBombSiteEnt[iBombSite[1]] = FindEntityByClassname(g_iBombSiteEnt[iBombSite[0]], "func_bomb_target");
    }
    
    public Action:RoundStart(Handle:event, const String:name[], bool:dontBroadcast) {
    	new bool:bLockState = GetTeamClientCount(3) < g_iCvarCT ? true : false;
    
    	AcceptEntityInput(g_iBombSiteEnt[1], bLockState ? "Disable" : "Enable");
    	g_bBombSiteStatus = bLockState;
    	if(bLockState) CPrintToChatAll("\x04BombSite %s\x01 został zablokowany, ponieważ jest mniej niż\x02 %i CT!", g_szCvarBS, g_iCvarCT);
    }
    
    public Action:BombPickup(Handle:event, const String:name[], bool:dontBroadcast) {
    	new id = GetClientOfUserId(GetEventInt(event, "userid"));
    
    	if(!(1 <= id <= MaxClients) || !IsPlayerAlive(id) || !g_bBombSiteStatus) return;
    
    	CPrintToChat(id, "\x03WAŻNE!\x01 BombSite %s jest zablokowany!", g_szCvarBS);
    }

     

×
×
  • Dodaj nową pozycję...