←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Natywy

Zablokowany

  • +
  • -
dram - zdjęcie dram 01.11.2010

Witam.

Mam problem a zarazem pytanie jak zrobić związku z natywami.

Mianowicie chcę zrobić tak aby:

W głównym skrypcie A po wpisaniu /menu pojawia nam się menu z itemkami.

Itemki te są pobierane z innych pluginów. Tzn te drugorzędne pluginy jakby dodawały jeden item i jedną opcje do tego menu.

I jeżeli oczywiście się wybierze item z /menu to co dalej ma się dziać jest czytane z tego pliku drugorzędnego który jest odpowiedzialny za działanie tego itemu.

Coś jak na Zombie modzie. Tam mamy ,że tworzymy plugin drugorzędny który dodaje nam jedną opcje do menu z itemkami. Tak samo chcę tutaj.

Ale najlepiej jak ktoś poda przykład bo nie umiem skapować z tego Zombie Moda tego menu.

Pozdrawiam.
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 01.11.2010

Żaden z kodów, które mam nie pomoże Ci wcale więcej niż Zombie, a nowego nie chce mi się pisać. Poszukaj AmmoPacków GoQ`a, tam jest ten sam system i mniej kodu. Spróbuję Ci opisać czego się podejmujesz:


Musisz zdecydować jak dużą swobodę mogą mieć te mniejsze pluginy. Serdecznie polecam użycie tablic Array:. Z natywów to obowiązkowo musisz udostępnić rejestrator, czyli dodawanie nowej opcji do menu.
native register_option(const szNazwa[]);
Wszystko co podasz przy rejestracji powinieneś zapisać w tablicach. Oprócz nazwy może to być cena, flagi dostępu itd.

Jeśli plugin ma reagować na wybranie z menu to dobrze by było przypisać mu forward. Są 2 możliwości:
1. Multiforward z parametrem id-opcji
generalnie prosta sprawa, tworzysz 1 funkcję, której użyją wszystkie pluginy z ifem czy id==mojeid (zwracane przez register_option)
forward option_used(id);
2. OneForward z podawaniem funkcji forwardu
native register_option(const szNazwa[], const szFunkcja[]);
natyw w podstawowym stylu podaje ID pluginu, więc to tylko kwestia przechowania uchwytu forwardu


Połączenie tego natywu i forwardu to minumum.
Odpowiedz
Zablokowany