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] Problem set_task nie działa a w dodatku crashuje serwa


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

#1 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 05.08.2012 07:37

Witam otóż próbowałem zrobić tak

public pokaz_exp(id)
{
set_hudmessage(255,255,255,0.02, 0.23, 0, 6.0, 15.0)
show_hudmessage(id,"Poziom: %i^nExp: %i",PlayerLevel[id],PlayerXP[id])
set_task(1.0, "pokaz_exp", id, _, _, "b")

return PLUGIN_HANDLED;
}


Ale nie pokazuje w ogóle tego HUD'u i mam komende /xp

register_clcmd("say /xp", "pokaz_exp") // pokazuje ile mamy expa


To działało normalnie a jak dodałem ten task to po zniknięciu HUD'u z komendy crashuje serwa

próbowałem też dodać

	set_task(1.0, "pokaz_exp", 0, _, _, "b")


do public_init

I był HUD ale nie aktualizował się. Pokazywało 0lvl 0 exp a jak wpisałem /xp pokazywało na sek normalnie.

@@ Przepraszam nie ten dział miało być w Scripting AMXX w dziale Problemy. Proszę o przeniesienie.
  • +
  • -
  • 1

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.08.2012 08:22

Przede wszytskim sprawdzaj, czy dany gracz jest na serwerze, zanim wyślesz o niego wiadomość na HUD, bo inaczej może Ci crashować serwer.
Zauważ, że po sekundzie gracza wcale nie musi być.

Ponadto, co sekundę ustawiasz zadanie o istniejącym już id do wykonania w nieskończoność, co powoduje próbę przypisania zadaniu tego samego id, które już jest i crash serwera.
Warto też zmienić id na id+STAŁA, ale to już wykonaj sam:

public pokaz_exp(id)
{
if(is_user_connected(id)){
set_hudmessage(255,255,255,0.02, 0.23, 0, 6.0, 15.0)
show_hudmessage(id,"Poziom: %i^nExp: %i",PlayerLevel[id],PlayerXP[id])
set_task(1.0, "pokaz_exp", id);
}

return PLUGIN_HANDLED;
}


#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.08.2012 08:22

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XProblemy z pluginami

do

Scripting AMXXProblemy

#4 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 05.08.2012 08:37

A jeszcze coś dodam, benio dobrze napisał, że musisz sprawdzać czy gracz jest połączony, jednakże Twój HUD nie będzie się aktualizował zbyt szybko ponieważ wyświetlanie masz na 15 sekund. Ten plugin można zrobić jeszcze innym sposobem, choć nie wiem czy ten co benio podał nie będzie lepszy ;)
new g_Show[33]

public plugin_init(){
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /xp", "pokaz_exp")
	set_task(1.0,"funckja",.flags="b")
}
public funkcja(){
	for(new i=1;i<33;i++){
		if(is_user_connected(i) && g_Show[i]){
			set_hudmessage(255,255,255,0.02, 0.23, 0, 6.0, 1.0)
			show_hudmessage(i,"Poziom: %i^nExp: %i",PlayerLevel[i],PlayerXP[i])
		}
	}
}
public pokaz_exp(id)
	g_Show[id] = !g_Show[id]
	
public client_authorized(id)
	g_Show[id] = false

  • +
  • -
  • 1

If you can dream it, you can do it.


#5 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 05.08.2012 08:42

Jeśli jednak uparłbyś się na Taska z flagą "b"
set_task(1.0, "pokaz_exp", id, _, _, "b")

to przy ifie ze sprawdzeniem połaczenia dodaj elsa żeby usuwało taska gdy gracza nie ma.

remove_task(id)

Osobiście dodał bym start taska do gdy gracz już widzi mape (put in server) i z jakaś stała.

to chyba wsio. :^D
  • +
  • -
  • 1

#6 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 05.08.2012 17:35

Ok zrobiłem tak i chyba wszystko działa :D

public pokaz_exp(id)
{
if(is_user_connected(id))
{
set_hudmessage(255,255,255,0.02, 0.23, 0, 6.0, 15.0)
show_hudmessage(id,"Poziom: %i^nExp: %i",PlayerLevel[id],PlayerXP[id])
}
else
{
remove_task(id)
}

return PLUGIN_HANDLED;
}
public client_putinserver(id)
{
set_task(1.0, "pokaz_exp", id,_,_,"b");
}


Dzięki wszystkim za pomoc :)
  • +
  • -
  • 1

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#7 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 05.08.2012 17:48

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

If you can dream it, you can do it.





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

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