Chyba musisz zrozumieć do czego służą forwardy, a do czego natywy... (dla przykładu w deagles map managerze forwardy są użyte niepoprawnie - w drugą stronę...)
Masz plugin główny (dla przykładu główny plugin diablo) i chcesz, żeby każdy mógł sobie napisać podrzędny plugin dodający jakąś funkcjonalność do głównego (np klasy diablo). Można to zrobić na 2 sposoby:
Pierwszy, poprawny, wygodny, całkiem na miejscu sposób
Tworzysz w głównym pluginie odpowiednie forwardy (czyli "zaczep" który wykona funkcję odpowiednią w pluginie podrzędnym. Forwardem jest np plugin_init, client_connect...) oraz natywy (czyli funkcje dla pluginów podrzędnych, które spowodują wykonanie czegoś w głównym pluginie, natywem jest np client_print) i umieszczasz ich deklaracje w odpowiedniej bibliotece (plik .inc). Następnie załączasz bibliotekę w pluginie podrzędnym i używasz tego, co Ci jest z niej potrzebne.
Drugi, poprawny również, ale niewygodny i nie na miejscu sposób
Robisz zupełnie odwrotnie, niż w poprzednim. Czyli w podpluginach tworzysz forwardy i natywy, a następnie dołączasz biblioteki z podpluginów do pluginu głównego. Wymaga to modyfikacji i udziwnień w pluginie głównym i nie jest właściwym rozwiązaniem, aczkolwiek działającym.
Wszystko jak widzisz ma swoje zastosowanie. Zastanów się więc w którą stronę chcesz kod wykonać (czy plugin główny ma coś wykonać w podrzędnym, czy odwrotnie) i użyj odpowiednio forwardu lub natywu.
Opis używania forwardów (a raczej ich tworzenia, bo używać już umiesz) znajdziesz tu:
Forwardy - Nieoficjalny polski support AMX Mod X
Użytkownik GwynBleidD edytował ten post 13.05.2013 02:55