Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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
 

Zdjęcie

Natywy jeden .inc kilka .sma obslugujacych funkcje


  • Zamknięty Temat jest zamknięty
22 odpowiedzi w tym temacie

#1 diggs

    Wszechwidzący

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 12.05.2011 13:50

Witam , chciałbym się dowiedzieć czy jest możliwość:
Mamy jeden plik .inc
Część funkcji jest obsługiwanych przez plug1,
parę przez plug2,
i pozostałe przez plug3.
Nie wiem jak to prościej opisać, każdy z tych pluginów-bibliotek obsługuje inne funkcje z .inc i nie powtarzają się one w nich, każda funkcja jest obsługiwana tylko przez jeden plugin.
Chce porostu osiągnąć coś takiego że każdy plugin komunikuje się z każdym (niekoniecznie tak będzie w praktyce, może się okazać że jedna para się nie komunikuje).
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 12.05.2011 14:40

zadziała, tylkp pamiętaj, że nie możesz używać w pluginach ich własnych natywów
  • +
  • -
  • 2

#3 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 12.05.2011 15:40

Dzięki za szybką odpowiedź tego potrzebowałem. Co do używania natywów opieram się na tym artykule więc raczej wszystko powinno być OK. Leci plusik 4y.

Dodano 18 maj 2011 - 19:33:
R3X chyba cie uduszę. To o co pytałem jest prawie nie możliwe (możliwe tylko w specyficznych warunkach) ponieważ plugin-biblioteka musi być w plugins.ini nad pluginami korzystającymi z natywów.

[warn=DarkGL]
R3X chyba cie uduszę - AHA[/warn]
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 18.05.2011 19:47

Wcale nie takie niemożliwe. Funkcje, które nie mogą być zaimplementowane z powodu położenia wydzielaj i twórz pluginy pomocnicze. Jak ta metoda też nie będzie mogła zadziałać użyj forwardów jako natywów, bo nie są one ograniczone w ten sposób.

Jest jeszcze prosta sztuczka z headerem: zarejestruj w nim wszystkie używane biblioteki. Pierwszy idzie header.amxx potem kolejność nie ma znaczenia, plugin poznajdują się nazwajem. Załączam działający przykład

Załączone pliki


  • +
  • -
  • 1

#5 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 19.05.2011 08:27

No dobra zainteresuje się jeszcze forwardami. Ale jeśli chodzi o twój przykład co jeśli kolejność w plugin.ini musi być taka:
_header
C
A
B
Czy to zadziała? Czy dobrze rozumiem że to dzięki header pluginy teraz się odnajdą?

Ogólnie to już sobie poradziłem z tym i wyszło to całkiem lepiej niż początkowo chciałem, po prostu mam plugin-biblioteke zapewniający komunikacje między 4 pluginami, dodatkowo spełniać będzie dość istotną role jeśli chodzi o odczyt danych z bazy danych, ale temat ciągniemy dalej bo jest interesujący ;P

PS. To

R3X chyba cie uduszę

było bardziej tak żartobliwie, ale jak to bywa często przez kabel nasze emocje są mocno tłumione, a ja zapominałem dodać minki :(

EDIT: Pojawił się problem.
Tak wygląda funkcja w pluginie obsługującym natywy:
public native_set_user_vip(id, bool:flag) {
	g_isVIP[id] = flag;
	return PLUGIN_CONTINUE;}
Wcześniej wyglądała tak:
public native_set_user_vip(id, bool:flag) g_isVIP[id] = flag;
Tak wygląda próba użycia funkcji natywnej:
if(access(id, FLAGS_VIP))
	{
		bb_set_user_vip(id, true);
		g_isVIP[id] = true;
		log_to_file("addons/amxmodx/logs/bb_vip.log", "Jestes VIPEM");
	}
	else
	{
		bb_set_user_vip(id, false);
		g_isVIP[id] = false;
		log_to_file("addons/amxmodx/logs/bb_vip.log", "Nie jestes VIPEM");
	}
Problem polega na tym że w żadnym z wypadków nie wykonują się polecenia które są po wywołaniu funkcji natywnej. Czyli nie mamy wypisywanych komunikatów do logów. Dlaczego tak się dzieje?

EDIT2: Dodałem jeszcze jeden wpis do logów, teraz wywołanie funkcji wygląda tak:
public client_putinserver(id)
{
	log_to_file("addons/amxmodx/logs/bb_vip.log", "Client connect");
	if(access(id, FLAGS_VIP))
	{
		bb_set_user_vip(id, true);
		g_isVIP[id] = true;
		log_to_file("addons/amxmodx/logs/bb_vip.log", "Jestes VIPEM");
	}
	else
	{
		bb_set_user_vip(id, false);
		g_isVIP[id] = false;
		log_to_file("addons/amxmodx/logs/bb_vip.log", "Nie jestes VIPEM");
	}
	log_to_file("addons/amxmodx/logs/bb_vip.log", "Client connect end");
}
Ostatni wpis Client connect end nie jest dodawany. Problem pojawia się nawet jeśli przeniosę całą zawartość client_putinserver do funkcji wywoływanej przy respieniu gracza.

Użytkownik diggs edytował ten post 19.05.2011 09:59

  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 19.05.2011 14:05

To zadziała jak powinno
_header
C
A
B

Pluginy nie są ładowane jeśli nie istnieje wymagana przez nie biblioteka. Jak zrobisz taki header to biblioteki będą istnieć, a w trakcie wykonania amxx znajdzie sobie te funkcje w pozostałych pluginach.

Co do natywu to przeszukaj logi błędów (error_DATA.log)
  • +
  • -
  • 0

#7 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 19.05.2011 19:48

Oto co pokazują logi:
L 05/03/2011 - 07:29:57: [AMXX] Displaying debug trace (plugin "basebuilderpro.amxx")
L 05/03/2011 - 07:29:57: [AMXX] Run time error 4: index out of bounds 
L 05/03/2011 - 07:29:57: [AMXX]    [0] basebuilderpro.sma::native_set_user_vip (line 34)
L 05/03/2011 - 07:29:57: Unhandled dynamic native error
L 05/03/2011 - 07:29:57: [AMXX] Displaying debug trace (plugin "bb_vip.amxx")
L 05/03/2011 - 07:29:57: [AMXX] Run time error 10: native error (native "bb_set_user_vip")
L 05/03/2011 - 07:29:57: [AMXX]    [0] bb_vip.sma::vip_spawn (line 99)
Ogólne założenie jakie chce osiągnąć to:
plugin bb_vip ma poinformować czy gracz jest vipem czy nie i za pomocą funkcji bb_set_user_vip(id, bool:flag) ustawia zmienną globalna typu bool w pluginie basebuilderpro i teraz inny plugin może dowiedzieć się czy gracz jest vipem czy też nie, pytając się pluginu basebuilderpro za pomocą bool:bb_is_user_vip(id) w odpowiedzi otrzymuje wartość zmiennej globalnej w której jest przechowywana informacja czy gracz jest vipem czy nie i podjąć odpowiednie kroki.

Użytkownik diggs edytował ten post 19.05.2011 19:49

  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 19.05.2011 19:52

index out of bound to wyjście poza rozmiar tablicy, czyli np. to:
new piecLiczb[5]
piecLiczb[20] = 0;

  • +
  • -
  • 0

#9 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 19.05.2011 19:57

Tak to wygląda nie wiem co jest nie tak
#define MAXPLAYERS 32

new bool:g_isVIP[MAXPLAYERS];
register_native("bb_set_user_vip", "native_set_user_vip");
public native_set_user_vip(id, bool:flag) {
	g_isVIP[id] = flag;
	return PLUGIN_CONTINUE;}
Nie wiem co robię nie tak, myślę że błąd jest prosty i wynika z mojego małego doświadczenia w programowaniu.

Użytkownik diggs edytował ten post 19.05.2011 19:58

  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#10 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 19.05.2011 20:02

Tak zrób
#define MAXPLAYERS 33
bo licząc od 0 to index 32 jest 33-im elementem tablicy

public native_set_user_vip(id, bool:flag) {
	f(!is_user_connected(id)) return 0;
	g_isVIP[id] = flag;
	return 1;
}
a to rozwiąże problem out of bounds, ale jeśli podajesz coś większego niż 32 to nie wina natywu tylko wywołania w tym drugin pluginie; tam też sprawdzaj czy gracz jest na serwerze
  • +
  • -
  • 1

#11 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 19.05.2011 20:05

natyw wywoływany jest przy respawnie wiec gracz musi być na serwie, a serwer mam 17 slotów, więc nie ma tak dużych indexów.
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 19.05.2011 22:15

znasz przyczynę, więc szukaj błędu; nie ogarnę Twojego kodu znając kilkanaście linijek (nie mam zamiaru dostawać też całości na PW)
  • +
  • -
  • 0

#13 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 20.05.2011 11:38

znasz przyczynę, więc szukaj błędu; nie ogarnę Twojego kodu znając kilkanaście linijek (nie mam zamiaru dostawać też całości na PW)

Rozumiem ;] a całości nie przesłał bym na PW bo to jest kilka sporych pluginów.
Dzięki za zwrócenie uwagi z rozmiarem tablicy zmieniłem od razu wartość we wszystkich pluginach.

Wracając do tematu, pozbyłem się błędu, teraz jest problem ;P

Jeśli chodzi o błąd to nie wiem co w końcu pomogło funkcja wygląda teraz tak:
#define MAXPLAYERS 33

new bool:g_isVIP[MAXPLAYERS];
public native_set_user_vip(id, bool:flag)
{
	if(!is_user_connected(id)) return PLUGIN_HANDLED;
	
	if (flag)
		g_isVIP[id] = true;
	else
	g_isVIP[id] = false;
	
	return PLUGIN_CONTINUE;
}
Teraz jest problem, przy sprawdzaniu czy gracz jest vipem za pomocą natywu...:
public bool:native_is_user_vip(id){
	if(g_isVIP[id])
		ColorChat(0, YELLOW, "Gracz jest Vipem");
	else
		ColorChat(0, YELLOW, "Gracz nie jest Vipem");
	return g_isVIP[id];
}
native_is_user_vip i native_set_user_vip są w tym samym pluginie-bibliotece
...bez względu czy gracz jest vipem czy też nie plugin widzi go jako zwykłego gracza nie vipa (jeśli nim jest to jest problem).

EDIT:
Zmieniłem trochę wygląd funkcji
public native_set_user_vip(id, bool:flag)
{
	if(!is_user_connected(id)) return PLUGIN_HANDLED;
	log_to_file("addons/amxmodx/logs/bb_vip.log", "przed");
	if (flag)
	{
		g_isVIP[id] = true;
		log_to_file("addons/amxmodx/logs/bb_vip.log", "true");
	}
	else
	{
		g_isVIP[id] = false;
		log_to_file("addons/amxmodx/logs/bb_vip.log", "false");
	}
	log_to_file("addons/amxmodx/logs/bb_vip.log", "po");
	return PLUGIN_CONTINUE;
}
W logach pokazuje się tylko "przed", już nie mam pojęcia co jest nie ta. Dodatkowo zrobiłem eksperyment z którego wynika że błąd z którym walczyliśmy kilka postów wyżej występuje jeśli nie ma tej linijki:
if(!is_user_connected(id)) return PLUGIN_HANDLED;

EDIT2:
Okroiłem funkcje na maxa
public native_set_user_vip(id)
{
	log_to_file("addons/amxmodx/logs/bb_vip.log", "ID: %d", id);
	g_isVIP[id] = true;                           (line 41)
	log_to_file("addons/amxmodx/logs/bb_vip.log", "true");
}
Wywołanie:
bb_set_user_vip(id);
Wywoływana przy respie gracza (Ham_Spawn).

Logi:
L 05/04/2011 - 01:37:18: [AMXX] Displaying debug trace (plugin "bb_vip.amxx")
L 05/04/2011 - 01:37:18: [AMXX] Run time error 10: native error (native "bb_set_user_vip")
L 05/04/2011 - 01:37:18: [AMXX]    [0] bb_vip.sma::vip_spawn (line 93)
L 05/04/2011 - 01:38:24: [AMXX] Displaying debug trace (plugin "basebuilderpro.amxx")
L 05/04/2011 - 01:38:24: [AMXX] Run time error 4: index out of bounds 
L 05/04/2011 - 01:38:24: [AMXX]    [0] basebuilderpro.sma::native_set_user_vip (line 41)
L 05/04/2011 - 01:38:24: Unhandled dynamic native error

Przełom
Uruchomiona taka funkcja
public native_set_user_vip(id)
{
	log_to_file("addons/amxmodx/logs/bb_vip.log", "ID: %d", id);
	//g_isVIP[id] = true;
	log_to_file("addons/amxmodx/logs/bb_vip.log", "true");
}
Daje takie logi:
L 05/04/2011 - 01:42:51: ID: 33
L 05/04/2011 - 01:42:51: true
Dokładne wywołanie natywu:
RegisterHam(Ham_Spawn, "player", "vip_spawn", 1);
public vip_spawn(id)
{
	if(access(id, ADMIN_BAN))
	{
		bb_set_user_vip(id);
		g_isVIP[id] = true;
	}
	else
	{
		//bb_set_user_vip(id, 0);
		g_isVIP[id] = false;
	}
}
Pytanie: Czemu przesyłany jest nieprawidłowy id.
Zaraz dodam jeszcze wypisanie do logów id przed wywołanie natywu i powiem co to dało.
Oto logi:
L 05/04/2011 - 01:47:16: Przed ID: 1
L 05/04/2011 - 01:47:16: ID: 33
L 05/04/2011 - 01:47:16: true
Wyszło coś bardzo dziwnego, ja już nie mam zielonego pojęcia o co chodzi.
Ja już nie ogarniam tego, R3X proszę o pomoc, nawet jak nie wiesz o co chodzi napisz.

Użytkownik diggs edytował ten post 20.05.2011 14:00

  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#14 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 20.05.2011 18:51

pokaż rejestrację natywu (register_native), styl=0 jako parametry wysyła id pluginu oraz liczbę otrzymanych argumentów, styl=1 podaje przesłane wartości wprost do funkcji operującej
  • +
  • -
  • 1

#15 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 20.05.2011 20:03

register_native("bb_set_user_vip", "native_set_user_vip");
Czyli wszystko jasne, przez domniemanie jest styl ustawiony na 0. Leci plusik za pomoc ;]
Jak możesz podpowiedz mi którego stylu używać. Na amxmodx.org piszą:

Style should always be 0. The "dJeyL" mode value of 1 is deprecated, since it is not properly compatible with any by-reference type.

Więc lepiej wybrać styl taki jaki mam i odnosić się do argumentów przez
get_param(1,2,3...)
czy iść na łatwiznę? Który styl jest lepszy lub czym one się różnią po za przysłanymi argumentami. Teraz już wiem jak poprawnie pobrać parametry, proszę podpowiedz mi co do stylu natywów.

I naprawdę wielkie dzięki za taką pomoc, takich użytkowników jak ty powinno być więcej ;]
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#16 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 20.05.2011 20:13

spoko, nie chcesz gotowców i sam szukasz rozwiązania pod moją nieobecność, aż miło pisać :)

styl=1 jest w porządku dopóki nie chcesz czegoś zwrócić przez referencję, sam używam go właśnie dla operacji get/set

styl=0 jest bardziej elastyczny, upraszcza takie operacje jak zmienna liczba parametrów czy stworzenie forwardu dla pojedynczego pluginu, nie jest tak kłopotliwy jakby się wydawało ,a walidacja danych jest bardziej czytelna wg mnie
  • +
  • -
  • 0

#17 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 20.05.2011 20:24

Czyli jak to bywa w programowaniu, wszystko zależy od sytuacji i potrzeby. W tym przypadku chyba zdecyduję się na styl = 1. Te informacje czym różnią się style powinny być umieszczone w tym temacie Natywy - AMXX.pl: Support AMX Mod X brakuje ich tam i myślę, że nie tylko ja mogę mieć z tym problem.
Jutro będę z tym walczył dalej, dziś jestem padnięty, a czeka mnie jeszcze lektura PHP i MySQL ...
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#18 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 25.05.2011 14:14

jeszcze zapomniałem o native filter

set_native_filter("myMod");

public myMod(const name[], index, trap){
	if(!trap)
		return PLUGIN_HANDLED;
	return PLUGIN_CONTINUE;
}

ta technika też pozwala na wczytanie pluginu bez włączonej jeszcze biblioteki
  • +
  • -
  • 0

#19 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 25.05.2011 22:25

Możesz coś więcej o tym napisać

Możesz na podstawie tych przykładów co podałeś pokazać zastosowanie tego bo myślę że niedługo będzie mi to potrzebne ponieważ zabieram się za dodanie kolejnego pluginu do tych które już "współpracują".

Użytkownik diggs edytował ten post 25.05.2011 22:26

  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#20 R3X

    Godlike

  • Przyjaciel

Reputacja: 2962
Godlike

  • Postów:4248
  • Lokalizacja:Nie
Offline

Napisano 26.05.2011 12:26

nie chce mi się edytować tamtych pluginów, bo zasada jest wszędzie taka sama:

w plugin_natives ustawiasz funkcje filtrującą
public plugin_natives(){
	set_native_filter("native_filter");
}

a wyglądać ona powinna tak:
public native_filter(const szName[], funid, trap){

}
i teraz problem z wczytaniem natywu będzie zgłaszany do tej funkcji native_filter,

szName[] - nazwa funkcji
funid - indeks funkcji
trap=
0- jeśli to problem z wczytaniem
1- jeśli to problem z wywołaniem


więc jak chcesz załadować pluign pomimo braku jakiejkolwiek funkcji to:
public native_filter(const szName[], funid, trap){
	if(trap == 0) 	
		return PLUGIN_HANDLED;
	return PLUGIN_CONTINUE;
}

Handled blokuje generowanie błędów i pozwala wczytać plugin, Continue pozwala na normalne przetwarzanie błędów
  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych