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
 

Zdjęcie

[ROZWIĄZANE] Jak zastosować funkcję natywną.


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

#1 poloo89

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:59
  • GG:
  • Lokalizacja:Wrocław
Offline

Napisano 08.04.2012 17:09

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:
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

  • +
  • -
  • 0

#2 poloo89

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:59
  • GG:
  • Lokalizacja:Wrocław
Offline

Napisano 09.04.2012 14:48

zainteresuje sie ktos moim problemem ? :>
  • +
  • -
  • 0

#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 09.04.2012 15:03

Założę, że kompilujesz lokalnie.

Tworzysz sobie bibliotekę, niech będzie antidotum.inc o treści:
#if defined _ANTIDOTUM_included
#endinput
#endif
#define _ANTIDOTUM_included
#pragma library "ANTIDOTUM"
native menu_broni_biohazard(id);
i wrzucasz do katalogu /include

Następnie w pluginie z MenuBroni dodajesz na początku:
#include <ANTIDOTUM>
a w kodzie właściwym
public plugin_natives(){
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);
}
dzięki czemu, stworzyliśmy bibliotekę, informującą, że menu_broni_biohazard jest funkcją natywną, a w pluginie biohazard includujesz jedynie antidotum.inc:
#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.

#4 poloo89

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:59
  • GG:
  • Lokalizacja:Wrocław
Offline

Napisano 09.04.2012 15:35

Działa jak należy :D

Dzięki wielkie.

Można zamykać.
  • +
  • -
  • 0

#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 09.04.2012 16:41

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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