Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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
Zombie Plague 4.3

[ROZWIĄZANE] Respawn Zombie 3 razy

zombie plague 4.3

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

#1 Shaxu

    Zaawansowany

  • Użytkownik

Reputacja: 19
Początkujący

  • Postów:82
  • Imię:Adam
  • Lokalizacja:Olsztyn
Offline

Napisano 21.05.2014 13:22

Witam Serdecznie, mam jedno pytanie, w jaki sposób można ustawić limit respawnu Zombie a mianowicie tylko do 3 razy, jak wiadomo korzystając z rozwiązania jakie oferuje Zombie Plague, daje respawn z nieskończoną ilością razy użyć.

Czekam na Ciekawe propozycje i sugestie w jaki sposób można to ustawić pozdrawiam !


  • +
  • -
  • 0

#2 VertekS

    Zaawansowany

  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:80
  • Lokalizacja:amxxpc.exe
Offline

Napisano 21.05.2014 15:11

Linia 2271:

if (get_pcvar_num(cvar_deathmatch) == 2 || (get_pcvar_num(cvar_deathmatch) == 3 && random_num(0, 1)) || (get_pcvar_num(cvar_deathmatch) == 4 && fnGetZombies() < fnGetAlive()/2))

Utwórz globalną tablicę 33 - elementową (np. moznaRespic[33]), dodaj warunek w linii 2271, bądź w jej pobliżu, że jeżeli moznaRespic[id] jest mniejsze niż 3, to respisz gracza i powiększ moznaRespic[id] o 1. Dodatkowo na początku rundy / przy wyjściu gracza resetuj wszystkie komórki tablicy.


  • +
  • -
  • 1

#3 Shaxu

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 19
Początkujący

  • Postów:82
  • Imię:Adam
  • Lokalizacja:Olsztyn
Offline

Napisano 28.05.2014 09:06

Średnio rozumiem co chciałeś mi przekazać dlatego też wolałbym abyś napisał dokładniej co chodziło Ci po głowie.

Start był dobry z ustawieniem tego, ale dalej się troszku pogubiłem...

new g_ammopacks[33] // ammo pack count
new g_respawn3times[33] // respawn 3 times
if (get_pcvar_num(cvar_deathmatch) == 2 || (get_pcvar_num(cvar_deathmatch) == 3 && random_num(0, 1)) || (get_pcvar_num(cvar_deathmatch) == 4 && fnGetZombies() < fnGetAlive()/2))
if (g_respawn3times[id] < 3)

Dalszej części całkowicie nie zrozumiałem co chciałeś napisać aby ustawił, dlatego jeśli znajdziesz chwilę czasu napisz konkretne funkcje tak abym nie musiał popełniać wtopy, plusik dam za rozwiązanie połowiczne, dobre nakierowanie ale problem nie zostaje rozwiązany...


Użytkownik Shaxu edytował ten post 28.05.2014 09:10

  • +
  • -
  • 0

#4 Vasto_Lorde

    Cham

  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:620
  • GG:
  • Steam:steam
  • Imię:Maćko
  • Lokalizacja:Poznań
Offline

Napisano 28.05.2014 12:46

if (g_respawn3times[id] < 3)

Nie sprawdzaj czy mniejsze niż 3, tylko czy mniejsze niż 1 (czyli czy już nie ma żadnych "liczników" odrodzenia). Jeśli już nie ma liczników, nie odradzaj (czyli chyba stop funkcji, nie wiem jak cały kod wygląda), a jeśli ma jeszcze liczniki to:

g_respawn3times[id]--;

 

PS. Pamiętaj o ustawieniu tej zmiennej znów na 3, przy początku rundy.


  • +
  • -
  • 1

#5 VertekS

    Zaawansowany

  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:80
  • Lokalizacja:amxxpc.exe
Offline

Napisano 28.05.2014 13:53

Dodatkowo na początku rundy / przy wyjściu gracza resetuj wszystkie komórki tablicy.

W plugin_init dodajesz obsługę eventu nowej rundy:

register_event("HLTV", "newRound", "a", "1=0", "2=0")

Na początku rundy ustawiasz wszystkim graczom ilość respawnów na 3:

public newRound(id){
    g_respawn3times[id] = 3
}

To samo, co przy evencie HLTV, robisz przy wyjściu gracza z serwera:

public client_disconnect(id){
    g_respawn3times[id] = 3
}

Można też dodać resetowanie możliwych respawnów przy wzięciu antidotum (w ZP 4.3 funkcja zp_user_humanized_post).

EDIT: Pomysł Vasto_Lorde jest bardziej przejrzysty dla człowieka. Odejmowanie licznika i sprawdzanie, czy jest większy niż zero, to lepsze rozwiązanie.


Użytkownik VertekS edytował ten post 28.05.2014 13:56

  • +
  • -
  • 1

#6 Shaxu

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 19
Początkujący

  • Postów:82
  • Imię:Adam
  • Lokalizacja:Olsztyn
Offline

Napisano 29.05.2014 09:46

Okej dziękuję za udzieloną pomoc, problem rozwiązany.

Modyfikacja działa jak marzenie.

 

Temat do Zamknięcia.


  • +
  • -
  • 0

#7 CheQ

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

  • Junior Admin

Reputacja: 1984
Godlike

  • Postów:5534
  • Imię:Adaś
  • Lokalizacja:Glinianka
Offline

Napisano 30.05.2014 09:47

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


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

b_560_95_1.png






Również z jednym lub większą ilością słów kluczowych: zombie plague 4.3

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

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