Jump to content
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek

Recommended Posts

[Opis]

Udostępniam niepublikowaną dotychczas wersje nowego cod moda napisanego pod grę cs:go. Modyfikacja napisana została stosunkowo dawno dlatego, też kod mógłby zostać napisany gdzie nie gdzie trochę lepiej jednak ogólnie rzecz biorąc jestem zadowolony z końcowego efektu. Paczka dostępna do tej pory była wyłącznie w wersji płatnej dlatego pragnę serdecznie podziękować tym którzy ją nabyli, wspierając w ten sposób mnie na przestrzeni tych paru lat.

 

Modyfikacja znana z czasów ery cs 1.6, polega na wybieraniu klas, zdobywaniu doświadczenia, poziomów za które otrzymujemy punkty statusu. W załączniku znajduje się silnik, 14 klas oraz 25 itemów.

 

Różnice między nowym silnikiem a starym?

- W nowym silniku rozbite zostały klasy, perki czy inne dodatki na osobne pluginy dzięki czemu nie musimy już babrać się w jednym długim kodzie by coś zmienić, jest to spora wygoda. Dzięki takiemu zastosowaniu o wiele łatwiej znajdziemy również ewentualny błąd jaki popełniliśmy przy edycji moda.

- Wprowadzona została znacznie obszerniejsza konfiguracja dzięki której zmienimy ilość wymaganego doświadczenia do nowego poziomu, wszystkie limity, wyłączymy wytrzymałość perków itp.

- Zmiany nie ominęły również zapisu modyfikacji, ten został poprawiony w taki sposób by nie nadpisywał już danych a je sumował - w praktyce oznacza to, że pojedyncza utrata naszych danych już nigdy nie nastąpi.

 

[konfiguracja]

Standardowa. Większość zmian w konfiguracji przeprowadzisz w /cfg/sourcemod/codmod.cfg. By podłączyć zapis dopisujemy do databases.cfg poniższe dane a następnie uzupełniamy w prawidłowy sposób.
 


"codmod_lvl_sql"
{
    "driver"        "mysql"
    "host"        "host"    // adres bazy mysql
    "database"    "db"    // database bazy mysql
    "user"        "login"    // login uzytkownika do bazy mysql
    "pass"        "haslo"    // haslo uzytkownika do bazy mysql
}

 

[cvary]

Spoiler

cod_xp_kill 10            // doswiadczenie za zabojstwo: 0 - wyl
cod_xp_killhs 15            // doswiadczenie za zabojstwo w hs: 0 - wyl
cod_xp_damage 1            // ilosc xp za 20 obrazen: 0 - wyl
cod_xp_winround 25        // doswiadczenie za wygrana runde: 0 - wyl
cod_xp_objectives 50        // doswiadczenie za wykonane cele mapy: 0 - wyl

cod_max_level 200            // maksymalny limit poziomu: 0 - wyl
cod_level_ratio 35            // predkosc zdobywania doswiadczenia: im mniej tym szybciej
cod_points_level 2            // co ile poziomow punkt dla statystyk gracza: 0 - wyl
cod_max_intelligence 30        // limit inteligencji w statystykach: 0 - wyl
cod_max_health 50        // limit zdrowia w statystykach: 0 - wyl
cod_max_damage 40        // limit obrazen w statystykach: 0 - wyl
cod_max_stamina 60        // limit wytrzymalosci w statystykach: 0 - wyl
cod_max_trim 80            // limit kondycji w statystykach: 0 - wyl

cod_item_stamina 20        // co ile odejmowac wytrzymalosc itemu podczas smierci: 0 - wyl
cod_item_max_stamina 100        // maksymalna wytrzymalosc itemu: 0 - wyl

 

 

[natywy]

Spoiler

native cod_set_user_bonus_weapons(client, const String:nazwa[]);
native cod_get_user_bonus_weapons(client, const String:nazwa[], const MaxLeng);

native cod_set_user_bonus_intelligence(client, wartosc);
native cod_set_user_bonus_health(client, wartosc);
native cod_set_user_bonus_damage(client, wartosc);
native cod_set_user_bonus_stamina(client, wartosc);
native cod_set_user_bonus_trim(client, wartosc);

native cod_get_user_intelligence(client, inteligencja_zdobyta, inteligencja_bonusowa, inteligencja_klasy);
native cod_get_user_health(client, zdrowie_zdobyte, zdrowie_bonusowe, zdrowie_klasy);
native cod_get_user_damage(client, obrazenia_zdobyte, obrazenia_bonusowe, obrazenia_klasy);
native cod_get_user_stamina(client, wytrzymalosc_zdobyta, wytrzymalosc_bonusowa, wytrzymalosc_klasy);
native cod_get_user_trim(client, kondycja_zdobyta, kondycja_bonusowa, kondycja_klasy);
native cod_get_user_points(client);

native cod_get_user_maks_intelligence(client);
native cod_get_user_maks_health(client);
native cod_get_user_maks_damage(client, const String:obrazenia[], const MaxLeng);
native cod_get_user_maks_stamina(client, const String:wytrzymalosc[], const MaxLeng);
native cod_get_user_maks_trim(client, const String:kondycja[], const MaxLeng);

native cod_set_user_xp(client, wartosc);
native cod_set_user_class(client, klasa, zmiana);
native cod_set_user_item(client, item, wartosc, wytrzymalosc);

native cod_get_user_xp(client);
native cod_get_level_xp(poziom);
native cod_get_user_level(client);
native cod_get_user_level_all(client);
native cod_get_user_class(client);
native cod_get_user_item(client);
native cod_get_user_item_skill(client);
native cod_get_user_item_stamina(client);

native cod_get_classes_num();
native cod_get_classid(const String:nazwa[]);
native cod_get_class_name(klasa, const String:nazwa[], const MaxLeng);
native cod_get_class_desc(klasa, const String:opis[], const MaxLeng);
native cod_get_class_weapon(klasa, const String:bronie[], const MaxLeng);
native cod_get_class_intelligence(klasa);
native cod_get_class_health(klasa);
native cod_get_class_damage(klasa);
native cod_get_class_stamina(klasa);
native cod_get_class_trim(klasa);

native cod_get_items_num();
native cod_get_itemid(const String:nazwa[]);
native cod_get_item_name(item, const String:nazwa[], const MaxLeng);
native cod_get_item_desc(item, const String:nazwa[], const MaxLeng);

native cod_inflict_damage(client, attacker, damage);
native cod_register_class(const String:nazwa[], const String:opis[], const String:bronie[], inteligencja, zdrowie, obrazenia, wytrzymalosc, kondycja);
native cod_register_item(const String:nazwa[], const String:opis[], min_wartosc, max_wartosc);

forward cod_class_enabled(client, klasa);
forward cod_class_disabled(client, klasa);
forward cod_class_skill_used(client, klasa);

forward cod_item_enabled(client, wartosc, item);
forward cod_item_disabled(client, item);
forward cod_item_used(client, item);

 

 

[inne]

Proszę o nie kopiowanie tematu na inne fora bez mojej zgody.

 

[download]

COD MW2.rar
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

  • Lubię to! 4
  • Kocham to! 3
  • Wow! 1
By Vasto_Lorde,

Dodanie spoilerów dla czytelności

Share this post


Link to post
Share on other sites
17 minut temu, plx211 napisał:

Mod posiada luke SQLi, ale na szczescie tylko dla nazw klas ?

Nikt raczej nie używa w nazwie klas znaków typu ś, ć itp więc ustawianie utf-8 raczej jest bezsensowne. Ale jak chcesz to wydaj tut bo to raptem jedna linijka kodu do zmian w funkcji tworzenia tabeli ?

Edited by Linux`

Share this post


Link to post
Share on other sites

SQL injection czyli wstrzykiwanie kodu.

Chodzi tutaj że z odpowiednia nazea klasy mozna zmieniac zapytanie lecace do bazy.

Np. "'; DROP TABLE xxx; --" w nazwie klasy, usunie tabele.

Jako ze jest ona w nazwach klasy to podatnosc nie jest taka szkodliwa :)

Ale warto wiedziec ze istnieje ?

Share this post


Link to post
Share on other sites
25 minut temu, plx211 napisał:

SQL injection czyli wstrzykiwanie kodu.

Chodzi tutaj że z odpowiednia nazea klasy mozna zmieniac zapytanie lecace do bazy.

Np. "'; DROP TABLE xxx; --" w nazwie klasy, usunie tabele.

Jako ze jest ona w nazwach klasy to podatnosc nie jest taka szkodliwa ?

Ale warto wiedziec ze istnieje ?

Oj tam ?, nie pomyślałem nawet o tym a na twoim modzie jak to wyglądało bo chyba tak samo hehe. Ale prawdę mówiąc co to za szkodliwość, żaden wariat nie ustawi takich nazw klas na serwerze poza tym raczej nie ustawia się wszystkich uprawnień dla serwerowego użytkownika bazy mysql.

 

Szybki tut na znak specjalny w klasie, gdy chcemy stworzyć takową z nazwa np Żul

Przechodzimy do linii 1180 i zamieniamy

	StrCat(zapytanie, sizeof(zapytanie), "`inteligencja` INT UNSIGNED NOT NULL DEFAULT 0, `zdrowie` INT UNSIGNED NOT NULL DEFAULT 0, `obrazenia` INT UNSIGNED NOT NULL DEFAULT 0, `wytrzymalosc` INT UNSIGNED NOT NULL DEFAULT 0, `kondycja` INT UNSIGNED NOT NULL DEFAULT 0)");

 

na

StrCat(zapytanie, sizeof(zapytanie), "`inteligencja` INT UNSIGNED NOT NULL DEFAULT 0, `zdrowie` INT UNSIGNED NOT NULL DEFAULT 0, `obrazenia` INT UNSIGNED NOT NULL DEFAULT 0, `wytrzymalosc` INT UNSIGNED NOT NULL DEFAULT 0, `kondycja` INT UNSIGNED NOT NULL DEFAULT 0) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");

 

@plx naprawia. Testowałem właśnie w phpmyadmin. Jedynym warunkiem jest kompilacja silnika w utf-8 i ręczna zmiana kodowania w panelu php w przypadku już utworzonej tabeli.

Edited by Linux`

Share this post


Link to post
Share on other sites

Chyba tez posiadalem ta luke :)

Wyszukiwanie tegi to moje male hobby, tak patrze po kodzie i ogolnie git ci wszedl :)

 

@edit

ta latka nie napraeia tego, trzeba dodac escapowanie znakow

Edited by plx211

Share this post


Link to post
Share on other sites

Było kupowane i jestem zadowolony ^^ Jeszcze lepiej jeśli teraz skrypt pojawił się publicznie, mam nadzieję że zyska jeszcze bardziej na popularności

Share this post


Link to post
Share on other sites

Na aktualnej wersji nie ma możliwości korzystania z MP5-SD. Wystarczy jednak mała poprawka - w funkcji WeaponCanUse dodajemy:

switch(weaponindex)
	{
		case 23: strcopy(weapons, sizeof(weapons), "weapon_mp5sd"); // <--- dodajemy tą linijkę do switcha
		case 60: strcopy(weapons, sizeof(weapons), "weapon_m4a1_silencer");
......

i śmiga ?

  • Lubię to! 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

Nasza historia

Na początku byliśmy małą grupą internetowych znajomych, którzy stwierdzili, że potrzebne jest solidne forum, na którym znajdą się ludzie z dużą wiedzą programistyczną ukierunkowaną na CS:GO. Pomysł powstał na początku 2018 roku, a parę miesięcy później, 19 kwietnia, powstała ta strona internetowa. Jako alternatywna odpowiedź na inne tego typu miejsca, poważnie podeszliśmy do tematu, najpierw tłumacząc angielską dokumentację SourceMod'a na język polski, a potem pisząc rozległe poradniki i wypełniając forum najpotrzebniejszymi rzeczami dla właścicieli serwerów i programistów. Cała nasza Ekipa jest dumna z pracy jaką w to włożyliśmy i cieszymy się że zbierają się wokół nas zarówno ludzie znający tematy sourcepawn'a i konfiguracji, jak i również nowe twarze w tym "biznesie", którym z chęcią niesiemy wiedzę oraz pomoc w rozwiązywaniu problemów.

Największe modyfikacje serwerowe

×
×
  • Create New...