[ROZWIĄZANE] Jak zastosować funkcję natywną.
poloo89
08.04.2012
Witam serdecznie, stawiam serwer zombie mod na silniku biohazard 2.0 3b
Jestem obecnie na etapie konstruowania systemu sklepu...
Jedna z opcji jaką zaplanowałem jest możliwość kupienia przez zombie Antidotum.
w swoim sklepie mam już wszystko wpisane. bo wybraniu odpowiedniej opcji zombie zamienia się w człowieka na podstawie jednej z funkcji w biohazard.inc
W tym momencie pojawia się pewien problem, z którym nie mogę zbytnio sobie poradzić.
Chciałbym aby po użyciu antidotum i zamianie zm w człowieka, otworzył się menu broni, taki jak otwiera się na początku każdej rundy.
menu broni jest zintegrowane w plik główny biohazard.amxx
Pojawia się problem wywołania funkcji będącej w pliku biohazard.amxx z poziomu pluginu sklep.amxx
Czytałem trochę o funkcjach natywnych niestety orłem z programowania nigdy nie bylem i ciężko mi jest je zrozumieć.
Podejrzewam ze moglo by to na takiej zasadzie działać:
W pliku biohazard.amxx dorobiłbym cos na ksztalt:
natomiast w moim sklepie w case'ie odpowiedzialnym za zakup antidotum, wywołałbym funkcje natywną w biohazard.amxx ktora by wykonała przemianę i otworzyła menu broni...
pomoże mi to ktoś poskładać tak żeby miało sens i przede wszystkim działało?
pozdrawiam.
ps. proszę mnie nie odnosić do materiału o funkcji natywnej, bo przeczytałem go nie raz i czuje, że potrzebuję łopatologicznego wytłumaczenia na przykładzie związanym z moim problemem.... dziękuję
Użytkownik poloo89 edytował ten post 08.04.2012 17:11
Jestem obecnie na etapie konstruowania systemu sklepu...
Jedna z opcji jaką zaplanowałem jest możliwość kupienia przez zombie Antidotum.
w swoim sklepie mam już wszystko wpisane. bo wybraniu odpowiedniej opcji zombie zamienia się w człowieka na podstawie jednej z funkcji w biohazard.inc
W tym momencie pojawia się pewien problem, z którym nie mogę zbytnio sobie poradzić.
Chciałbym aby po użyciu antidotum i zamianie zm w człowieka, otworzył się menu broni, taki jak otwiera się na początku każdej rundy.
menu broni jest zintegrowane w plik główny biohazard.amxx
Pojawia się problem wywołania funkcji będącej w pliku biohazard.amxx z poziomu pluginu sklep.amxx
Czytałem trochę o funkcjach natywnych niestety orłem z programowania nigdy nie bylem i ciężko mi jest je zrozumieć.
Podejrzewam ze moglo by to na takiej zasadzie działać:
W pliku biohazard.amxx dorobiłbym cos na ksztalt:
native funkcja_natywna(id) { cure_user(id)// funckja z biohazard robiaca z zm humana menu_broni(id); // nazwa tymczasowa, zastapila by ja nazwa istniejacej juz funkcji. } menu_broni(id) { // to by była już standardowa funkcja z biohazardu }
natomiast w moim sklepie w case'ie odpowiedzialnym za zakup antidotum, wywołałbym funkcje natywną w biohazard.amxx ktora by wykonała przemianę i otworzyła menu broni...
pomoże mi to ktoś poskładać tak żeby miało sens i przede wszystkim działało?
pozdrawiam.
ps. proszę mnie nie odnosić do materiału o funkcji natywnej, bo przeczytałem go nie raz i czuje, że potrzebuję łopatologicznego wytłumaczenia na przykładzie związanym z moim problemem.... dziękuję
Użytkownik poloo89 edytował ten post 08.04.2012 17:11
Gość_21977_* 09.04.2012
Założę, że kompilujesz lokalnie.
Tworzysz sobie bibliotekę, niech będzie antidotum.inc o treści:
Następnie w pluginie z MenuBroni dodajesz na początku:
oraz w miejscu, gdzie trzeba, po prostu używasz funkcji natywnej poprzez menu_broni_biohazard(id).
Wszystko powinno działać, chyba, że się gdzieś machnąłem.
Tworzysz sobie bibliotekę, niech będzie antidotum.inc o treści:
#if defined _ANTIDOTUM_includedi wrzucasz do katalogu /include
#endinput
#endif
#define _ANTIDOTUM_included
#pragma library "ANTIDOTUM"
native menu_broni_biohazard(id);
Następnie w pluginie z MenuBroni dodajesz na początku:
#include <ANTIDOTUM>a w kodzie właściwym
public plugin_natives(){dzięki czemu, stworzyliśmy bibliotekę, informującą, że menu_broni_biohazard jest funkcją natywną, a w pluginie biohazard includujesz jedynie antidotum.inc:
register_library("ANTIDOTUM");
register_native("menu_broni_biohazard", "n_menu_broni");
}
public n_menu_broni(plugin, params){
new id = get_param(1);
menu_broni(id);
}
#include <ANTIDOTUM>
oraz w miejscu, gdzie trzeba, po prostu używasz funkcji natywnej poprzez menu_broni_biohazard(id).
Wszystko powinno działać, chyba, że się gdzieś machnąłem.
sebul
09.04.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL