←  Szukam pluginu

AMXX.pl: Support AMX Mod X i SourceMod

»

Czas spedzony na serwerze i która to wizyta

  • +
  • -
MrStrajker - zdjęcie MrStrajker 10.12.2022

Witam

 

Szukam pluginu który wyświetla na chacie po wejściu na serwer ile łącznie czasu spędziłem na serwerze i która to wizyta:

Na serwerze spedziles 6m 21s. Jest to twoja 3 wizyta.

Jedyne co znalazłem to licznik wizyt na serwerze: https://amxx.pl/topi...yt-na-serwerze/

Natomiast zależy mi również na czasie przegranym na serwerze.

 

Pozdrawiam :)

Odpowiedz

  • +
  • -
DonPedro - zdjęcie DonPedro 14.12.2022

Kto pyta nie bladzi, google nie boli https://amxx.pl/topi...serwerze/page-2

Odpowiedz

  • +
  • -
MrStrajker - zdjęcie MrStrajker 15.12.2022

Kto pyta nie bladzi, google nie boli https://amxx.pl/topi...serwerze/page-2

 

Przeczytaj jeszcze raz treść mojego posta a potem temat który wkleiłeś.

Chciałas zablysnać docinając mi, ale nie do końca Ci wyszło :)

Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 16.12.2022

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <colorchat>

#define PLUGIN "VisitCounter"
#define VERSION "1.1"
#define AUTHOR "Sebxx"

new c_tmp3, g_vault, visits, last_visit
new stamp[11], szSteam[35], temp[19], tmp[7]

new czas_gry[33];
new g_vault_cz;

public plugin_init()  {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	g_vault = nvault_open("Wizyty");
	g_vault_cz = nvault_open("Czas");

	register_clcmd("say /visits", "show_visits");
	c_tmp3 = register_cvar("visitcounter_interval", "1800")														// po jakim czasie naliczyc nowe wejscie?
}
public client_connect(id) {
	wczytaj_czas_gry(id);
}
public client_authorized( id, const authid[] ) {
	if(!is_user_bot(id) && !is_user_hltv(id)) {
		set_task(10.0, "counter", id, _, _, "a", 1)
	}
}

public counter(id) {
	if(is_user_connected(id)) {
		get_user_authid( id, szSteam, charsmax( szSteam ) )
		new sekundy = (czas_gry[id] + get_user_time(id, 1)), minuty, godziny;
	
		while(sekundy >= 60)
		{
			sekundy -= 60;
			minuty++;
		
		}
		
		while(minuty >= 60)
		{
			minuty -= 60;
			godziny++;
		
		}		

		if ( nvault_get( g_vault , szSteam , temp , charsmax( temp ) ) )
		{
			strtok(temp, tmp, charsmax( tmp ), stamp, charsmax( stamp ), ';');
			last_visit = str_to_num( stamp )

			if ( last_visit + get_pcvar_num( c_tmp3 ) <= get_systime() )
			{
				visits = str_to_num( tmp ) + 1
				ColorChat(id, TEAM_COLOR, "^1Na serwerze spedziles^4 %ih %imin %is.^1 Jest to twoja^4 %d^1 wizyta.", godziny, minuty, sekundy, visits)
			}
			else
			{	
				return PLUGIN_CONTINUE
			}
		}
		else
		{	
			visits = 1
			ColorChat(id, TEAM_COLOR, "^1To Twoja ^3pierwsza^1 wizyta na naszym serwerze")
		}

		num_to_str( visits, tmp, charsmax(tmp) )
		num_to_str( get_systime(), stamp, charsmax(stamp) )

		new iLen = 0, iMax = sizeof( temp ) - 1;
		iLen += formatex( temp[iLen], iMax - iLen, tmp )
		iLen += formatex( temp[iLen], iMax - iLen, ";" )
		iLen += formatex( temp[iLen], iMax - iLen, stamp )

		nvault_set( g_vault, szSteam, temp )
	}

	return PLUGIN_CONTINUE
}

public show_visits(id) {
	if(is_user_connected(id)) {
		get_user_authid( id, szSteam, charsmax( szSteam ) )

		nvault_get( g_vault , szSteam , temp , charsmax( temp ) )
		
		strtok(temp, tmp, charsmax( tmp ), stamp, charsmax( stamp ), ';');

		ColorChat(id, TEAM_COLOR, "^1To juz Twoja^4 %s^1 wizyta na naszym serwerze", tmp)
	}
}

public wczytaj_czas_gry(id) {
	new name[35],vaultkey[64],vaultdata[256];
	
	get_user_name(id,name,34);
	format(vaultkey,63,"%s-gametime",name);
	
	nvault_get(g_vault_cz,vaultkey,vaultdata,255);
	
	czas_gry[id] = str_to_num(vaultdata);
	
	return PLUGIN_CONTINUE;
}


public zapisz_czas_gry(id) {
	new name[35],vaultkey[64],vaultdata[256];
	
	get_user_name(id,name,34);
	czas_gry[id] += get_user_time(id, 1);
	
	format(vaultkey,63,"%s-gametime",name);
	format(vaultdata, 255, "%d", czas_gry[id]);
	
	nvault_set(g_vault_cz,vaultkey,vaultdata)
	
	czas_gry[id] = str_to_num(vaultdata);
	
	return PLUGIN_CONTINUE;
}


public client_disconnected(id) {
	zapisz_czas_gry(id);
	czas_gry[id] = 0;
	
	if(task_exists(id))
		remove_task(id)
}

public plugin_end() {
	nvault_close(g_vault)
	nvault_close(g_vault_cz);
}

genialny kod nie jest ale dziala tak jak chciales (a raczej ja nie mialem zadnych bledow z nim)

Załączone pliki

Odpowiedz

  • +
  • -
MrStrajker - zdjęcie MrStrajker 18.12.2022

Dziękuje bardzo za zainteresowanie natomiast podczas kompilacji wyrzuca mi taki błąd:

wizyty_czas.sma(27) : error 025: function heading differs from prototype
Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 18.12.2022

na jaka wersje amxx kompilujesz?

Odpowiedz

  • +
  • -
MrStrajker - zdjęcie MrStrajker 18.12.2022

na jaka wersje amxx kompilujesz?

1.8.2

Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 18.12.2022

ja kompilowalem na 1.9

Odpowiedz

  • +
  • -
MrStrajker - zdjęcie MrStrajker 18.12.2022

ja kompilowalem na 1.9

 

Rzeczywiście udalo się skompilować na tej wersji.

 

Niestety nie działa do końca poprawnie, ponieważ przy pierwszym wejściu pojawiła się wiadomość:

To Twoja pierwsza wizyta.

Natomiast przy każdym kolejnym wejściu nie ma informacji o tym która to już wizyta i ile czasu zostało przegrane na serwerze.

A po wpisaniu /visits pojawia się:

To Twoja 2 wizyta na serwerze.
Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 18.12.2022

		if ( nvault_get( g_vault , szSteam , temp , charsmax( temp ) ) )
		{
			strtok(temp, tmp, charsmax( tmp ), stamp, charsmax( stamp ), ';');
			last_visit = str_to_num( stamp )

			if ( last_visit + get_pcvar_num( c_tmp3 ) <= get_systime() )
			{
				visits = str_to_num( tmp ) + 1
				ColorChat(id, TEAM_COLOR, "^1Na serwerze spedziles^4 %ih %imin %is.^1 Jest to twoja^4 %d^1 wizyta.", godziny, minuty, sekundy, visits)
			}
			else
			{	
				return PLUGIN_CONTINUE
			}
		}
		else
		{	
			visits = 1
			ColorChat(id, TEAM_COLOR, "^1To Twoja ^3pierwsza^1 wizyta na naszym serwerze")
		} 

Jesli gracz wszedl na serwer pierwszy raz to zawsze pokaze ta informacje lecz jesli wejdzie juz drugi raz to bedzie mu juz pokazywac ile ma wizyt i ile godzin.

 

Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 18.12.2022

sprawdz to

Załączone pliki

Odpowiedz

  • +
  • -
MrStrajker - zdjęcie MrStrajker 18.12.2022

sprawdz to

 

Nadal nie pojawia się ta informacja:

Na serwerze spedziłes ... To twoja 3 wizyta.
Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 18.12.2022

nie mozliwe sam sprawdzalem na czystym serwerze i bylo normalnie wgraj plugin dopisz go do plugins.ini zrestartuj serwer wejdzie i zmien mape i zobacz czy bedzie

Odpowiedz

  • +
  • -
MrStrajker - zdjęcie MrStrajker 18.12.2022

nie mozliwe sam sprawdzalem na czystym serwerze i bylo normalnie wgraj plugin dopisz go do plugins.ini zrestartuj serwer wejdzie i zmien mape i zobacz czy bedzie

 

Plugin działa, bo po wpisaniu /visits wyświetla się komunikat.

Natomiast informacja: "spędziłeś na serwerze .." pojawiła się tylko raz a za każdym kolejnym wejście na serwer/zmianie mapy/restarcie csa juz nie mam tego komunikatu.

Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 18.12.2022

wgrales ta nowsza wersje co wyslalem? 

Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 18.12.2022

,

Załączone miniatury

  • test.png
Odpowiedz

  • +
  • -
MrStrajker - zdjęcie MrStrajker 21.12.2022

Dziękuje bardzo, już ogarnąłem i działa :)

 

Do zamknięcia.

Odpowiedz

  • +
  • -
mordoryjacz - zdjęcie mordoryjacz 21.12.2022

Dziękuje bardzo, już ogarnąłem i działa :)

 

Do zamknięcia.

co bylo przyczyna ze wczesniej sie nie wyswietlało?


Użytkownik mordoryjacz edytował ten post 21.12.2022 21:27
Odpowiedz

  • +
  • -
MrStrajker - zdjęcie MrStrajker 23.12.2022

 

Dziękuje bardzo, już ogarnąłem i działa :)

 

Do zamknięcia.

co bylo przyczyna ze wczesniej sie nie wyswietlało?

 

 

Zrobiłem reinstall serwera i wrzuciłem plugin na nowo. Zaczął poprawnie działać.

A przy okazji mam pytanie - jak zresetować każdemu ilość spędzonego czasu i wizyt?

Odpowiedz