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
 

Oddaj Wiertarke - zdjęcie

Oddaj Wiertarke

Rejestracja: 02.11.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 02.09.2020 20:14
*****

#750550 Wykonam paczki AMXX !

Napisane przez Robiin w 01.07.2018 14:21

0 postów

0 reputacji

0 informacji o osobie

1 dzień od rejestracji

"nie drogo" -> "niedrogo"

Brak jakichkolwiek argumentów przemawiających za dobrą ofertą

 

Nie zajedziesz daleko tak szybko xD


  • +
  • -
  • 5


#710756 Trzęsienie ekranem gracza - inaczej niż ScreenShake

Napisane przez GwynBleidD w 26.08.2015 10:51

Zainstaluj graczowi silnik wibracyjny z tyłu monitora i uruchamiaj zdalnie z AMXX :)

 

Nie, nie da się.


  • +
  • -
  • 3


#710476 Serwer który zarobi i sie utrzyma ? Oprócz codmod ?

Napisane przez MaxioR w 23.08.2015 13:03

Nie ma pewności że ten mod utrzyma serwer a inny nie, ja mam zwykły serwer only dd2 32 slotowy który sam na siebie zarabia z vipów 

Podstawa do tego jest ilość graczy bez tego nic nie dostaniesz :)

 

Ps Wiem że osoby które od razu nastawiają się że serwer postawiany po to aby zarabiać na nim zazwyczaj tylko tracą 


  • +
  • -
  • 3


#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


#708839 CodMod_Stary - W pelni odwzorowany cod do CS:GO

Napisane przez Linux' w 07.08.2015 18:47

opis

 

Z powodu braku czasu na zajmowanie sie wlasnym serwerem oraz checi niesienia pomocy innym postanowilem opublikowac za darmo wpelni odwzorowany silnik starego coda z cs 1.6. Ogolna zasada jest taka sama, wszystko modyfikujemy w jednym notatniku co jest glowna zaleta tego coda. Wkrotce postaram sie zamiescic kilka poradnikow z dokladna informacja jak modyfikowac klasy, itemy itp itd. Poza tym mam jeszcze pare nowosci ktorych nie ma w silniku wiec tez planuje wrzucic :).

 

- Silnik nie posiada cvarow, nigdy ich nie lubilem wiec nie wstawialem. Wszystkie zmiany wprowadza sie na poczatku w zmiennych.

- W silniku znajduja sie 24 klasy oraz 49 itemow i konto vip, nizej zalaczam opis.

- Za strzelenie przeciwnikowi w glowe odgrywany jest losowy dzwiek + dostajemy dodatkowy exp.

- Od 24 do 6 rano dostajemy doswiadczenie x2 za zabicie strzalem w glowe.

- Dostajemy dodatkowy exp za zabicie gracza.

- Dostajemy dodatkowy exp za podlozenie, rozbrojenie c4 i uratowanie zakladnika (rowniez przez druzyne).

- Dostajemy dodatkowe doswiadczenie za wygranie rundy (rowniez przez druzyne).

- W srodku znajduje sie gotowe CodMenu, Sklepik, NaprawaItemu i to czego tam wam jeszcze potrzeba.

- Nie trzeba bindowac zadnego klawisza komenda. By uzyc umiejetnosci klasy lub itemu nalezy nacisnac E (uzywa sie tylko tych wskazanych). CodMenu wlacza sie standardowo naciskajac klawisz F3.

- Za kazde 10Lv dostajemy punkt ktory mozemy rozdac do inteligencji, zdrowia, obrazen, wytrzymalosci lub kondycji. Ilosc punktow za poziom oczywiscie mozemy zmienic wedle gustu.

 

instalacja

Standardowa.

- Katalog z dzwiekami silnika nalezy wrzucic do sound/.

- By podlaczyc baze mysql pod zapis nalezy dodac do configs/databases.cfg ponizsze dane i uzupelnic (wersja >= 0.6).

"Databases"
{
	"codmod_lvl_sql"
	{
		"driver"	"mysql"
		"host"		""
		"database"	""
		"user"		""
		"pass"		""
	}
}

Opis klas:

Spoiler

 

Opis Itemow:

Spoiler

 

Opis Konta VIP:

Spoiler

 

(08.06.15)

Mala aktualizacja dotyczaca optymalizacji kodu.

 

(19.08.15)

Poprawa zapisu punktow statystyk. Zapisywanie punktow zostalo usuniete co zoptymalizuje troche zapis.

 

(10.09.15)

Optymalizacja kodu (wersja 0.2).

 

(18.09.15)

Optymalizacja kodu i naprawa bledow (wersja 0.4).

 

(30.09.15)

Naprawa bledow, optymalizacja kodu. Usuniecie zapisu sqllite i zastapienie go bezawaryjnym zapisem mysql. Podziekowania dla uzytkownika Sniper Elite za swoj wklad pracy i pomoc w opracowaniu zapisu (wersja 0.6)

 

(06.10.15)

Drobna poprawka dla posiadaczy konta premium, czasem występował problem z jego czytaniem. Zostało to naprawione.

 

Plany na przyszlosc:

- Wkrotce postaram sie zamienic aktualny zapis na mysql tak wiec problemy dotyczace lagow na serwerach hostingowanych przez serwery gier powinny sie skonczyc.

- Planuje ograniczyc ilosc funkcji znajdujacych sie w prethinku, te ktore wymagaja uzycia zostana przeniesione do specjalnej funkcji powolanej do tego tzn cmdplayer. W przyszlosci rowiez planuje calkowicie usunac funkcje prethink i zastapic ja taskiem z petla. Bedzie to owiele optymalniejsze rozwiazanie niz obecne.

 

Zapraszam do testow i oceniania, w razie jakis problemow pisac.

 

download

Załączone pliki


  • +
  • -
  • 11


#707855 Paczka Jailbreak (dotychczas unikatowa).

Napisane przez Mrufka. w 27.07.2015 13:46

Nie, mi to nie jest potrzebne ponieważ wirtualne życie mam głęboko w d*pie i gram tylko 4 fun, ale wk***iają mnie ludzie co uważają się za nie wiadomo kogo, a mają problem z napisaniem poprawnie wyrazu który ma trzy litery.

 

Ps.: Wyjdź na dwór, może grafika nie jest taka idealna jak w csie, ale powinno Ci się spodobać ... x]

 

@EDIT

 

Do tego tematu wracać raczej nie będę, więc możesz sobie darować odpowiedzi bo i tak ich prawdopodobnie nie przeczytam


  • +
  • -
  • 2


#707603 Fake queries

Napisane przez Misiaczek ;c w 25.07.2015 00:00

Witam,
czy moduł fake queries ruszy na serwerze z binarkami 6153?


tak ciężko samemu sprawdzić?


  • +
  • -
  • 1


#705284 Aim, No-Spread - BLOKADA

Napisane przez Linux' w 06.07.2015 14:48

Sam sobie zrobilem :P

 

No proszę was ludzie. Wy naprawdę myslicie, ze taki zoltodziob zrobilby jakis plugin? Wystarczy spojrzec w jego tematy by zobaczyc, ze jego wiedza jest nikla. Gimbaza blefuje :)


  • +
  • -
  • 7


#705283 Aim, No-Spread - BLOKADA

Napisane przez DarkGL w 06.07.2015 14:43

No to widzę długo nie pobędziesz na tym forum , tylko tak dalej ;) !
  • +
  • -
  • 7


#620547 Canvas

Napisane przez R3X w 26.02.2014 21:56

Canvas

 

w ramach eksperymentu i `for the lolz` pracuję nad własnym rendererem wewnątrz serwera hlds. Canvas, czyli płótno. O co chodzi?

 

Plugin oddaje do dyspozycji API, dzięki któremu stworzymy płótno o dowolnych (niestety ograniczonych) rozmiarach. Na tym płótnie możemy rysować ustawiając odpowiednio kolor każdego z pikseli. Rysowaniem zajmuje się Program, rejestrując go podajemy nazwę publicznej funkcji, która będzie wołana co ramkę serwera i w ten sposób możemy aktualizować stan płótna.

 

Aktualnie płótna można dodawać i konfigurować jedyne z menu dostępnego pod komendą

amx_canvas

Można tam dodawać płótna, zmieniać wymiary, rozmiar i program.

 

Interakcja

Samo rysowanie to mało. Oczywiście, że chciałoby się mieć wpływ na to co jest rysowane będąc graczem. Podstawowa interakcja to pozostawanie w zasięgu. Główny plugin pozwala zarejestrować callbacki wołane gdy gracz wchodzi i wychodzi z zasięgu płótna. Pozwala to np. zmienić wyświetlany kolor, gdy ktoś patrzy.

 

Bardziej zaawansowany jest interfejs związany z klawiaturą. Jeśli zdecydujemy się zablokować kamerę gracza na płótnie, wysyłane będą forwardy (również dostępne jako rejestrowalne callbacki) gdy gracz naciska, puszcza lub przytrzymuje klawisz. Na razie nie ma żadnych blokad. Sterując mini-grą gracz będzie biegał i strzelał. Wkrótce się to zmieni :)

 

W planach jest także interfejs dotykowy, tzn gdyby jeden piksel był większy niż gracz to możliwe będzie precyzyjne określenie na którym z pikseli gracz stoi. Z tym wiąże się mnóstwo pomysłów do zrealizowania.

 

Innym typem interakcji może być strzał w piksel. Umożliwiłoby to np. grę w kółko i krzyżyk, gdzie gracze na przemian strzelają w pole gdzie chcą postawić swój znak.

 

Inicjalizacja

Głównie z powodów technicznych narodziła się idea inicjalizacji. Narysowanie dwustu pikseli na raz zawiesiło mi serwer na dobre kilka sekund, a chwilę potem dostawałem channel overflow. Jako obejście wybrałem liniowe rysowanie pikseli w pierwszych chwilach życia płótna. Podstawowy initializer rysuje po 4 piksele na ramkę, od pierwszego do ostatniego. Potem będzie więcej opcji.

 

Ograniczenia

Silnik hl pozwala klientowi rysować ~256 bytów. Każdy piksel płótna jest bytem, więc teoretycznie możemy osiągnąć kwadrat 16x16. Jednak kto pierwszy ten lepszy, więc od tej puli należy odjąć wszystko co jest narysowane na mapie + miejsce na nowe obiekty jak wypadające po śmierci bronie czy rzucone granaty. Będąc sam na serwerze bez zamiaru strzelania się z kimś używałem płótna 28x8. Gdyby ktoś chciał umieści płótno na żywym serwerze wątpię czy udałoby się to zrobić dla rozmiarów większych niż w sumie 100-150 (np. 15x10 ).

 

Demo

Podczas prac robiłem krótkie filmiki z postępów. Oto lista: http://www.youtube.c...hKwIexxiDB238rI

 

Źródło

https://github.com/e...iks/amxx-canvas

 

Na razie nie ma sensu robić paczki. Wersja jest dość wczesna. Da się już coś zrobić, ale raczej również jako ekperyment. 

 

 


  • +
  • -
  • 26


#634914 Canvas

Napisane przez R3X w 26.04.2014 20:32

Dodałem zdarzenie gdy gracz patrzy na konkretny piksel, Ciężko było użyć silnika, bo np pod kątem byt nie będzie dokładnie takiego rozmiaru co piksel. Pomogła matematyka. Kod wciąż wymaga optymalizacji, ale zaczęło się coś dziać :)

 


  • +
  • -
  • 12


#247618 Rodzaje funkcji w Pawnie

Napisane przez R3X w 08.05.2011 21:18

Rodzaje funkcji w Pawnie
pod AMXX

Funkcja może być:




1. Funkcja wewnętrzna

Funkcja dostępna tylko dla innych funkcji w pluginie

Przeznaczenie:
- podział kodu na podprogramy

Uwagi:
- powinna zostać wywołana, inaczej powoduje ostrzeżenie (ale nieszkodliwe) podczas kompilacji

Przykład

funkcja(parametry, danej, funkcji)
{

}


2. Funkcja stock`owa

Jest to generalnie funkcja wewnętrzna. Różni się od niej tym, że nieużyta nie powoduje ostrzeżeń.

Przeznaczenie:
- tworzenie zestawów funkcji do wielokrotnego użytku (np. w pliku .inc)

stock funkcja(parametry, danej, funkcji)
{

}


3. Funkcja publiczna

Funkcja szeroko dostępna, dla samego pluginu oraz na zewnątrz niego. Oznacza to, że może zostać wywołana przez AMXX lub któryś z jego modułów. Pośrednio także przez inny plugin: callfunc_begin .. callfunc_end albo jako forward.

Przeznaczenie:
- callbacki, czyli funkcje przypisywanie do zdarzeń, jak register_event("EVENT", "FUNKCJA")
- udostępnianie funkcji innym pluginom

Uwagi:
- jako jedyna nie może przyjmować wartości domyślnych dla parametrów
- nie musi zostać jawnie wywołana
- słowo kluczowe public może zostać zastąpione @

Przykład
public funkcja(parametry, danej, funkcji)
{

}
@funkcja(parametry, danej, funkcji)
{

}


4. Funkcja natywna

Jest to funkcja, której ciało nie jest znane w czasie kompilacji, dlatego określona jest wyłącznie jako nagłówek. To odniesienie do funkcji zapisanej gdzieś w module lub innym pluginie. Opisuje składnię dostępnych funkcji do wykonania.

Przeznaczenie:
- biblioteki (pliki .inc)

Uwagi:
- możemy udostępniać własne funkcje natywne: Natywy - AMXX.pl: Support AMX Mod X

Przykład
native register_event(const event[],const function[],const flags[],const cond[]="", ... );


5. Forward

Określona jest wyłącznie jako nagłówek. Jest to zapowiedź funkcji, informuje o jej parametrach. Często opisuje składnię dostępnych funkcji publicznych reagujących na zdarzenia.

Przeznaczenie:
- biblioteki (pliki .inc)

Uwagi:
- możemy udostępniać własne forwardy: Forwardy - AMXX.pl: Support AMX Mod X

Przykład
forward plugin_init();

  • +
  • -
  • 24


#702377 Blokada sklepu i ruletki w trakcie zabawy i życzenia

Napisane przez NoLiFeR w 04.06.2015 01:40

Sprawdzasz czy trwa zabawa (jail_get_play_game_id > 8).

przy forwarcie OnLastPrisonerTakeWish ustawiasz wartość zmiennej przykładowo "zyczenie" na true oraz przy starcie nowej rundy przestawiasz na false.

I sprawdzasz te warunki

 if(jail_get_play_game_id > 8 || zyczenie)

Zmienną życzenie rejestrujesz w sposób

new bool:zyczenie

Mógłbym podać Ci gotowca, lecz nic byś się z tego nie nauczył, a nie o to chodzi :)


  • +
  • -
  • 3


#568055 Podmiana znakówk

Napisane przez BlackPerfum w 29.08.2013 00:18

A więc niedawno pewien użytkownik tego forum poprosił mnie o zrobienie pluginu dzięki któremu będzie możliwa podmiana tekstu nie ingerując w jakiś plugin.

A o to rezultaty mojego główkowania :D

 

opis

Plugin umożliwia ingerowanie w wyświetlany tekst u gracza Menu/Hud/Say/DHud/Motd/Tutor.

Przydatne np. gdy nie posiadamy pliku .sma pluginu a chcemy w nim zmienić/usunąć jakieś napisy :D

 

wymagane moduly

 Orpheu klik

 

konfiguracja

Tekst do podmiany konfigurujemy w pliku pod ścieżką: addons/amxmodx/configs/BlokowanyTekst.ini

Spoiler

 

instalacja

Rozpakowujemy i wrzucamy do naszego folderu "cstrike"

 

inne informacje

- Tekst podmieniający nie powinien być równy dłuższy od podmienianego (czasu brak ale jak będzie to usunę to ograniczenie)

- Tekst podmieniany i podmieniający nie mogą przekroczyć 100 znaków

 

download

Załączony plik  PodmianaZnakow.rar   10,41 KB  208 Ilość pobrań


  • +
  • -
  • 10


#648270 Cvary - tak jakby cache

Napisane przez sebul w 07.07.2014 13:39

Przeglądając różne stronki, znalazłem nawet ciekawy i być może przydatny kod do cvarów.
enum ValueType {
	ValueType_Int = 0,
	ValueType_Bool,
	ValueType_Float,
	ValueType_Flag
};

enum ConVar {
	Handle:ConVarHandle,		// Handle of the convar.
	ValueType:ConVarType,	// Type of value. (int, bool, float)
	any:LastConVarValue,
	any:PrevConVarValue,		// Previous value.
	any:ConVarValue			// The value.
};

stock AddConVar(newCon[ConVar], ValueType:type, ConVarChanged:callback, Handle:conVarHandle) {
	newCon[ConVarHandle] = conVarHandle;
	newCon[ConVarType] = type;

	if(conVarHandle != INVALID_HANDLE) {
		SetConVarDefault(newCon);
		HookConVarChange(conVarHandle, callback);
	}
}

stock AddConVarNoHook(newCon[ConVar], ValueType:type, Handle:conVarHandle) {
	newCon[ConVarHandle] = conVarHandle;
	newCon[ConVarType] = type;

	if(conVarHandle != INVALID_HANDLE) {
		SetConVarDefault(newCon);
	}
}

stock SetConVarDefault(setCon[ConVar]) {
	decl String:defCon[32];
	GetConVarDefault(setCon[ConVarHandle], defCon, 32);
	switch(setCon[ConVarType]) {
		case ValueType_Int:		setCon[ConVarValue] = setCon[PrevConVarValue] = setCon[LastConVarValue] = StringToInt(defCon);
		case ValueType_Bool:		setCon[ConVarValue] = setCon[PrevConVarValue] = setCon[LastConVarValue] = bool:StringToInt(defCon);
		case ValueType_Float:	setCon[ConVarValue] = setCon[PrevConVarValue] = setCon[LastConVarValue] = StringToFloat(defCon);
		case ValueType_Flag:		setCon[ConVarValue] = setCon[PrevConVarValue] = setCon[LastConVarValue] = ReadFlagString(defCon);
	}
}

stock UpdateConVarValue(upCon[ConVar]) {
	upCon[PrevConVarValue] = upCon[ConVarValue];
	switch(upCon[ConVarType]) {
		case ValueType_Int:		upCon[ConVarValue] = GetConVarInt(upCon[ConVarHandle]);
		case ValueType_Bool:		upCon[ConVarValue] = GetConVarBool(upCon[ConVarHandle]);
		case ValueType_Float:	upCon[ConVarValue] = GetConVarFloat(upCon[ConVarHandle]);
		case ValueType_Flag: {
			decl String:flagCon[32];
			GetConVarString(upCon[ConVarHandle], flagCon, 32);
			upCon[ConVarValue] = ReadFlagString(flagCon);
		}
	}
}

stock SetConVarValue(setCon[ConVar], {_,bool,Float}:conVarValue, bool:replicate=false, bool:notify=false) {
	setCon[PrevConVarValue] = setCon[ConVarValue];
	switch(setCon[ConVarType]) {
		case ValueType_Int:		SetConVarInt(setCon[ConVarHandle], _:conVarValue, replicate, notify);
		case ValueType_Bool:		SetConVarBool(setCon[ConVarHandle], bool:conVarValue, replicate, notify);
		case ValueType_Float:	SetConVarFloat(setCon[ConVarHandle], Float:conVarValue, replicate, notify);
		case ValueType_Flag: {
			decl String:flagCon[32];
			FindFlagString(_:conVarValue, flagCon, 32);
			SetConVarString(setCon[ConVarHandle], flagCon, replicate, notify);
		}
	}
	setCon[ConVarValue] = conVarValue;
}

stock bool:IsConVarValueChanged(isCon[ConVar]) {
	return bool:(isCon[PrevConVarValue] != isCon[ConVarValue]);
}

stock CheckToggleConVarValue(cheCon[ConVar]) {
	if(cheCon[PrevConVarValue] && !cheCon[ConVarValue]) {
		return -1;
	}
	else if(!cheCon[PrevConVarValue] && cheCon[ConVarValue]) {
		return 1;
	}
	return 0;
}
Trzeba jeszcze dodać parę rzeczy
enum _:eCvary {		// ustawiamy według własnych potrzeb
	CvarPierwszy = 0,
	CvarDrugi,
	CvarTrzeci			// itd.
};

new g_ConVars[eCvary][ConVar];

public OnConfigsExecuted() {
	for(new i=0; i<eCvary; ++i) {
		UpdateConVarValue(g_ConVars[i]);
	}
}
public OnConVarChange(Handle:conVar, const String:oldValue[], const String:newValue[]) {
	for(new i=0; i<eCvary; ++i) {
		if(conVar == g_ConVars[i][ConVarHandle]) {
			UpdateConVarValue(g_ConVars[i]);
			break;
		}
	}
}
A dodawanie cvaru robi się tak
AddConVar(g_ConVars[CvarPierwszy], ValueType_Int, OnConVarChange, CreateConVar("sm_cvarpierwszy", "150"));
AddConVar(g_ConVars[CvarDrugi], ValueType_Bool, OnConVarChange, CreateConVar("sm_cvardrugi", "1"));
AddConVar(g_ConVars[CvarTrzeci], ValueType_Float, OnConVarChange, CreateConVar("sm_cvartrzeci", "15.0"));
Generalnie co nam to daje? W jednej zmiennej globalnej mamy dostęp do uchwytu, typu i wartości cvaru, czy to dobre rozwiązanie? Nie wiem, niech każdy sam zadecyduje.

Oczywiście wykorzystać to można tylko do cvarów, które są liczbami, chociaż jakby pokombinować, to i ciągi znaków dało by się dodać.

Załączone pliki


  • +
  • -
  • 5