Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Epal - zdjęcie

Epal

Rejestracja: 20.01.2015
Aktualnie: Nieaktywny
Poza forum Ostatnio: 17.04.2020 10:14
*****

#750003 Dwa problemy skiny i freevip

Napisane przez ChrisN w 06.06.2018 19:23

Witam, mam dwa problemy jeden to plugin na skiny za fragi, chciałem go przerobić tylko pod awp i kosy i fajnie działa, ale mam problem z jedną kosą mianowicie kosa dla SVIP nie ładuje się dla niej model :( Jak były wszystkie bronie to normalnie się ładował a teraz nie chce, do tego chciał bym by kosa VIP i AWp VIP można było wybrać jeśli się ma svip'a czyli flage ADMIN_LEVEL_G zrobiłem to tak if(get_user_flags(id) & VIP & SVIP) ale nie działa ;/

 

A drugi problem to plugin na free vip'a dodać blokade by nie dawało flagi admin_level_h jeśli gracz ma flage admin_level_g?

 

Pluginy w załączniku

Załączone pliki


  • +
  • -
  • -1


#60159 Własne tekstury na mapie

Napisane przez Abes Mapper w 28.04.2009 18:38

Dzisiaj wytłumaczę jak wstawić własne tekstury do Valve Hammer Editor.

1. Najpierw trzeba wybrać sobię grafikę. Ja wybrałem taką :D:
Dołączona grafika

Trzeba jednak zmienić szerokość i wysokość tak aby to była wielokrotność 16 czyli:
16, 32, 48, 64, 80, 96, 112 i tak dalej.
W jakim programie to zrobicie, to już nie ma znaczenia. Ja to zrobie w programie GIMP.
Jest on możliwy do pobrania tutaj:
http://www.gimpuj.in...action=download
Najpierw trzeba ściągnąć i zainstalować biblioteki GTK+ a potem dopiero GIMPa


Po zainstalowaniu otwieramy GIMPa.
Następnie naciskamy na "Plik", potem "Otwórz..."

Dołączona grafika

Dalej wyszukujemy swoją teksturę (1.) i klikamy na "Otwórz" (2.)
Dołączona grafika



Gdy grafika już się załadowała to klikamy na "Obraz" (1.) a potem "Skaluj obraz..." (2.)
Dołączona grafika



Pojawi nam się okienko. Najpierw klikamy na taki spinacz (1.) i dopiero potem zmieniamy rozmiar (2.) aby wysokość i szerokość miały wartość wielokrotności 16. Na koniec klikamy na "Przeskaluj" (3.)
Dołączona grafika



Teraz klikamy na "Plik" a potem "Zapisz jako...".
Dołączona grafika



Następnie wpisujemy nazwę (na screenie jest .png ale może być także w .jpg), wbieramy lokalizacje zapisu i klikamy na "Zapisz" (1.) i jeszcze raz na "Zapisz". (2.)
Dołączona grafika
Dołączona grafika



Ok. Graficzkę mamy gotową :)
Dołączona grafika




2. Teraz czas na program Wally. Jest on do edycji grafiki jak i tekstur w formacie .wad i innych.
Program możliwy do pobrania stąd: WALLY
Po ściągnięciu i uruchomieniu pobranego pliku pojawi się okienko gdzie wbieramy ścieżkę do rozpakowania programu. Potem tylko klikamy na "Unzip". Z tym raczej nie będzie problemu.

Uruchamiamy program Wally. Całość wygląda tak:
Dołączona grafika

Następnie klikamy na "File", potem na "New"
Dołączona grafika

Pojawi się okienko gdzie wybieramy "Half-Life Package [wad3] [.wad]" (1.) i klikam "OK" (2.)
Dołączona grafika

Po tym wszystkim pokazało nam się nowe okienko.
Dołączona grafika

Teraz szukamy naszej graficzki którą chcemy umieścić na mapie.
Przeciągamy plik do okienka, ale nie na te które utworzliśmy tylko tam gdzie wskazuje strzałka na obrazku.

Dołączona grafika

Po przeciągnięciu powinno wyglądać to tak:
Dołączona grafika

Teraz na naszej graficzce naciskamy prawym przyciskiem myszy i wybieramy "Copy" (1.)
Dołączona grafika

Następnie przechodzimy do okienka "Untitled1".
Na tym brązowo-szarawym polu naciskamy prawym przyciskiem myszy (1.) i pojawi nam się lista gdzie wybieramy "Paste As New" (2.)

Dołączona grafika

Teraz musimy wpisać nazwę swojej teksturki (1.). Potem naciskamy "OK" (2.)
Dołączona grafika

Dobra. Mamy już załadowaną teksturę. Teraz naciskamy na "File", potem "Save as...".

Dołączona grafika

Nadajemy jakąś tam nazwę (1.) i zapisujemy (2.) do folderu cstrike
Dołączona grafika

Oczywiśnie tak możemy dodawać wiele tekstur do jednego pliku .wad :]

3. Uruchamiamy Valve Hammer Editor. Otwieramy jakąś mapkę. Teraz klikamy na "Narzędzia", a następnie "Opcje".

Przechodzimy do zakładki "Tekstury" (1.) a i klikamy na "Dodaj WAD" (2.)
Dołączona grafika

Wybieramy sobie nasz plik tekstur (1.). W moim przypadku jest to "dev.wad". Potem oczywiście "Otwórz" (2.)
Dołączona grafika

Następnie klikamy na "OK" (1.)
Dołączona grafika

Przypominam że najwięcej może być 8 wadów!

Teraz robimy jakiś solid i nakładamy na nią naszą teksturę. To już chyba umiecie :D
Wygląda to tak:

Dołączona grafika

Trochę nie tak prawda :DD ?
Dlatego zaznaczamy tylko kawałek tekstury (1.) od frontu (tył i przód lecz nie boki!). Następnie klikamy na "X" (2.) i rozciągnie nam się tekstura :]

Dołączona grafika

W CS wygląda to tak:
Dołączona grafika
Dołączona grafika


Tutek by Abes_Ziomal
Dla AMXX.pl

  • +
  • -
  • 7


#709424 AMXMODX/SourceMod Dekompilator

Napisane przez DarkGL w 13.08.2015 13:09

Jest to prosty interfejs www służący do dekompilowania pluginów amxx'a i sourcemoda.
 
Dekompilator dostępny pod adresem
 
http://darkgl.pl/decompiler/

Jest to tylko interfejs www który używa ogólnie dostępnych narzędzi.
 
Więcej informacji tutaj
http://darkgl.pl/201...d-dekompilator/
  • +
  • -
  • 21


#730620 Otwieranie Klatki

Napisane przez Fin1 w 12.09.2016 00:30

Witam szukam plugin który otwiera klatkę na surfie po strzale w nią nie mogę tego nigdzie znaleźć 

nie wiem czy takowy plugin w ogolę istnieje jeśli tak to proszę o link do tematu czy cos 


  • +
  • -
  • 1


#729057 Pokemod - informacje

Napisane przez NiczegoWinien w 07.08.2016 08:24

Dla wszystkich sledzacych ten temat jeszcze :)

Powstala werjsa v2.

Co nowego:

- Expimy pokemony a nie postac

- Do Ewolucji nie potrzebny jest kamien tylko wymagany poziom

- Nowy efekt rzucania/lapania pokemonow

- Szukanie pokemonow.Na mapie widocznych jest tylko pare pokemonow(typu caterpie,weedle czy rattata).Reszta jest "niewidoczna" lecz gdy znajdziemy sie blisko takiego pokemona to pojawi sie informacja jaki to pokemon oraz zrespi sie on na mapie.

- Liderzy : Jest ich 8 na mapie. Kazdy z nich posiada 6 pokemonow odpowiednio do danej sali.Po pokonaniu dostajemy odznake,exp oraz dolary (czyli glowna waluta).

- 4 postacie do wyboru: Ash (umiejetnosc: wieksza szansa na zlapanie pokemona),Gary (umiejetnosc: wiecej expa za pokonanie pokemona),Brock (umiejetnosc: nasz pokemon zadaje wieksze dmg koncowe) i Misty (umiejetnosc: nasz pokemon ma wiecej HP).

 

W trakcie pracy sa klany/gildie w zaleznosci od nazwy.

Maxymalna liczba graczy mysle ze na poczatek 10 osob.

Gracz w klanie/gildii bedzie mogl wysylac "prosby" o punktu doswiadczenia (exp) dla wybranego przez niego pokemona, ktorego posiada. Reszta osob z tego samego klanu/gildii bedzie mogla mu te punkty przekazac jezeli posiada takiego pokemona a w zamian dostana dolary (czyli glowna waluta).

Druga rzecza to bedzie party (czyli dzielony exp dla wszystkich po pokonaniu pokemona)

 

Czekam na komentarze/opinnie.


  • +
  • -
  • 3


#298210 Knife mod bez mocy

Napisane przez DarkGL w 20.09.2011 14:55

Spoiler

  • +
  • -
  • 6


#727082 CoD Weapon Zoom - Tworzenie nowych celownikow modeli

Napisane przez Linux' w 08.06.2016 14:02

opis

Jest to prosty tut obrazujacy, sposob w jaki mozemy zmieniac weaponorigin w modelach broni. Przydaje nam sie to jezeli chcemy np dodac celowniki do pluginu cwz: https://amxx.pl/topi...weapon-zoom-15/.

 

konfiguracja

A wiec na poczatku musimy posiadac jakis model z przedrostkiem v_. Otwieramy go za pomoca programu Jed's Half-Lie Model Viewer a nastepnie decompilujemy nasz model. By to zrobic, musimy pierw skonfigurowac w poprawny sposob program, wskazujac lokalizacje do compilatora oraz decompilatora (Tools>Configure Tools i wskazujemy sciezki).

 

Okej, jezeli posiadamy juz zdekompilowany model, otwieramy jego plik .qc (Tools>Edit QC File, badz otwieramy go po prostu notatnikiem). Klikamy teraz w programie na zakladke "Weapon Origin" i zaznaczamy ptaszkiem "Show Crosshair". Nastepnie zmieniamy weaponorigin X/Y/Z na nasze wlasne. Po tej edycji musimy zapisac zmiany w naszym otwartym pliku qc. A wiec gdzies na gorze dodajemy $origin i wpisujemy wartosc x/y/z (np $origin 2.800000 1.000000 -1.000000). Juz wystarczy tylko nadpisac zmiany w pliku a nastepnie skompilowac plugin (Tools>Compile Model).

 

Jezeli zrobilismy wszystko w prawidlowy sposob, od teraz bedziemy mogli cieszyc sie naszym nowym celownikiem. Nizej wersja ilustrowana.

 

screenshot

Spoiler

 

download

Załączone pliki


  • +
  • -
  • 2


#275678 Inne dodawanie punktów

Napisane przez byCZUS w 30.07.2011 11:51

Witam,
dzisiaj przedstawię troszkę inny sposób dodawanie punktów statystyk niż w innych tutkach ;], wygląda to mniej więcej tak:

ncje45.jpg

Dokładniej chodzi o opcję numer: 1. Po jej kliknięciu liczba dodawanych punktów się zwiększa (można to dowolnie edytować).

A więc do dzieła, na samym początku musimy dodać jedną stałą z naszymi punktami i zmienną która będzie przechowywała informacje o tym co ile ma dodawać na pkt.
Pod:
 

new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120,
90, 2, 35, 90, 90,0, 100};

dodajemy coś takiego:
 

new const co_ile[] = { 1, 4, 8, 16, 24 } // Wlasnie tutaj zmieniamy co ile maja rosnac punkty.
new szybkosc_rozdania[33];

Następnym krokiem będzie edycja widoku statystyk i handler'a od tego. Szukamy

public PrzydzielPunkty(id)
{
new inteligencja[65];
new zdrowie[60];
new wytrzymalosc[60];
new kondycja[60];
new tytul[25];
format(inteligencja, charsmax(inteligencja), "Inteligencja: \r%i \y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1));
format(zdrowie, charsmax(zdrowie), "Zdrowie: \r%i \y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1));
format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1));
format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));
format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
menu_additem(menu, inteligencja);
menu_additem(menu, zdrowie);
menu_additem(menu, wytrzymalosc);
menu_additem(menu, kondycja);
menu_setprop(menu, MPROP_EXIT, 0);
menu_display(id, menu);
}
i zamieniamy na

public PrzydzielPunkty(id)
{
new szybkosc[60];
new inteligencja[65];
new zdrowie[60];
new wytrzymalosc[60];
new kondycja[60];
new tytul[25];

format(szybkosc, charsmax(szybkosc), "Ile dodawac: \r%d \y(Ile pkt dodac do statow)", co_ile[szybkosc_rozdania[id]]);
format(inteligencja, charsmax(inteligencja), "Inteligencja: \r%i \y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1));
format(zdrowie, charsmax(zdrowie), "Zdrowie: \r%i \y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1));
format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1));
format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));
format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
menu_additem(menu, szybkosc);
menu_addblank(menu, 0);
menu_additem(menu, inteligencja);
menu_additem(menu, zdrowie);
menu_additem(menu, wytrzymalosc);
menu_additem(menu, kondycja);
menu_setprop(menu, MPROP_EXIT, 0);
menu_display(id, menu);
}
Wygląd naszego menu z punktami został już zmieniony teraz, handler, znajduje się on nieco niżej, dokładnie chodzi o to:

public PrzydzielPunkty_Handler(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(punkty_gracza[id] < 1)
return PLUGIN_CONTINUE;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);

switch(item)
{
case 0:
{
if(inteligencja_gracza[id] < limit_poziomu/2)
{
inteligencja_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");


}
case 1:
{
if(zdrowie_gracza[id] < limit_poziomu/2)
{
zdrowie_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom sily osiagniety");
}
case 2:
{
if(wytrzymalosc_gracza[id] < limit_poziomu/2)
{
wytrzymalosc_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom zrecznosci osiagniety");

}
case 3:
{
if(kondycja_gracza[id] < limit_poziomu/2)
{
kondycja_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
}
}

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}
zamieniamy na

public PrzydzielPunkty_Handler(id, menu, item) {
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(punkty_gracza[id] < 1)
return PLUGIN_CONTINUE;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
new ilosc = (co_ile[szybkosc_rozdania[id]] > punkty_gracza[id]) ? punkty_gracza[id] : co_ile[szybkosc_rozdania[id]]

switch(item) {
case 0: {
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
case 1: {
if(inteligencja_gracza[id]+ilosc <= limit_poziomu/2) {
inteligencja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");
}
case 2: {
if(zdrowie_gracza[id]+ilosc <= limit_poziomu/2) {
zdrowie_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom sily osiagniety");
}
case 3: {
if(wytrzymalosc_gracza[id]+ilosc <= limit_poziomu/2) {
wytrzymalosc_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom zrecznosci osiagniety");
}
case 4: {
if(kondycja_gracza[id]+ilosc <= limit_poziomu/2) {
kondycja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
}
}

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}

No i to tyle, wystarczy teraz przekompilować kod i wgrać plugin. ;]
  • +
  • -
  • 75


#727283 Zatwierdzenie tematu przez moderatora dla okreslonych grup

Napisane przez Linux' w 15.06.2016 20:11

Radim chyba wszystko ładnie wyjaśnił tylko jest jedno ALE.

Czasami ta akceptacja tematu przez kolorowych trwa wieki i trzeba się prosić po pewnym czasie na PW bo w innym wypadku będziemy czekać do usranej śmierci :D

 

Otoz to, to jest jedyny powod tego tematu. Problem lezy w zbyt malej aktywnosci wszystkich warstw administracji.


  • +
  • -
  • 1


#726352 [CoD Nowy] Przypisanie umiejetnosci uzycia klasy oraz itemu pod E

Napisane przez Linux' w 19.05.2016 10:15

W tym prostym tutorialu pokaże w jaki sposób przypisać użycie umiejętności klasy i itemu po naciśnięciu przycisku E.

 

Na początku otwieramy nasz silnik a następnie przechodzimy do public Action:UsunZadania(client) i gdzieś pod nim dodajemy:

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapons)
{
	if(!IsValidClient(client) || !IsPlayerAlive(client))
		return Plugin_Continue;

	static bool:oldbuttons[65];
	if(!oldbuttons[client] && buttons & IN_USE)
	{
		UzyjKlasy(client, 0); // wymusza public odpowiadający za funkcje wywołującą forward użycia klasy
		UzyjItemu(client, 0); // wymusza public odpowiadający za funkcje wywołującą forward użycia itemu

		oldbuttons[client] = true;
	}
	else if(oldbuttons[client] && !(buttons & IN_USE))
		oldbuttons[client] = false;

	return Plugin_Continue;
}

teraz wystarczy już zapisać i ponownie skompilować silnik by cieszyć się dodatkiem.

 

 

 

Silnik wraz z paczką modyfikacji, można nabyć wyłącznie poprzez kontakt ze mną. Więcej o tym w sygnaturze.


  • +
  • -
  • 3


#687078 Cmod czyli codmod dla csgo

Napisane przez plx211 w 08.02.2015 16:47

[info=Aktualizacja]
http://amxx.pl/topic...własny-mod-rpg/
[/info]

Witam.
 
Jako że kod pisałem od ręki (z nudów) aktualnie nie jest najwyższych lotów (wymaga uporządkowania - co zrobię gdy będę miał więcej czasu).
Znając życie mod będzie sypał bardziej błędami niż winda, dlatego wszystkie błędy/propozycje proszę zgłaszać jak najprędzej.
 
Chciał bym podziękować QTM_Peyot za codmod'a :D
opis.png
 
Cmod to przepisany codmod z CS 1.6 dla CS:GO.
Aktualnie jest:
  • 7 prostych klas (z czego 2 premium: Admiral [Flaga:Admin_Custom1] oraz Talib [Flaga:Admin_Custom2])
  • 13 prostych itemów (póżniej dorobię więcej).
cvary.png
 
//ile dostaniemy exp'a za kill'a
cmod_expkill 10 

//Maksymalny poziom
cmod_maxlvl 200

//Ustawia ile exp'a potrzebne do zdobycia 1 poziomu
cmod_lvlratio 35

komendy.png
 
//Wybór klasy
sm_klasa
sm_class

//Lista klas	
sm_klasy
sm_classinfo

//menu statystyk	
sm_statystyki
sm_staty
sm_stats

//opis item'u	
sm_item
sm_perk
	
//wyrzucanie item'u
sm_drop
sm_wyrzuc
	
//resetowanie statystyk
sm_reset

//używanie item'u	
sm_useitem

//używanie skill'i klasy
sm_useskill
instalacja.png
1) Wypakowujemy
2) Kopiujemy zawartość do csgo
download.png

Załączone pliki


  • +
  • -
  • 22


#709536 SourceMod 1.7.2

Napisane przez MaxioR w 14.08.2015 13:53

opis

 

The entire SM 1.7.2 changelog is below:
 

  • Updated game compatibility for the latest CS:GO updates.
  • Fixed potential crash when using SDKTools GameRules_* natives.
  • Fixed regression in v1.7.0 causing admin-sql-threaded plugin to not properly load admins.
  • Fixed leak in plugin heap memory that could lead to "Not enough space on the heap" error.

 

Wszystko dostępne pod linkiem http://www.sourcemod.net

 

 

SourceMod wymaga Metamod: Source 1.9 lub wyższy

download

http://www.sourcemod.net/downloads.php


  • +
  • -
  • 1


#726359 [CoD Nowy] Obsluga botow

Napisane przez Linux' w 19.05.2016 17:25

opis

Plugin dzięki któremu boty będą samodzielnie wybierały klasę, kupowały doświadczenie a także używały umiejętności klas i itemów. Do pluginu zostały wprowadzone cvary dzięki którym możemy wygodnie wszystko regulować w dowolnie wybrany przez siebie sposób.

 

screenshot

beztytulu_sanqhhw.jpg

 

cvary

cod_max_classbots 6		// maksymalna ilosc klas ktore beda wybieraly boty (liczba wedlug kolejnosci ich zarejestrowania w silniku): 0 - bez limitu
cod_max_moneybots 16000		// koszt kupna dodatkowego doswiadczenia dla bota podczas odrodzenia: 0 - wylacza zakup
cod_max_statsbots 5		// do ilu statystyk boty beda dodawac rozdawac punkty: 0 - wylacza rozdawanie statystyk
cod_max_skillbots 10		// co jaki czas, podczas namierzenia przeciwnika boty beda uzywaly umiejetnosci klas oraz itemow: 0 - wylacza uzywanie umiejetnosci

instalacja

- Standardowa, wystarczy wrzucić pliki do do szczególnych folderów.

 

Silnik wraz z paczką modyfikacji codmod, można nabyć wyłącznie poprzez kontakt ze mną. Więcej o tym w sygnaturze.

Załączone pliki

  • Załączony plik  csgo.rar   7,4 KB  186 Ilość pobrań

  • +
  • -
  • 3


#726193 [CoD Nowy] Free doświadczenie

Napisane przez Linux' w 14.05.2016 18:09

opis

 

W tym bardzo prostym tutorialu opiszę w jaki sposób możemy dodać darmowe doświadczenie graczom, jeżeli ci mają niższy poziom niż określony przez nas.

 

Na początku otwieramy nasz silnik i szukamy w nim:

public Action:OdrodzenieGracza(Handle:event, String:name[], bool:dontbroadcast)

i pod:

if(punkty_gracza[client])
	PrzydzielPunkty(client, 0);

dodajemy:

if(klasa_gracza[client] && poziom_gracza[client] < X)
	UstawNoweDoswiadczenie(client, doswiadczenie_gracza[client]+Y);

następnie zamieniamy X na poziom, do którego gracz dostanie dodatkowe doświadczenie a także Y na ilość expa którą gracz ma dostać. Następnie należy zapisać plik i ponownie skompilować silnik.

 

Silnik wraz z paczką modyfikacji, można nabyć wyłącznie poprzez kontakt ze mną. Więcej o tym w sygnaturze.


  • +
  • -
  • 1


#696239 [Cmod] Tworzenie podst. klasy + mały opis api

Napisane przez plx211 w 06.04.2015 19:16

0. Wstęp



Jako że ostatnio dużo osób do mnie pisze obnośnie pomocy z tworzeniem klas, postanowiłem napisać ten oto drobny poradnik ukazujący tą "Czarną Magie".
Z góry przepraszam za wszelkie błędy ortograficzne (przepuszczałem przez "sprawdzaniepisowni" ale się wykrzaczył przez znaki specjalne).
 

1. Piszemy klase



Co będzie nam potrzebne:

  • Kompilator sourcemod (ja używam v1.6.4) z wgranym api cmod'a
  • Wygodny edytor textu (najlepiej z podświetleniem składni - ja używam Geany z składnią C++)
  • pomysł na klase ;)

Moja klasa będzie miała następujące parametry:

  • Nazwa: NikuSan
  • Opis/umiejętność: Przy każdym użyciu skilla dostaje flash'a
  • Bronie: awp, tec-9, flashbang
  • Statystyki INT/CON/STR/DEX: 22/10/33/90

A o to nasz "kod startowy":

#include <sdktools>
#include <sdkhooks>
#include <sourcemod>

public Plugin:myinfo = {
name = "NikuSan",
author = "PLX",
description = "Przy każdym użyciu skilla dostaje flash'a",
version = "1.0",
url = "RedTube.plx"
}

public OnPluginStart(){

}

Pierwszym krokiem który musimy zrobić jest załączenie api, aby tego dokonać pod:

#include <sdktools>
#include <sdkhooks>
#include <sourcemod>

dodajemy:

#include <cmod>

Gdzieś musimy przechowywać informacje o klasie, dlatego pod wyżej wymienionymi musimy dodać następujący kod:

//Tworzymy zmienne przechowujące informacje o klasie oraz je wypełniamy
new const String:nazwaKlasy[] = "NikuSan";
new const String:opisKlasy[] = "Przy każdym użyciu skilla dostaje flash'a";
new const intKlasy = 22;
new const conKlasy = 10;
new const strKlasy = 33;
new const dexKlasy = 90;

//Tworzymy uchwyt dla adt_array (który będzie przechowywał liste broni)
new Handle:bronieKlasy;

Czas nastał na stworznie adt_array który będzie przechowywał listę naszych broni, aby tego dokonać do funkcji OnPluginStart() dodajemy:

//Tworzymy adt_array dla listy broni
bronieKlasy = CreateArray(32);

Następnie wypełniamy adt_array listą broni które nasza klasa ma mieć, w następujący sposób:

//Dodajemy bronie do adt_array
PushArrayString(bronieKlasy, "weapon_awp");
PushArrayString(bronieKlasy, "weapon_tec9");
PushArrayString(bronieKlasy, "weapon_flashbang");

Skoro mamy już zapisane wszystkie informacje które zostaną przekazane do silnika, to przyszedł czas na wysłanie ich, w tym celu  pod powyszym kodem dodajemy:

//Rejestrujemy klase w silniku
Cmod_RegisterClass(nazwaKlasy, opisKlasy, intKlasy, conKlasy, strKlasy, dexKlasy, bronieKlasy);

A teraz ten nieszczęsny skill.
Wpierw tworzymy funkcje odpowiedzialną za aktywacje skilla:

//Tworzymy funkcje, która będzie wywoływana podczas aktywacji skilla przez gracza
public Cmod_OnClientUseSkill(client){

}

Następnie dodajemy do niej:

//Dajemy graczu flash'a
GivePlayerItem(client, "weapon_flashbang");

Zapisujemy następnie kompilujemy klase. Gotowe :D
Dla tych którym się nie udało, niech sobie porównają kod:

#include <sdktools>
#include <sdkhooks>
#include <sourcemod>
#include <cmod>

//Tworzymy zmienne przechowujące informacje o klasie oraz je wypełniamy
new const String:nazwaKlasy[] = "NikuSan";
new const String:opisKlasy[] = "Przy każdym użyciu skilla dostaje flash'a";
new const intKlasy = 22;
new const conKlasy = 10;
new const strKlasy = 33;
new const dexKlasy = 90;

//Tworzymy uchwyt dla adt_array (który będzie przechowywał liste broni)
new Handle:bronieKlasy;

public Plugin:myinfo = {
    name = "NikuSan",
    author = "PLX",
    description = "Przy każdym użyciu skilla dostaj flash'a",
    version = "1.0",
    url = "RedTube.plx"
}

public OnPluginStart(){
    //Tworzymy adt_array dla listy broni
    bronieKlasy = CreateArray(32);
    
    //Dodajemy bronie do adt_array
    PushArrayString(bronieKlasy, "weapon_awp");
    PushArrayString(bronieKlasy, "weapon_tec9");
    PushArrayString(bronieKlasy, "weapon_flashbang");
    
    //Rejestrujemy klase w silniku
    Cmod_RegisterClass(nazwaKlasy, opisKlasy, intKlasy, conKlasy, strKlasy, dexKlasy, bronieKlasy);
}

//Tworzymy funkcje, która będzie wywoływana podczas aktywacji skilla przez gracza
public Cmod_OnClientUseSkill(client){

    //Dajemy graczu flash'a
    GivePlayerItem(client, "weapon_flashbang");
}

 

2. Podst. omówienie  api



2.1 Funkcje



Cmod_RegisterClass
Spoiler

 
Cmod_GetClientBonusWeapons
Spoiler

 
Cmod_GetAllowWeapons
Spoiler

 
Cmod_GetClientWeapons
Spoiler

 

2.2 Forwardy



Cmod_OnClassEnabled
Spoiler

 
Cmod_OnClassDisabled
Spoiler

 
Cmod_OnClientUseSkill
Spoiler

 
Cmod_OnGetNewClassID
Spoiler

 
[h1]3 Ostrzeżenia[/h2]

  • Cześć funkcji z api nie jest do końca zabezpieczona, dlatego upewnij się że podajesz prawidłowe dane
  • Nie dodawaj do listy broni weapon_knife, jeśli go dodasz może wystąpić bug z lewitującym nożem przed graczem
  • Nigdy nie zamykaj adt_array jeśli używa go silnik, może to spowodować crash serva

4. Dodatkowo


4.1 m4a1-s



Aby dodać graczu broń m4a1-s należy także dodać do dozwolonych broni (Cmod_GetClientWeapons) dodać broń m4a4 (tak sm uznaje m4a1-s), sytuacja wygląda podobnie z usp
 

4.2 Vip


public Cmod_OnClassEnabled(client)
{
	if(!GetAdminFlag(GetUserAdmin(client), Admin_Custom1)){
		PrintToChat(client, "\x01\x0B\x01 \x07%s \x06Klasa dostępna tylko dla posiadaczy vip'a!", MOD_TAG);
		return CMOD_DISABLE;
	}
	active[client] = true; // <----- opcjonalne
	return CMOD_CONTINUE;
}

4.3 Ciekawostka



Możesz na bieżąco zmieniać bronie klasy (lecz pamiętaj aby nie zamykać adt_array jeśli silnik z niego korzysta)


  • +
  • -
  • 11