Wywołanie komendy na graczu przy zadaniu dmg.
skorpius
01.08.2015
Oraz podskok (spacja) czekam na propozycję!
Coś jak:
-duck, +duck
Oraz
-jump, +jump.
Rivit
01.08.2015
złap TakeDamage Post, sprawdź czy ofiara jest żywa, jeżeli tak to użyj wtedy client_cmd(this, "+duck") albo +jump, a jak chcesz żeby potem wstał sam to set_task, jako id taska podajesz id ofiary i w funkcji od taska wykonujesz client_cmd z komendą -jump/-duck.
Chyba jasno napisałem
skorpius
01.08.2015
register_event("Damage", "Kucnij_se", "b", "2!=0");
public Kucnij_se(id) { new idattacker = get_user_attacker(id); if(!is_user_alive(idattacker)) return; if(!ma_klase[idattacker]) return; if(random_num(1, 2) != 1) return; client_cmd(id, "+duck"); }
To mi nie działa /testowane na botach
Jakieś sugestie?
Rivit
01.08.2015
this czy id, to kwestia jak sobie nazwiesz parametr... W każdym razie chodzi mi o ofiare, a standardowo jest to nazwane this
skorpius
03.08.2015
RegisterHam(Ham_TakeDamage, "player", "Fw_PlayerTakeDamage", 0)
public Fw_PlayerTakeDamage(id, idinflictor, idattacker, Float:damage, damagebits) { if(!ma_klase[idattacker])return; if(random_num(1, 2) != 1) return; client_cmd(id, "+duck");return HAM_SUPERCEDE }
no za pomocą "kanapki" to tylko tak potrafię.
Użytkownik skorpius edytował ten post 03.08.2015 18:11
Rivit
03.08.2015
złap TakeDamage Post
Ty łapiesz pre -.-
sprawdz czy attacker jest podłączony i czy ofiara jest żywa (id w tym przypadku)
Gdzieś czytałem że random jest szybsze, więc
if(random_num(1, 2) != 1) return;
->
if(!random(2)) return
return HAM_SUPERCEDE
Tym to sobie możesz... Zablokujesz wszystkie obrażenia, chyba że o to Ci chodzi, ale kompilator i tak wyrzuci błąd bo użyłeś raz returna bez wartości, a potem zwracasz supercede
+dorób task z -duck, jeżeli ma wstać po jakimś czasie
EDIt: Tak, prawie ci lekcje, bo nie czytasz tego co pisze, gdybyś włożył minimum wysiłku i poszukał troszkę w różnych pluginach kodu to byś miał, na gotowca nie licz (niedość, że na tel to i tak nie)
skorpius
03.08.2015
Stary widzę że lekcje mi prawisz/ zrób mi gotowca i po temacie. Proszę.
NoLiFeR
04.08.2015
Jak powiedzial kiedyś ktoś mądry :
Daj człowiekowi rybę, a będzie najedzony przez jeden dzień. Daj człowiekowi wędkę, a będzie najedzony przez całe życie.
My staramy się Tobie wytłumaczyć, jak zrobić to tak, abyś w przyszłości umiał zrobić to sam.
Dawanie gotowców to ostra droga na skróty. Jeżeli nie chcesz się uczyć podstawowego programowania w tym języku, to lepiej skończ z serwerami...
co do tematu :
public Fw_PlayerTakeDamage(id, idinflictor, idattacker, Float:damage, damagebits) { if(!ma_klase[idattacker])return; if(random_num(1, 2) != 1) return; client_cmd(id, "+duck"); return HAM_SUPERCEDE }
Ten kod nie jest zły, lecz ma dwie zasadnicze wady.
1.
Kod się nie skompiluje z błędem
error 078: function uses both "return" and "return <value>"
ponieważ używasz return bez parametru, a następnie return z parametrem w jednej funkcji. Jest to niedozwolone oraz owocuje wywaleniem w/w błędu. (daj return HAM_IGNORED zamiast return przy randomie oraz sprawdzaniu czy ma klase)
2.
łapiesz wydarzenie pre zamiast post. (0 zamiast 1 w ost parametrze RegisterHam)
A być może gracz zginie od zadanego dmg ?
Z tego co pamiętam, albo na zbotach albo na podbotach nie działa wykonywanie komend.
zaproś kumpla, aby pomógł ci stestować daną funkcje. Testowanie na botach to ostateczność...
Użytkownik NoLiFeR edytował ten post 04.08.2015 04:46
Rivit
04.08.2015
@up
ad 1, 2 - napisałem o tym przecież
Co do komend:
+jump można wykonać ustawiając jakieś velocity, żeby gracza do góry "hopło"
skorpius
16.08.2015
Tak się odpowiada. +
TibacK (mniej podchodów )
zaproś kumpla
nikt nie gra w 1.6 tylko nudne GO.
Z tego co pamiętam, albo na zbotach albo na podbotach nie działa wykonywanie komend.
Domyślałem się bo Exp i perki też nie daje za zabicie.
Close down Mr Admin.
Linux'
16.08.2015
Tak się odpowiada. +
TibacK (mniej podchodów )
zaproś kumplanikt nie gra w 1.6 tylko nudne GO.
Z tego co pamiętam, albo na zbotach albo na podbotach nie działa wykonywanie komend.Domyślałem się bo Exp i perki też nie daje za zabicie.
Close down Mr Admin.
Czym innym jest wykonywanie komend na bocie a czym innym funkcji. W silniku po prostu zdobywanie itemow i doswiadczenia gdy nie ma sie klas jest zablokowane.
Edit: Poza tym nie mozna wykonywac komend z przedrostkiem +/-.
skorpius
16.08.2015
Czym innym jest wykonywanie komend na bocie a czym innym funkcji. W silniku po prostu zdobywanie itemow i doswiadczenia gdy nie ma sie klas jest zablokowane.
Botów do cod moda które mają wybrane klasy też się tyczy?
Edit: Poza tym nie mozna wykonywac komend z przedrostkiem +/-.
Nie wiem o co panu chodzi; +duck-kliknięcie Ctrl -duck puściłeś Ctrl (granie na skryptach uczy)
Bez tych przedrostków system nie będzie wiedział co ma zrobic, nie ma osobnego duck // stand .
Sp. Dzięki że czytasz poje wcześniejsze posty:
Stary widzę że lekcje mi prawisz/ zrób mi gotowca i po temacie. Proszę.
Już zostałem ukarany. Skoro twierdzisz że za mało.....ok.
Linux'
16.08.2015
Czym innym jest wykonywanie komend na bocie a czym innym funkcji. W silniku po prostu zdobywanie itemow i doswiadczenia gdy nie ma sie klas jest zablokowane.Botów do cod moda które mają wybrane klasy też się tyczy?
Edit: Poza tym nie mozna wykonywac komend z przedrostkiem +/-.Nie wiem o co panu chodzi; +duck-kliknięcie Ctrl -duck puściłeś Ctrl (granie na skryptach uczy)
Bez tych przedrostków system nie będzie wiedział co ma zrobic, nie ma osobnego duck // stand .
Sp. Dzięki że czytasz poje wcześniejsze posty:
Stary widzę że lekcje mi prawisz/ zrób mi gotowca i po temacie. Proszę.Już zostałem ukarany. Skoro twierdzisz że za mało.....ok.
Czym innym jest wykonanie okreslonej komendy po stronie gracza a czym innym po stronie serwera. Po stronie gracza mozna wykonac wszystko ale po stronie serwera np nie przypiszesz funkcji po nacisnieciu +attack. Co do tych botow, nie chce mi sie nawet wypowiadac. Poucz sie chlopczyku pozniej mnie cytuj, tyle w temacie.
NoLiFeR
18.08.2015
Po stronie gracza mozna wykonac wszystko ale po stronie serwera np nie przypiszesz funkcji po nacisnieciu +attack.
Oj tutaj się nie zgodze
łapanie cmdpre + pev_button (IN_ATTACK) + pev_oldbuttons (~IN_ATTACK) + danafunkcja(id)
Ale ogólnie poprzez register_clcmd nie przypisze funkcji, przy czym masz racje