[KOSZ] Natywy ? Forwardy ? Pomocy :x
ogieR8
20.11.2014
~ Siemka.. od 2 godzin czytam na temat forwardów i natywów i się już pogubiłem, które mi się tutaj przyda w tej sytuacji i jak się za to zabrać..
w 1 pluginie jest broń przerobiona z ZP 4.3
new have_gun[33]; public set_gun(id,mode) { if(mode=1) { drop_weapons(id, 2) // wyrzuca bron na 2 slocie create_gun(id) // dostaje nowa bron (edycja z [ZP 4.3] have_gun[id]=1 // otrzymuje 'uprawnienia' do tej broni.. } else have_gun[id]=0 // traci 'uprawnienia' do tej broni }
2 plugin to diablo, tam gdzie wybieram daną klasę chcę używać funkcji set_gun(id,1) aby dostać broń, a tam gdzie zmieniam tą klasę na inną chcę użyć funkcji set_gun(id,0) <- nazwy funkcji się pewnie zmienią korzystając z forwardów, czy natywów.
Więc pytanie: w tej sytuacji czego mam użyć ? Przeczytałem wiele tematów (poradniki R3X'a, problemy odnośnie tych tematów, pytania.. przerabiałem przykłady), ale nie umiem się skupić widocznie bo nic mi do głowy wejść nie potrafi.. Kod u góry to jest przykład ogólny, może ktoś doświadczony w tej dziedzinie umiałby na tym przykładzie rozpisać co by w tej sytuacji zrobił dokładnie ? Co w .inc, co w 'pluginie-bibliotece', a co w właściwym pluginie ? Mojego kodu kopiować nie trzeba -> chodzi mi co tutaj brakuje (bo na razie z tych 2 dziedzin nie ma nic), aby to co chce wykonać.. zadziałało ? I czytałem, że i w jednym jak i drugim (bodajże) można ominąć pliki .inc, jeśli osoba, która odpowiada wie jak to zrobić - to zależałoby mi na tej opcji, ponieważ przerabiam wiele broni z ZM na mojego diablo i zabawa w 24 includy dla samych broni.. śmietnik mi zrobi
Proszę o odpowiedź, na tym przykładzie podszkolę się i przerzuce to do mojego konkretnego przykładu
Pozdrawiam, z góry dzięki
~ ogieR8
grankee
21.11.2014
native-udestepnianie funkcji z pluginu biblioteki, ktora cos robi w tymze pluginie-bibliotece. Tzn masz jakis plugin i jakies tam funkcje i teraz chcesz w nowopisanym pluginie zmienic cos w tym pluginie-bibliotece, to musisz w pluginie-bibliotece zrobic funkcje natywna, ktorej uzyjesz w nowopisanym pluginie, aby dokonac jakiejs akcji w pluginie-bibliotece.
Przyklad:
pb-plugin biblioteka
tp-twój plugin
W pb tworzysz funkcje natywną, która daje graczowi bron, ammo.
W tp uzywasz tej funkcji z odpowiednimi parametrami, na ktore funkcja w pb jest przygotowana np.
daj_bron(id,BRON_m4a1)
Forwardu używasz jeśli z pb chcesz wywołać jakieś zdarzenie np. w pb masz zarejestrowane zdarzenie smierci, wywolujesz forward o nazwie "zabicie" z odpowiednimi parametrami np. nick zabójcy. Teraz w tp dajesz tylko
public zabicie(name[])
i teraz ilekroć pb wykryje smierc gracza tylekroć funkcja w tp zostanie zaalarmowana.
Użytkownik grankee edytował ten post 21.11.2014 01:10
ogieR8
24.11.2014
Noo.. czyli ja potrzebuje:
1. natywnej funkcji z pluginu biblioteki na dostanie broni w moim pluginie, albo
2. forwardu z mojego pluginu gdy gracz ma_klase=xyz aby warunek tego eventu wrzcic do biblioteki.
natyw:
wydarzenie -> funkcja z biblioteki
forward:
wydarzenie z biblioteki -> funkcja
Dobrze mysle ze sa one przeciwieństwem i nawzajem sie dopelniaja ? ;x
A wyjasnilby mi ktos na moim przykladzie jak zrobic jeden dobrze dzialajacy natyw ? (ta droga wydaje sie dla mnie lepsza)
grankee
25.11.2014
Jeśli masz funkcję set_gun() w pluginie x, natomiast w pluginie diablo chcesz jej użyć to w pluginie diablo możesz executować forward o nazwie takim jak nazwa funkcji dającej broń i to wystarczy. Nie potrzeba Ci tutaj natywów.
http://amxx.pl/topic/28693-forwardy/
I tak jak napisał Miczu w poście poniżej, nie potrzebujesz nic w pliku inc, jedynie createmultiforward i execute.
DarkGL
27.11.2014
Napisz ponownie temat nazywając go tak, aby każdy wiedział o co chodzi.
Jednoznacznie określ problematykę tematu, wyróżniając go spośród reszty.
Nie dodawaj zbędnych informacji, znaków, ani emotikon w nazwie tematu.
Ten temat w ciągu 24 godzin zostanie przeniesiony do kosza.