Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Wymuszanie wygrania rundy przez...


  • Zamknięty Temat jest zamknięty
13 odpowiedzi w tym temacie

#1 dram

    Wszechwidzący

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 14.03.2011 15:35

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.
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 14.03.2011 18:04

Round Terminator - AlliedModders

ten sam autor, ten sam moduł
  • +
  • -
  • 1

#3 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 14.03.2011 20:53

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^^
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 14.03.2011 21:10

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łączone pliki


  • +
  • -
  • 1

#5 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 14.03.2011 21:40

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

  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 14.03.2011 22:01

głupio mi pytać, ale..: skompilowałeś? zaraz sam sprawdzę


a z tą komendą to nie czaje zupełnie
  • +
  • -
  • 0

#7 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 14.03.2011 22:09

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.
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 14.03.2011 22:13

eh, wystarczyło wyłączyć na czas wykonania komendy infinity_round komendą

I działa komenda
terminate_round timer

oraz natyw z .inc`a

Załączone pliki


  • +
  • -
  • 0

#9 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 14.03.2011 22:28

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

  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#10 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 15.03.2011 00:25

pokaż komendę jakiej użyłeś; powinno to być pewnie coś związane z celami mapy
  • +
  • -
  • 0

#11 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 15.03.2011 07:29

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.
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 15.03.2011 20:08

Half-Life 1 Game Events - AlliedModders Wiki
  • +
  • -
  • 0

#13 dram

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 16.03.2011 15:49

A jak pobrać ile punktów ma dany team? || jest już taki temat a jak ustawić czas rozbrajania bomby też orpheu?
  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#14 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.03.2011 16:42

nasłuchuj tego eventu i zapisuj punkty, jak ktoś wygra dodaj 1 i wyślij własną wiadomość
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych