Wymuszanie wygrania rundy przez...
dram
14.03.2011
Jak wymusić wygranie rundy przez dany team?
Mam załadowany orpheu co ustawia że runda nigdy się nie kończy, i chciałbym aby kończyła się wtedy kiedy ja zażyczę sobie oraz punkt został przyznawany tej drużynie której również sobie zażyczę...
Pozdrawiam.
Mam załadowany orpheu co ustawia że runda nigdy się nie kończy, i chciałbym aby kończyła się wtedy kiedy ja zażyczę sobie oraz punkt został przyznawany tej drużynie której również sobie zażyczę...
Pozdrawiam.
dram
14.03.2011
Wszystko fajnie tylko że ten plugin z moim pluginem koliduje^^ mój plugin zabrania skończenia rundy, a ten plugin kończy runde.
Np. ROUND_DRAW...
Próbowałem usunąć ale te orpheu jest nie do ogarnięcia^^
Np. ROUND_DRAW...
Próbowałem usunąć ale te orpheu jest nie do ogarnięcia^^
R3X
14.03.2011
nie trzeba ogarniać orpheu, żeby to poprawić; użyj jakieś danej wspólnej (cvar, xvar) ustawiaj na 1 jak ma nie blokować i 0 jak ma blokować; na początku obsługi komendy ustaw 1, przed handled daj 0 i problem z głowy
załączam przykładową implementację, nie testowałem
załączam przykładową implementację, nie testowałem
Załączone pliki
dram
14.03.2011
mhm a mógłbyś przerobić to tak aby działało tylko komendą wymuszanie końca rundy? Jest coś takiego aktualnie że admin wpisuje
terminate_round i runda się kończy a jak przerobić to na tylko i wyłącznie taką komendę?
hmm poza tym niestety nie działa. Dobrym rozwiązaniem byłaby tak jak wyżej napisałem komenda. Wywołuje się komende z poziomu serwera i plugin się uaktywnia(ja ten plugin wpletuje do swojego kodu)
Użytkownik dram edytował ten post 14.03.2011 21:50
terminate_round i runda się kończy a jak przerobić to na tylko i wyłącznie taką komendę?
hmm poza tym niestety nie działa. Dobrym rozwiązaniem byłaby tak jak wyżej napisałem komenda. Wywołuje się komende z poziomu serwera i plugin się uaktywnia(ja ten plugin wpletuje do swojego kodu)
Użytkownik dram edytował ten post 14.03.2011 21:50
R3X
14.03.2011
głupio mi pytać, ale..: skompilowałeś? zaraz sam sprawdzę
a z tą komendą to nie czaje zupełnie
a z tą komendą to nie czaje zupełnie
dram
14.03.2011
Mhm.
Patrz.
Można przechwycić wtedy kiedy bomba jest rozbrojona/wybuchnie itd.
public bomb_explode
...
I w tej funkcji dać wywołanie funkcji która w tym właśnie momencie WYMUSZA skończenie rundy.
Wg. mnie to jest całkiem dziwne bo wystarczy że wrzuce pliki do config/orpheu z tym wymuszaniem kończenia rundy i plugin jest tu nie potrzebny...
Bo automatycznie kończy runde.
Patrz.
Można przechwycić wtedy kiedy bomba jest rozbrojona/wybuchnie itd.
public bomb_explode
...
I w tej funkcji dać wywołanie funkcji która w tym właśnie momencie WYMUSZA skończenie rundy.
Wg. mnie to jest całkiem dziwne bo wystarczy że wrzuce pliki do config/orpheu z tym wymuszaniem kończenia rundy i plugin jest tu nie potrzebny...
Bo automatycznie kończy runde.
R3X
14.03.2011
eh, wystarczyło wyłączyć na czas wykonania komendy infinity_round komendą
I działa komenda
oraz natyw z .inc`a
I działa komenda
terminate_round timer
oraz natyw z .inc`a
Załączone pliki
dram
14.03.2011
Hmm rozumiem że dobrze mnie zrozumiałeś co miałem na myśli?
Mianowicie Chciałem się pozbyć round_draw oraz końca rundy w sytuacjach kiedy ct lub tt nie żyje, a w przypadku wybuchu lub rozbrojenia paki runda się restartuje i punkt zostaje przyznany zwycięskiemu teamowi.
// no więc testuje.
Dodano 14 marzec 2011 - 23:10:
wplotłem to do kodu i jest prawie dobrze gdyby nie to że zawsze ct wygrywa:O
Mianowicie.
Round draw usunięty w piz****
Ale gdy paka wybuchnie wygrywa ct zamiast terro, gdy wymuszam komendą wygrywanie terro i tak ct wygrywa
Pozdrawiam.
///
W przypadku gdy wymuszam wygranie TT jest normalny napis.. terrorist win ALE nie dostają punktu
// jednak tak samo jest w przypadku ct
Użytkownik dram edytował ten post 14.03.2011 23:14
Mianowicie Chciałem się pozbyć round_draw oraz końca rundy w sytuacjach kiedy ct lub tt nie żyje, a w przypadku wybuchu lub rozbrojenia paki runda się restartuje i punkt zostaje przyznany zwycięskiemu teamowi.
// no więc testuje.
Dodano 14 marzec 2011 - 23:10:
wplotłem to do kodu i jest prawie dobrze gdyby nie to że zawsze ct wygrywa:O
Mianowicie.
Round draw usunięty w piz****
Ale gdy paka wybuchnie wygrywa ct zamiast terro, gdy wymuszam komendą wygrywanie terro i tak ct wygrywa
Pozdrawiam.
///
W przypadku gdy wymuszam wygranie TT jest normalny napis.. terrorist win ALE nie dostają punktu
// jednak tak samo jest w przypadku ct
Użytkownik dram edytował ten post 14.03.2011 23:14
R3X
15.03.2011
pokaż komendę jakiej użyłeś; powinno to być pewnie coś związane z celami mapy
dram
15.03.2011
public game_forwards() <> {} public game_forwards() <disabled> { OrpheuRegisterHook(OrpheuGetFunction("CheckMapConditions", "CHalfLifeMultiplay"), "game_blockConditions") OrpheuRegisterHook(OrpheuGetFunction("CheckWinConditions", "CHalfLifeMultiplay"), "game_blockConditions") if(is_linux_server()) OrpheuRegisterHook(OrpheuGetFunction("HasRoundTimeExpired", "CHalfLifeMultiplay"), "game_blockConditions") else game_memoryReplace("roundTimeCheck", {0x90, 0x90, 0x90}) state enabled } public OrpheuHookReturn:game_blockConditions() <> return OrpheuIgnored public OrpheuHookReturn:game_blockConditions() <enabled> { OrpheuSetReturn(false) return OrpheuSupercede } game_memoryReplace(szID[], const iBytes[], const iLen = sizeof iBytes) { new iAddress OrpheuMemoryGet(szID, iAddress) for(new i; i < iLen; i++) { OrpheuMemorySetAtAddress(iAddress, "roundTimeCheck|dummy", 1, iBytes[i], iAddress) iAddress++ } server_cmd("sv_restart 1") }
a w inicie
game_forwards()
to użyłem do zablokowania rund
a to twoje (skopiowane) do zakończenia rund. Ale teraz coś się pokiepściło bo jest restart rundy tyle że punktów nie przyznaje...
Pozdrawiam.
// acha przyznaje punkt dla ct wtedy kiedy wpisze terminate_round time (wtedy wygrywa ct "target has been saved")
Dodano 15 marzec 2011 - 15:55:
mhm teraz to mi tylko chodzi o to aby przyznać punkt danej drużynie.
dram
16.03.2011
A jak pobrać ile punktów ma dany team? || jest już taki temat a jak ustawić czas rozbrajania bomby też orpheu?
R3X
16.03.2011
nasłuchuj tego eventu i zapisuj punkty, jak ktoś wygra dodaj 1 i wyślij własną wiadomość