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

n.o.x

Użytkownik
  • Postów

    184
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    20

Odpowiedzi opublikowane przez n.o.x

  1. Witam.
    Jako, że mam sporo projektów, które leżą i się marnują, postanowiłem zrobić z nich użytek, ponieważ i tak ich nie będę reaktywował ani rozwijał..
    W związku z tym w wolnych chwilach postaram się wrzucić "co nieco", bierzcie i jedzcie z tego więc, ponieważ noksik ma dobre serduszko..

    Na pierwszy ogień leci "legendarny" DiabloMod, o którym nieliczna część osób słyszała, swego czasu był on moją perełką, która i tak nie miała ujrzeć światła dziennego, programowanie jak i kodowanie w sm to moje hobby, więc dobrze się bawiłem pisząc kod właśnie tej modyfikacji.Od razu zastrzegam, kod może nie być kompletny, nie wiem w którym momencie skończyłem przebudowę diablo, daję go więc jako kod do zabawy.

    Króciutki opis niżej, nie chce mi się rozpisywać, zobaczycie sami przeglądając kod..

    -> System podzielony na moduły, odpowiednio:

    • klasy
    •  exp
    •  hud
    •  database
    •  itemki
    •  runy
    •  natywy
    •  staty
    •  sortowanie
    •  config
    •  timer - specyficzny moduł, zamysłem było zachowanie jak największej motywacji, więc postanowiłem umieścić wszystkie taski w jednym, globalnym, stawiając na jak najmniejsze zużycie pamięci po uprzednim wglądzie w kod SM

    -> System skillów

    Tutaj można się rozpisywać, lecz nie trzeba, przy deklaracji nowej klasy możemy nadać jej skila, który jest ładowany na nożu. Naładowany skill może być potem użyty, tyle w temacie.

     

    -> Statystyki

    • Inteligencja [Zwieksza obrazenia czarami]
    • Siła              : [Zwieksza ilość HP]             
    • Zręczność    [Redukuje otrzymywane obrażenia] 
    • Zwinność   [Szybciej Biegasz]                 
    • Adrenalina   [Większe obrażenia]     

     

    -> Natywy + Forwardy (powiedzą więcej niż mój skrromny opis)

    native void DBM_RegisterItem(const char[] name, const char[] desc, int from = 0, int _to = 0);
    native int DBM_GetItem(int client);
    native void DBM_SetItem(int client, int ItemId);
    native int DBM_GetItemChance(int client);
    native int DBM_GetItemID(const char[] name);
    native int DBM_GetItemCount();    
    native void DBM_GetItemName(int ItemId, const char[] _buffer, int MaxLeng);
    native void DBM_GetItemDesc(int ItemId, const char[] _buffer, int MaxLeng);

    forward void DBM_OnItemEnabled(int client, ItemID id);
    forward void DBM_OnItemDisabled(int client, ItemID id);
    forward void DBM_OnClientUseItem(int client, ItemID id);

    /** 
     * ----------------------------------------
     *                  RuneS
     * ----------------------------------------
     */
     
    native void DBM_RegisterRune(const char[] name, const char[] desc, int from = 0, int _to = 0);
    native int DBM_GetRune(int client);
    native void DBM_SetRune(int client, int ItemId);
    native int DBM_GetRuneID(const char[] name);
    native int DBM_GetRunesCount();    
    native void DBM_GetRuneName(int RuneId, const char[] _buffer, int MaxLeng);
    native void DBM_GetRuneDesc(int RuneId, const char[] _buffer, int MaxLeng);

    forward void DBM_OnRuneEnabled(int client, ItemID id);
    forward void DBM_OnRuneDisabled(int client, ItemID id);

    /**
     * ----------------------------------------
     *                   Stats
     * ----------------------------------------
     */

    native int DBM_GetPoints(int client);
    native void DBM_SetPoints(int client, int value);
    native void DBM_AddPoints(int client, int value);

    native int DBM_GetInt(int client);
    native void DBM_SetInt(int client, int value);
    native void DBM_AddInt(int client, int value);

    native int DBM_GetStrength(int client);
    native void DBM_SetStrength(int client, int value);
    native void DBM_AddStrength(int client, int value);

    native int DBM_GetDex(int client);
    native void DBM_SetDex(int client, int value);
    native void DBM_AddDex(int client, int value);

    native int DBM_GetAglity(int client);
    native void DBM_SetAglity(int client, int value);
    native void DBM_AddAglity(int client, int value);

    native int DBM_GetAdrenaline(int client);
    native void DBM_SetAdrenaline(int client, int value);
    native void DBM_AddAdrenaline(int client, int value);

    native int DBM_GetIntBonus(int client);
    native void DBM_SetIntBonus(int client, int value);
    native void DBM_AddIntBonus(int client, int value);

    native int DBM_GetStrengthBonus(int client);
    native void DBM_SetStrengthBonus(int client, int value);
    native void DBM_AddStrengthBonus(int client, int value);

    native int DBM_GetDexBonus(int client);
    native void DBM_SetDexBonus(int client, int value);
    native void DBM_AddDexBonus(int client, int value);

    native int DBM_GetAglityBonus(int client);
    native void DBM_SetAglityBonus(int client, int value);
    native void DBM_AddAglityBonus(int client, int value);

    native int DBM_GetAdrenalineBonus(int client);
    native void DBM_SetAdrenalineBonus(int client, int value);
    native void DBM_AddAdrenalineBonus(int client, int value);
     
    /**
     * ----------------------------------------
     *                  lvl/exp
     * ----------------------------------------
     */
     
    native int DBM_GetExp(int client);
    native void DBM_SetExp(int client, int value);
    native void DBM_AddExp(int client, int value);
    native int DBM_GetExpBonus(int client);
    native void DBM_SetExpBonus(int client, int value);
    native void DBM_AddExpBonus(int client, int value);
    native int DBM_GetExpForLvl(int level);
    native void DBM_CheckLvl(int client);

    /** 
     * ----------------------------------------
     *                  Class
     * ----------------------------------------
     */
     
    native void DBM_RegisterClass(const char[] name, const char[] desc, const char[] skill, int iBaseMana, int iMaxMana, int iManaRegen, int iManaForUse, int iBaseInvis, const char[] fBaseGravity, const char[] fBaseSpeed, int iBaseKnifes, int bCast, const char[] fCastTime, int HudCast, int StopOnMove, int iUseOnlyOnKnife, int iInt, int iStrength, int iDex, int iAglity, int iAdrenaline);
    native int DBM_GetClass(int client);
    native void DBM_GetClassName(int ClassId, const char[] name, int maxlenght);
    native int DBM_GetClassId(const char[] name);
    native void DBM_GetClassDesc(int ClassId, const char[] name, int maxlenght);
    native void DBM_GetClassSkillDesc(int ClassId, const char[] name, int maxlenght);

    native int DBM_GetClassInt(int ClassId);
    native int DBM_GetClassStrength(int ClassId);
    native int DBM_GetClassDex(int ClassId);
    native int DBM_GetClassAglity(int ClassId);
    native int DBM_GetClassAdrenaline(int ClassId);

    native void DBM_SetClassInt(int ClassId);
    native void DBM_SetClassStrength(int ClassId);
    native void DBM_SetClassDex(int ClassId);
    native void DBM_SetClassAglity(int ClassId);
    native void DBM_SetClassAdrenaline(int ClassId);

    native void DBM_AddClassInt(int ClassId);
    native void DBM_AddClassStrength(int ClassId);
    native void DBM_AddClassDex(int ClassId);
    native void DBM_AddClassAglity(int ClassId);
    native void DBM_AddClassAdrenaline(int ClassId);

    native void DBM_GiveBaseRender(int client);

    forward int DBM_OnClassEnabled(int client, ClassID id);
    forward int DBM_OnClassDisabled(int client, ClassID id);
    forward int DBM_OnSkillLoaded(int client, ClassID id);
    forward int DBM_OnSkillUse(int client, ClassID id);

    /** 
     * ----------------------------------------
     *             Skills System
     * ----------------------------------------
     */

    native int DBM_GetFlashlightAccess(int client);
    native void DBM_SetFlashlightAccess(int client, int value);

    native int DBM_GetTKnifes(int client);
    native void DBM_SetTKnifes(int client, int value);
    native void DBM_AddTKnifes(int client, int value);
    native void DBM_ThrowKnife(int client);

    native void DBM_FireballStart(int client);
        
    /** 
     * ----------------------------------------
     *                  Mana System
     * ----------------------------------------
     */

    native int DBM_GetMana(int client);
    native void DBM_SetMana(int client, int value);

     

    -> Przykładowa klasa

    #include <sourcemod>
    #include <sdktools>
    #include <nox_dbmod>

    bool bActive[MAXPLAYERS+1];

    public void OnPluginStart()
    {
        DbmClass Class = new DbmClass();
        // --- Descs ---
        Class.SetName("Nazwa");
        Class.SetDesc("Opis");
        Class.SetSkillDesc("Skill");
        
        // --- Stats ---
        Class.Int = 1;
        Class.Strength = 2;
        Class.Dex = 3;
        Class.Aglity = 4;
        Class.Adrenaline = 5;
        
        // --- Mana ---
        Class.BaseMana = 1200;
        Class.MaxMana = 1800;
        Class.ManaRegen = 148;
        Class.ManaForUse = 200;
        
        // --- Invis ---
        Class.BaseInvisiblity = 255;
        Class.BaseGravity = 1.0;
        Class.BaseSpeed = 1.0;
        Class.BaseKnifes = 0;
        
        // ---     Skill ---
        Class.KnifeSkill = true;
        Class.CastTime = 5.0;
        Class.HudCast = true;
        Class.CastStopOnMove = true;
        Class.UseOnlyOnKnife = false;
        
        // --- Make it! ---
        Class.Register();
    }

    public DBM_OnClassEnabled(int client, ClassID id)
    {    
        bActive[client] = true;
    }

    public DBM_OnClassDisabled(int client, ClassID id)
    {
        bActive[client] = false;
    }

    public DBM_OnSkillLoaded(int client, ClassID id)
    {
        PrintToChat(client, "%s \x06Załadowano skill !", DBM_PREFIX_NORMAL);
    }

     

    -> Przykładowy item

    #include <sourcemod>
    #include <sdktools>
    #include <nox_dbmod>

    bool bActive[MAXPLAYERS+1];

    public OnPluginStart()
    {
        DbmItem Item = new DbmItem();
        Item.SetName("Name");
        Item.SetDesc("Desc");
        Item.SetChance(1, 3);
        Item.Register();
    }

    public DBM_OnItemEnabled(int client, ItemID id)
    {    
        bActive[client] = true;
        PrintToChat(client, "dostales item !");
    }

    public DBM_OnItemDisabled(int client, ItemID id)
    {
        bActive[client] = false;
    }

    public DBM_OnClientUseItem(int client, ItemID id)
    {
        PrintToChat(client, "%s \x06Uzyto itemu !", DBM_PREFIX_NORMAL);
    }

     

     

    Dalej mi sie nie bardzo chce, gdyby Wam czegoś z downloadu brakowało to krzyczeć.

    Fell free to use it, have fun.'

    Pozdrowionka, noxik!

    dbmod.rar

    • Super! 1
  2. @GoldeneK, @DevLogic 

    Jest jakieś powiązanie między tymi kontami?

    Czemu byłeś zamieszany w większość spraw, w których "ktoś" obrabiał mi dupę?

    Zbyt dużo sytuacji, żeby można było mówić wgl o jakiś relacjach..

     

    Szkoda tylko, że każdy potrafi jedynie obrabiać komuś dupę, całkiem możliwe, że sklep posiada luki w zabezpieczeniach, nie jestem robotem i każdy robi błędy, a kiedy www już stało, sklep nigdy nie był na użytek więcej niż jednej sieci.. 

    Przeglądam cały kod i pracuję nad fixem, tak więc praca sklepu zostaje wstrzymana do momentu znalezienia podatności.

  3. Zaraz, zaraz.. Grono osób, które zakupiły sklep jest bardzo wąskie, ewentualne błędy są naprawiane w okresie od paru godzin do 3 dni.

    Każdy kto kiedykolwiek zakupił coś u mnie, ma support wieczny, i nie odstąpiłem od tego nigdy. 

    Jeśli chodzi o exploit, życzę powodzonka.

    @pcku Śmiesznie, że pisałeś do osób, które zakupiły mój sklep, po czym, kiedy się o tym dowiedziałem, po chwili usunąłeś mnie ze steam, damn.. 

    Jestem ciekaw Twojego powiązania z cała sprawą.

    • Super! 2
  4. Mnie też już nic nie zdziwi, oczywiście skrypt useless z racji tego, że w moim sklepie nie ma backdoor'ów, jedyne jakie kiedyś były, to te, ze starej wersji sklepu, która znajdowała się jedynie na mojej sieci. 

    Oczywiście z racji tego, że @GoldeneK wepcha nos wszędzie, dekompilował wszystko do czego tylko miał dostęp, po czym kod rezolutnie podpinał pod swoje pracę ;). 

    Nie będę snuł bezpodstawnych oskarżeń, jestem w stanie powiedzieć tylko, że dziś już społeczeństwo to taka cebula... Odechciewa się robić czegokolwiek dla tego community, po 4 latach w tym gównie, ostatnie dwa to szerząca się obłuda i kradzież, zero szacunku dla autora.. Pozostaje mi życzyć szczęśliwego nowego roku, oby garstka ludzi, tego typu przyjęła do siebie pare wartości, za które (cenzura) będzie przez spory czas. Powodzonka! 

    Pozderki, nox.

  5. Dnia 13.03.2018 o 20:48, GoldeneK napisał:

    a i btw. system jest tak zabezpieczony że nawet morda team by nie wykradło danych z db/api/ftp ingerencja nieuprawnionej osoby = blokada na ip

    LucQy się już nie bawi więc no nie ma strachu, ale jakie zabezpieczenia wchodzą w grę? DB/API/FTP? 

    System automatycznie wykrywa nieautoryzowane wejście i blokuje niepożądane osoby  przez ich IP?

    Możesz troszkę rozjaśnić? (Nie, to nie jest próba ataku, a rozwinięcie myśli).

  6. 9 godzin temu, GoldeneK napisał:

    Widziałem, nazwijmy to "przetestowałem" oraz polecam.

    Może mi aż tak design nie przypadł do gustu chodź uwielbiam jak jest kolorowo to i tak sklep sztos.

     

    Generalnie +++ warto zainwestować.

     

    | Edit: nie wiem czy ja czegoś nie rozumiem czy o co biega AShop - Sklep Automatyczny dla serwerów SOURCEMOD i nie tylko a jakie jeszcze serwery?

    Nie serwery, możliwości. Możliwa jest np. Sprzedaż usług typu VIP na forum. 

  7. Czym jest AShop?

     

    AShop jest sklepem automatycznym, pozwalającym na sprzedaż usług na serwerach wykorzystujących rozszerzenie Sourcemod.

    Sklep jest rozbudowany w wysokim stopniu, pozwala na kupienie usługi bezpośrednio na serwerze (sms/psc), korzystając z interfejsu użytkownika.

    Przy tworzeniu sklepu dbałem o komfort jego użytkowania, poziom zabezpieczeń jak i stworzyłem dosyć obszerne API dla developerów, którzy chcieli by powiązać pracę sklepu z innymi funkcjami serwera.

    Panel Administracyjny zawiera wszelkie potrzebne opcje, jestem pewien, że wystarczające na administrowanie oraz monitorowanie postępów dochodowych serwera jak i całej sieci serwerów.

     

    Metody płatności

    Aktualne metody płatności obsługiwane przez sklep to:

    • 1Shot1Kill
    • Pukawka
    • Hostplay
    • CSSetti
    • Przelewy24
    • Przelewy24 (PSC)

     

    Z implementacją nowych metod płatności nie będzie problemu, jestem otwarty również na propozycje dotyczące sklepu.

     

    Monitorowanie postępów dochodowych

     

    W sklepie dostępne są statystyki typu:

    • Przychód miesięczny
    • Przychód ogólny
    • Zakupione usługi (miesiąc)
    • Zakupione usługi (ogółem)
    • Wysłane sms
    • Użytkownicy
    • Wykres warstwowy dochodów z danego miesiąca
    • Statystyki sprzedaży miesięcznej - Progressbary pierścieniowe przedstawiają postęp w osiąganiu celów (przychód, sprzedane usługi oraz wysłane sms), których wartości można zmienić w ustawieniach
    • Statystyki na tle poprzedniego miesiąca - To samo co wyżej, z tym, że progressbary lniowe
    • Wykres kołowy najczęściej kupowanych usług
    • Wykres kołowy przedstawiający serwery wg. największego zbytu
    • Każda statystyka może być przedstawiona wg. Wybranego serwera lub ogólnie

     

     

    Możliwości sklepu

     

    Ustawienia & Metody płatności

    • Możliwość personalizacji sklepu poprzez dynamiczne ustawienia
    • Możliwość dodawania wielu tych samych metod płatności (np. W sytuacji, kiedy właściciel serwera nr.1 posiada taką samą metodę płatności jak właściciel serwera nr.2)

     

    Usługi

    • Możliwość ustawienia innego opisu usługi (server site/website)
    • Możliwość ustawienia własnego sufixu usługi (dni/fajki/monety itd..)
    • Trzy typy usług:
      • Flagi
      • Zapytanie mysql - Pozwalające np. zakup VIP'a na forum.
      • Inne (Bazujące na API) - Opcja dla developerów, pozwala na tworzenie własnych usług, przy których kupnie oraz bycie jest wykonywana akcja określona zamysłem developera (np. Sprzedaż waluty serwerowej)
    • Możliwość ustawienia kolejności wyświetlania usług

     

    Usługi użytkowników

    • Możliwość dodawania użytkownikowi tej samej usługi na wielu serwerach jednocześnie
    • Progressbar wyświetlający status graficzny usługi użytkownika

     

    Cennik

    • Cena usługi może być inna na każdym serwerze
    • Taryfy są dodawane przez użytkownika, tak więc każda nieprawidłowość ze strony hostingu, oferującego swoje API może być poprawiona.

     

    Użytkownicy

    • Możliwość dodawania użytkowników bezpośrednio przez panel
    • Możliwość edytowania danych oraz stanu potrfela użytkownika
    • Wszystkie hasła są ukryte, administrator nie ma w nie wglądu, może je jedynie zmienić.
    • Edytując swój profil lub profil innego administratora wymagane jest wpisanie hasła
    • Użytkownika można przypisać do grupy (W następnej aktualizacji sklepu dodane zostaną usługi dla określonych grup)
    • Uprawnienia użytkownika są zależne od grupy, w której się znajduje

     

    Logi Administracyjne

    • Kupione usługi
    • Płatności SMS
    • Płatności PaySafeCard
    • Płatności Portfelem
    • Działania Administracyjne

     

    Inne

    • Rejestracja odbywa się poprzez serwer (wszystko szyfrowane) aby uniknąć problemu powiązania z kontem steam, oraz z racji interfejsu użytkownika od strony serwera,
    • Każdy użytkownik posiada wirtualny portfel, który można doładować poprzez serwer lub stronę,
    • Gotowe przykłady implementacji API dla developerów,
    • Powiadomienia o błędach w konfiguracji sklepu/problemów ze sklepem wywołanych błędami API
    • Opisane kody błędów, zwracane użytkownikom i Administratorom

       

      Prezentacja sklepu

       

    • Demo PA:  Jutro
    • Demo Website: Jutro
    • Screeny: Jutro

       

      Kontakt & informacje dodatkowe

     

    Kontakt poprzez:

     

    Cena: Do negocjacji

    Płatność: PayPal/Przelew

     

    Pozderki, n.o.x.

      • Super! 4
    • 18 minut temu, xBonio | AS napisał:

      Zrobienie takiego serwera to jest dosłownie 30min jak nie mniej. Za co Ty chcesz 80zl? XD

      Serwer przedłużony na rok czy co xd

       

      80 zł to 2 miesiące, jeśli nie jesteś zainteresowany to nie rób spamu w temacie bo żaden z Twoich serwerów (poza dr klasy, który ma potencjał) nie jest wart więcej..

      • Śmieszne 1
    • 2 godziny temu, xBonio | AS napisał:

      Jest podobny, nawet bardzo (przynajmniej nowa deklaracja), no ale się różni się

      Deklaracja to nadanie zmiennej wartości początkowej. Chodziło Ci raczej o składnie..

      Trzymaj parę linków, nie korzystałem to nie mam pewności, ale wygląda na dobrze opisane i przyjazne dla oka.

      https://wiki.alliedmods.net/Introduction_to_SourcePawn

      https://wiki.alliedmods.net/Introduction_to_SourceMod_Plugins

       

    ×
    ×
    • Dodaj nową pozycję...