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
CS:S

[ROZWIĄZANE] Pobranie id gracza po freeze time

cs:s

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

#1 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 22.12.2014 11:08

Chcialbym pobrac id gracza po czasie zamrozenia i wywolac jakas funkcje jednak mam z tym problem. Z niewiadomego powodu wyskakuje mi error na serwerze.

 

Najpierw rejestruje poczatek rundy

HookEvent("round_freeze_end", PoczatekRundy);

potem dodaje public

public Action:PoczatekRundy(Handle:event, const String:name[],bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	PrintToChat(client, "Tekst test.");
}

i wyskakuje mi ten error.

L 12/21/2014 - 20:44:20: [SM] Native "PrintToChat" reported: Client index 0 is invalid

Próbowałem też pobrać id za pomocą pętli ale cały czas wyświetla się ten sam błąd. Najdziwniejsze jest to, że błąd wyskakuje tylko przy pobraniu id gracza, jak zrobiłem np w poniższy sposób to wszystko działało.

public Action:PoczatekRundy(Handle:event, const String:name[],bool:dontBroadcast)
{
	PrintToChatAll("Tekst test.");
}

  • +
  • -
  • 0

b35020692_qesnxqa.png


#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 981
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 22.12.2014 11:18

Próbowałem też pobrać id za pomocą pętli

 

tzn ?

 

widać userid dla tego eventu jest równy 0


  • +
  • -
  • 0

#3 Linux'

    Pan Pomocny

  • Autor tematu
  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 22.12.2014 11:32

 

Próbowałem też pobrać id za pomocą pętli

 

tzn ?

 

widać userid dla tego eventu jest równy 0

 

 

A np w ten sposób

public Action:PoczatekRundy(Handle:event, const String:name[],bool:dontBroadcast)
{
	for(new i=0;i<=64;i++)
	{
		PrintToChat(i, "Tekst test.");
	}
}

  • +
  • -
  • 0

b35020692_qesnxqa.png


#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 22.12.2014 11:46

W sm jest tak samo jak w amxx, jeśli chcesz coś robić z graczami w pętli, to musisz sprawdzać, czy dany gracz jest na serwerze/żywy.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 Linux'

    Pan Pomocny

  • Autor tematu
  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 22.12.2014 19:55

W sm jest tak samo jak w amxx, jeśli chcesz coś robić z graczami w pętli, to musisz sprawdzać, czy dany gracz jest na serwerze/żywy.

 

No tak ale to był tylko przykład. Nawet jak dodałem sprawdzanie czy grac jest połączony czy nie to cały czas ten sam błąd.


  • +
  • -
  • 0

b35020692_qesnxqa.png


#6 Oddaj Wiertarke

    Profesjonalista

  • Użytkownik

Reputacja: 74
Pomocny

  • Postów:164
  • Imię:Matico
  • Lokalizacja:Wieś
Offline

Napisano 22.12.2014 23:54

Zaczynaj od i=1 lub użyj kodu poniżej który mi pomogł :D

		for (new i=1; i<=64; i++)
		{
			if(i>0 && i<64 && IsClientInGame(i) && IsPlayerAlive(i))
			{
				//cos tam dalej
			}
		}

Użytkownik Oddaj Wiertarke edytował ten post 22.12.2014 23:55

  • +
  • -
  • 0

#7 Linux'

    Pan Pomocny

  • Autor tematu
  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 23.12.2014 10:02

 

Zaczynaj od i=1 lub użyj kodu poniżej który mi pomogł :D

		for (new i=1; i<=64; i++)
		{
			if(i>0 && i<64 && IsClientInGame(i) && IsPlayerAlive(i))
			{
				//cos tam dalej
			}
		}

 

 

Uzyłem twojego kodu:

for (new i=1; i<=64; i++)
	{
		if(i>0 && i<64 && IsClientInGame(i) && IsPlayerAlive(i))
		{
			PrintToChat(i, "Tekst test.");
		}
	}

ale errory są nadal.

L 12/23/2014 - 09:58:27: [SM] Native "IsClientInGame" reported: Client index 15 is invalid

Hm dziwne jest to, że mam zarejestrowane odrodzenie i smierc gracza i tam zadnego problemu z pobraniem id nie ma.

 

Ps: Dziś zobaczyłem, że dzieje się to samo gdy chce pobrac id przy nowej rundzie (przed freeze time).

 

 

 


  • +
  • -
  • 1

b35020692_qesnxqa.png


#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 23.12.2014 10:41

No to
for(new i=1,max=GetMaxClients(); i<=max; ++i) {
	if(IsClientInGame(i) && IsPlayerAlive(i))
	{
		PrintToChat(i, "Tekst test.");
	}
}
Być może jak się wyjdzie poza maksymalną ilość graczy, to coś tam mu nie pasuje.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#9 Linux'

    Pan Pomocny

  • Autor tematu
  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 23.12.2014 10:52

Widocznie tak, teraz wszystko działa. Dziekuje za pomoc.


  • +
  • -
  • 0

b35020692_qesnxqa.png


#10 bicek

    Ja tu tylko sprzątam.

  • Zbanowany

Reputacja: 914
Master

  • Postów:796
  • Lokalizacja:Wieluń
Offline

Napisano 23.12.2014 10:59

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





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

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

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