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

[ROZWIĄZANE] Runda Trwa i Trwa i Trwa...


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

#1 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 04.07.2012 08:36

Witam. Chciałbym przykładowy kod na to żeby runda trwała i trwała dopóki COŚ się nie stanie np. Ew w moim kodzie na koniec tego COSia wszyscy z przegranej drużyny giną więc najbardziej zalezy mi na tym żeby runda Trwała nawet po tym jak się jej czas skończy.
  • +
  • -
  • 0

#2 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 04.07.2012 08:42

http://amxx.pl/topic...infinite-round/

Tu masz podobny plugin na DeathMatcha
Nie wiem czy ogarniesz bo jest orpheu
Tylko usuń, nieskończony koniec rundy [nawet po czasie]

Użytkownik HubertTM edytował ten post 04.07.2012 08:52

  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#3 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 04.07.2012 08:55

Proponuję prostsze rozwiązanie:
#include < amxmodx >
#include < orpheu >
#include < orpheu_memory >
#include < orpheu_stocks >

new bool:isLinuxServer;

public plugin_init( ) {
isLinuxServer = bool:is_linux_server( );

OrpheuRoundE( );

}

public stalo_sie_cos( ) {
OrpheuCall( OrpheuGetFunction( "CheckWinConditions" , "CHalfLifeMultiplay" ), "CheckConditions" );
if ( !( isLinuxServer ) )
UnlockTimeRound( );

}

public OrpheuRoundE( ) {
OrpheuRegisterHook( OrpheuGetFunction( "CheckMapConditions" , "CHalfLifeMultiplay" ), "CheckConditions" );
OrpheuRegisterHook( OrpheuGetFunction( "CheckWinConditions" , "CHalfLifeMultiplay" ), "CheckConditions" );

if ( isLinuxServer ) {
OrpheuRegisterHook( OrpheuGetFunction( "HasRoundTimeExpired" , "CHalfLifeMultiplay" ), "CheckConditions" );
}
else {
BytesToReplace( "roundTimeCheck", { 0x90, 0x90, 0x90 } );
}

}

public OrpheuHookReturn:CheckConditions( ) {
/*if( sth ) return as true*/
OrpheuSetReturn( false );
return OrpheuSupercede;
}

public UnlockTimeRound( ) {
BytesToReplace( "roundTimeCheck", { 0x1, 0x1, 0x1 } );
}

//joraquimandrade's stock
stock BytesToReplace ( identifier[], const bytes[], const bytesLength = sizeof bytes ) {
new address;
OrpheuMemoryGet( identifier, address );

for ( new i; i < bytesLength; i++)
{
OrpheuMemorySetAtAddress( address, "roundTimeCheck|dummy", 1, bytes[ i ], address );
address++;
}

}


Sygnatury pobierz z tematu co dał @up. Potem w swoim kodzie wywołujesz stalo_sie_cos( ); a w CheckConditions musisz podać warunek od czego ma być zależny return. Nie jestem pewien co do poprawności tej metody w przypadku win server.
  • +
  • -
  • 1

#4 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Autor tematu
  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 04.07.2012 09:11

a czy jest możliwość wykonania nieskończonej rundy bez orpheu?
bo nie każdy serwer go posiada...

Użytkownik CheQ edytował ten post 04.07.2012 09:12

  • +
  • -
  • 0

#5 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 04.07.2012 09:58

"What's wrong using Orpheu ? Tell me, and please don't say "because I don't want to add another module", it's really a bullshit." ~Arkshine

Możesz zrobić to bez pomocy Orpheu ale nie jest to efektywne wyjście. Możesz napisać sub moduł do Rage, który podmieni w pamięci te wartości albo uchwyci zdarzenia. Możesz też użyć modułu MemHack zamiast Rage, chociaż wtedy nie osiągniesz pełnego efektu. Innymi słowy, są różne metody ale póki co tylko ta z Orpheu jest wystarczająco efektywna. Reszta może powodować błędy itp. Ewentualnie jak wspomniałem moduł Rage, ale jest dość skomplikowany i wymaga znajomości C++.

Tutaj masz post, w którym jest wyszczególnione do czego najbardziej przydaje się Orpheu.
AlliedModders - View Single Post - Orpheu VS Hamsandwhich

Mówienie, że ten moduł jest zły/ bądź chcę spróbować czegoś innego mnie denerwuje, bo to po prostu świadczy o braku wiedzy. Jeśli już ktoś nie potrafi dodać modułu na serwer i wrzucić raptem pięciu plików to współczuję i polecam iść zająć się czymś prostszym jak na przykład obieranie ziemniaków ;)
  • +
  • -
  • 1

#6 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 04.07.2012 12:15

Orpheu nie działa na specyficznych środowiskach oprogramowania, w związku z tym nie każdy ma możliwość instalacji tego modułu.
Do tej pory nikt na AM nie znalazł rozwiązania, a ConnorMcLeod nawet proponuje przerzucić się na Rage, który z kolei działa wszędzie.

#7 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Autor tematu
  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 04.07.2012 13:12

Mówienie, że ten moduł jest zły/ bądź chcę spróbować czegośinnego mnie denerwuje



Nie powiedziałem że Orpheu jest zły. Dodając plugin na forum większość może się "skrzywić" (to chyba odpowiednie słowo) na samą myśl o tym że muszą coś robić więcej niż skopiować do odpowiednich folderów (nie obrażając użytkowników forum)

Skoro ta metoda jest najlepsza skorzystam z niej. Dziękuje za kod.
  • +
  • -
  • 0

#8 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 04.07.2012 20:05

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

marwit-0.png





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

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