[ROZWIĄZANE] Wywolanie funkcji knife dista...
Najlepsza odpowiedź GT Team 03.07.2013 12:10
new forwardw plugin init
forward = CreateMultiForward("twojplugin_traceline", ET_CONTINUE, FP_FLOAT, FP_FLOAT, FP_CELL, FP_CELL, FP_CELL)w w trace line
public fwTraceline(Float:fStart[3], Float:fEnd[3], conditions, id, ptr) { new ret; // wartosc zwracana ExecuteForward(forward, ret, fStart, fEnd, conditions, id, ptr) return vTrace(id, ptr,fStart,fEnd,conditions) }w inc biblioteki
forward twojplugin_traceline(Float:fStart[3], Float:fEnd[3], conditions, id, ptr)w innym pluginie
#includei gdzies w pluginie
public twojplugin_traceline(Float:fStart[3], Float:fEnd[3], conditions, id, ptr) { client_print(id, 3, "U cb traceline, origin poczatkowe %0.1f ...", fStart) // tutaj mozesz zmienic wartosci czy cos return PLUGIN_HALNDED // czyli tutaj dajemy wstrzymanie, wiec w tamtym wlasciwym pluginie, gdzie jest prawdziwy traceline ta funkcja zostanie zatrzmana tzn //ExecuteForward(forward, ret, fStart, fEnd, conditions, id, ptr) //return vTrace(id, ptr,fStart,fEnd,conditions) // to nie zostanie wykonanePisalem bez uzycia amxstudio wiec moglem cos zle zrobic. Poczytaj to: http://amxx.pl/topic/28693-forwardy/
edit, w innym pluginie < nazwa_pluginu > Przejdź do postu
Kewin. (ZeZ)
17.06.2013
Chcąc pobrać funkcję:,
w init: register_forward(FM_TraceLine, "fwTraceline") register_forward(FM_TraceHull, "fwTracehull", 1) public fwTraceline(Float:fStart[3], Float:fEnd[3], conditions, id, ptr){ return vTrace(id, ptr,fStart,fEnd,conditions) } public fwTracehull(Float:fStart[3], Float:fEnd[3], conditions, hull, id, ptr){ return vTrace(id, ptr,fStart,fEnd,conditions,true,hull) } vTrace(id, ptr,Float:fStart[3],Float:fEnd[3],iNoMonsters,bool:hull = false,iHull = 0){ if(is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE){ xs_vec_sub(fEnd,fStart,fEnd) xs_vec_mul_scalar(fEnd,get_pcvar_float(g_pCvar),fEnd); xs_vec_add(fEnd,fStart,fEnd); hull ? engfunc(EngFunc_TraceHull,fStart,fEnd,iNoMonsters,iHull,id,ptr) : engfunc(EngFunc_TraceLine,fStart,fEnd,iNoMonsters, id,ptr) } return FMRES_IGNORED; }
aby było ją można czytać w innym publicu, nie wiem jak za to sie zabrac:/
Chciałbym, aby ją czytało przy na przykład dolaczaniu na serwer.
Myslalem o set_tasku?
set_task(0.1, "fwTraceline", id, _, _, "b"); set_task(0.1, "fwTracehull", id, _, _, "b");
Tylko, czy to w ogole zadziala...? I czy w ogole mozna tak to zrobic ?
Poradzilbym sobie chyba pewno sam, metoda prob i bledow, ale nie mam serwera.
Chetnie przyjme wszelkie wskazowki.
DarkGL
17.06.2013
task to tak nie bardzo
pytanie po co chesz wywołływać tą funkcje ? jaki efekt chcesz osiągnać
Kewin. (ZeZ)
27.06.2013
chcialbym dodac to do statystyk codmod'a
Im wiecej punktow w statystyke to sie wydluza zasieg noza
DarkGL
27.06.2013
więc
Chciałbym, aby ją czytało przy na przykład dolaczaniu na serwer.
nie jest ci potrzebne
Kewin. (ZeZ)
27.06.2013
Nie wiem co ja wtedy myslalem, piszac wtedy ten temat, ale chodzi mi właśnie, aby to dodać do statystyk diablo badz codmod'a.
Chcialem zrobic, to by czytalo do jednego publica, a potem z tego jednego publica by podczas wczytywaniu ATRYBUTOW wczytywalo takze tego publica, ktory by zawieral tamte pare publicow
Bo innego sposobu nie wymyslilem, aby wsadzic caly ten kod co podalem w pierwsyzm poscie do ZastosujAtrybuty
A tak chyba by dzialalo, tylko wlasnie chcialbym wiedziec, jak zrobic, by ten caly kod umiescic w jendym publicu
Teraz chyba mnei rozumiesz?
GwynBleidD
02.07.2013
Wyjaśnij co dokładnie chcesz zrobić. Wprowadzić podplugin łączący się z Codem lub diablo i dodający statystyki jakieś? Jeśli tak, co to za statystyki mają być? Opisz dokładnie, w zrozumiały sposób to.
Kewin. (ZeZ)
03.07.2013
Chce zrobić statystyke powiedzmy do codmod'a nowego.
Aby przy dodawaniu punktow w ta statystyke powiekszal sie zasieg noza.
I wlasnie o to mi chodzi.
________
Ja myslalem, aby to zrobic w ten sposob, ze tam gdzie jest ZastosujAtrybuty(id); to pod tym dodaj powiedzmy Zamaszystosc(id); i aby z tego czytalo ta funkcje.
Ale wtedy by musiala byc w jednym publicu, a ona jest troche bardziej rozgaleziona.
Użytkownik Kewin. (ZeZ) edytował ten post 03.07.2013 09:50
Kewin. (ZeZ)
03.07.2013
Nie znam sie na tym.
Jak to by wygladalo?
Tak:??
public plugin_natives(){ register_native("CreateOneForwardNative", "Zamaszystosc"); } public Zamaszystosc(id){ new function[32] function = find_plugin_byfile("modifer_knife_distance.amxx"); get_string(1, function, 31); forward_id=CreateOneForward(id, function, FP_CELL); }
Czy:???
new ret; new forward_handle = CreateMultiForward("fwTraceline", ET_CONTINUE, FP_CELL, FP_CELL) ExecuteForward(forward_handle, ret, id, ?); new forward_handlee = CreateMultiForward("fwTracehull", ET_CONTINUE, FP_CELL, FP_CELL) ExecuteForward(forward_handlee, ret, id, ?); }
Czy jak?
Najlepsza odpowiedź GT Team 03.07.2013
new forwardw plugin init
forward = CreateMultiForward("twojplugin_traceline", ET_CONTINUE, FP_FLOAT, FP_FLOAT, FP_CELL, FP_CELL, FP_CELL)w w trace line
public fwTraceline(Float:fStart[3], Float:fEnd[3], conditions, id, ptr) { new ret; // wartosc zwracana ExecuteForward(forward, ret, fStart, fEnd, conditions, id, ptr) return vTrace(id, ptr,fStart,fEnd,conditions) }w inc biblioteki
forward twojplugin_traceline(Float:fStart[3], Float:fEnd[3], conditions, id, ptr)w innym pluginie
#includei gdzies w pluginie
public twojplugin_traceline(Float:fStart[3], Float:fEnd[3], conditions, id, ptr) { client_print(id, 3, "U cb traceline, origin poczatkowe %0.1f ...", fStart) // tutaj mozesz zmienic wartosci czy cos return PLUGIN_HALNDED // czyli tutaj dajemy wstrzymanie, wiec w tamtym wlasciwym pluginie, gdzie jest prawdziwy traceline ta funkcja zostanie zatrzmana tzn //ExecuteForward(forward, ret, fStart, fEnd, conditions, id, ptr) //return vTrace(id, ptr,fStart,fEnd,conditions) // to nie zostanie wykonanePisalem bez uzycia amxstudio wiec moglem cos zle zrobic. Poczytaj to: http://amxx.pl/topic/28693-forwardy/
edit, w innym pluginie < nazwa_pluginu >
Kewin. (ZeZ)
03.07.2013
dzięki
Jesli bys mogltoprzeanalizuj to:
_____
Czyli plugin modifer'a bedzie wygladal tak:???
to jest include:
forward zamaszystosc(Float:fStart[3], Float:fEnd[3], conditions, id, ptr); forward zamaszystosc2(Float:fStart[3], Float:fEnd[3], conditions, hull, id, ptr);
A w pluginie codmod dodaje include nazwa_pliku oraz:
Jesli o to chodzi, to znow mam dwa publici
GT Team 03.07.2013
g_forward = CreateMultiForward("zamaszystosc", ET_CONTINUE, FP_FLOAT, FP_FLOAT, FP_CELL, FP_CELL, FP_CELL) g_forward2 = CreateMultiForward("zamaszystosc2", ET_CONTINUE, FP_FLOAT, FP_FLOAT, FP_CELL, FP_CELL, FP_CELL, FP_CELL)w g_forward2 masz 4 FP_CELL a w trace line masz tylko 3 wartości całkowite, tzn żebyś usunał 1 FP_CELL
fwTraceline(Float:fStart[3] FLOAT, Float:fEnd[3] FLOAT , conditions CELL, id CELL, ptr CELL)
FP_CELL - całkowite FP_FLOAT - float FP_STRING - string i cos tam jeszcze ;dA tak to ogolnie dobrze, i w tym pluginie codmod w tych publicach mozesz integrowac do traceline.
Kewin. (ZeZ)
04.07.2013
Dalem 4, bo jest TraceLine i TraceHull.
TraceLine ma mniej wartosci a TraceHul ma wiecej.
Kewin. (ZeZ)
04.07.2013
Na razie mozna zamknac, bo nie mam serwera.
Ja teraz po prostu szukam i robie wszytskie rzeczy na serwer, ktory wkrotce postawie
Jak postawie i sprawdze, to dam Ci znac
dzięki.
Użytkownik Kewin. (ZeZ) edytował ten post 04.07.2013 19:59