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

Czas grania na serwerze


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

#21 vaverix

    Życzliwy

  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:29
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 12.05.2011 00:58

Witam serdecznie.

Na wstępie chciałbym zaznaczyć, że pracując na dystrybucji Linuxowej (tak - mam Linuxa, nie - nie mam na żadnym z dysków Windowsa, tak - działa mi steam, tak - działa mi Counter Strike ;)) nie posiadam Amx Mod Studio, bo takowy w wersji natywnej na tenże system nie wyszedł (co jest paradoksem swoją drogą)...

Działa mi natomiast Pawn Studio (w Wine), lecz teraz byłem po formacie i nie zdążyłem zainstalować.

Tak więc proszę mi wybaczyć ewentualne błędy, aczkolwiek powinno wszystko ładnie współpracować, tak jak być powinno ;)

A oto plugin:

#include <amxmodx>
#include <nvault>

#define PLUGIN	"Save Player's playing time"
#define VERSION	"1.0"
#define AUTHOR	"#Vaverix."

new czas_gry[33];
new g_vault;

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say /gametime","pokaz_czas_gry");
	register_clcmd("say /playingtime","pokaz_czas_gry");
	register_clcmd("say /czasgry","pokaz_czas_gry");
	g_vault = nvault_open("SPPT");
	
	if (g_vault == INVALID_HANDLE)
		set_fail_state( "Nie udalo sie otworzyc pliku nvault!");
}
public client_connect(id)
	wczytaj_czas_gry(id);
public client_disconnect(id)
{
	zapisz_czas_gry(id);
	czas_gry[id] = 0;
}

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,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,vaultkey,vaultdata)
	
	czas_gry[id] = str_to_num(vaultdata);
	
	return PLUGIN_CONTINUE;
}

public pokaz_czas_gry(id)
{
	new sekundy = (czas_gry[id] + get_user_time(id, 1)), minuty, godziny;
	
	while(sekundy >= 60)
	{
		sekundy -= 60;
		minuty++;
		
	}
	while(minuty >= 60)
	{
		minuty -= 60;
		godziny++;
		
	}
	client_print(id,print_chat,"Grasz juz %ih %imin %is na tym serwerze!", godziny, minuty, sekundy);
	
	return PLUGIN_HANDLED;
}

public plugin_end()
        nvault_close(g_vault);

@ warring - DarkGL

Oczywiście chodziło o Amxx Studio ;P

PS.1 Kod można jeszcze skrócić (zresztą sam w sobie jest krótki), ale chciałem, żeby był w miare przejrzysty ;)
PS.2 Ten post ma tylko i wyłącznie na celu pomóc w problemie zaistniałym w tym temacie, a nie jest to forma jakiegokolwiek żalenia się, chwalenia, czy próby sprowokowania miłośników Windows'a
PS.3 Przy takiej porze, wydajność pracy mózgu spada do minimum :>

Pozdrawiam.

Załączone pliki


Użytkownik vaverix edytował ten post 14.05.2011 09:31

  • +
  • -
  • 2

#22 amxxmaster

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 0
zer0.

  • Postów:207
  • Imię:Stad
  • Lokalizacja:Daleko
Offline

Napisano 13.05.2011 08:52

dzięki, dziala a da rade zrobic zeby byl czas w godzinach i minutach i sekundach ale juz nie trzeba sekund bo teraz to sa same sekundy

naprzyklad:

1. Ziomek 2h 36min 15 sekund
2. Inny 0h 22min 4 sekund

Da sie zrobic zeby automatycznie numerowalo pokolei? w notatniku kto pierwszy kto drugi najwiecej gral?

W grze jak wpisze w sayu /czasgry to dobrze pokazuje w godzinach, minutach i sekundach a w tym pliku jest w sekundach i zeby ustawialo pokolei :P kto najlepszy to ma numer 1. kto dalej to 2. i zeby czasy byly pokolei od najwiekszego do najmniejszego tak jak wyzej napisalem.

Jeszcze zauwazylem ze to chyba dopiero po zmianie mapki zmienia plik wiec chyba dobrze :P bo nie bedzie mulilo serwa.

Użytkownik amxxmaster edytował ten post 13.05.2011 09:09


#23 Windowspl

    Profesjonalista

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:190
  • GG:
  • Imię:Patryk
  • Lokalizacja:Warszawa
Offline

Napisano 13.05.2011 12:00

Witam.

Chciałem zrobić tak żeby ta informacja wyświetlała się co 60 sec. zrobiłem.
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /gametime","pokaz_czas_gry");
register_clcmd("say /playingtime","pokaz_czas_gry");
register_clcmd("say /czasgry","pokaz_czas_gry");
set_task(60.0, "pokaz_czas_gry",_,_,_,"b")
g_vault = nvault_open("SPPT");

if (g_vault == INVALID_HANDLE)
set_fail_state( "Nie udalo sie otworzyc pliku nvault!");
}


I pokazuje się informacja tylko jak informacja się wyświetla to pisze:
Grasz juz 0h 0min 0s na tym serwerze!

i tak jest cały czas. Dlaczego tak jest ?

Użytkownik Windowspl edytował ten post 13.05.2011 12:51

  • +
  • -
  • 0

#24 vaverix

    Życzliwy

  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:29
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 13.05.2011 12:51

Witaj,

tak się dzieje, z tego powodu, iż poprzez set_task nie przekazujesz id'a żadnego gracza.

To co zmieniłeś - wywal, następnie zamień:

public client_connect(id)
	wczytaj_czas_gry(id);
public client_disconnect(id)
{
	zapisz_czas_gry(id);
	czas_gry[id] = 0;
}

na:

public client_connect(id)
{
	wczytaj_czas_gry(id);
	set_task(60.0, "pokaz_czas_gry", id,_,_,"b");
}
public client_disconnect(id)
{
	zapisz_czas_gry(id);
	czas_gry[id] = 0;

	if(task_exists(id))
		remove_task(id);
}

Mam nadzieję, że pomogłem :)

Gotowy plugin w załączniku.

@ amxxmaster

Będzie ciężko zrobić to na nvault, ale jak znajdę chwilę czasu, to postaram się zająć tym...

Załączone pliki


Użytkownik vaverix edytował ten post 13.05.2011 12:56

  • +
  • -
  • 2

#25 Windowspl

    Profesjonalista

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:190
  • GG:
  • Imię:Patryk
  • Lokalizacja:Warszawa
Offline

Napisano 13.05.2011 12:55

Bardzo dziękuje +
  • +
  • -
  • 0

#26 amxxmaster

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 0
zer0.

  • Postów:207
  • Imię:Stad
  • Lokalizacja:Daleko
Offline

Napisano 13.05.2011 14:11

ok to poczekam.

#27 LucKy_skiLL

    Godlike

  • Power User

Reputacja: 160
Profesjonalista

  • Postów:1301
  • GG:
  • Lokalizacja:Kraków
Offline

Napisano 13.05.2011 16:18

Jeżeli ktoś chce to dodaje wersje pluginu z colorchatem

Dołączona grafika

Załączone pliki


  • +
  • -
  • 1

Oglądasz seriale typu: The Flash, Arrow, Daredevil, The Walking Dead? Jeśli tak, to zapraszam na mój kanał YouTube


#28 amxxmaster

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 0
zer0.

  • Postów:207
  • Imię:Stad
  • Lokalizacja:Daleko
Offline

Napisano 14.05.2011 14:16

vaverix i jak da rade zrobic jak pisalem?

Dodano 16 maj 2011 - 10:45:
odswiezam, zrobi ktos tak jak prosilem?:/

#29 ViHuRa

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:117
  • GG:
  • Imię:Adam
  • Lokalizacja:Legionowo
Offline

Napisano 17.05.2011 06:40

Taki plugin z topką to było by coś :D.
  • +
  • -
  • 0
Centrum-Gier.com

#30 amxxmaster

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 0
zer0.

  • Postów:207
  • Imię:Stad
  • Lokalizacja:Daleko
Offline

Napisano 17.05.2011 12:51

ta albo zrobic /toponline i wtedy pierwsze 15 osob by bylo naprzyklad

#31 radek_b11

    Hero

  • Zbanowany

Reputacja: 29
Życzliwy

  • Postów:1019
  • Lokalizacja:Rajowo
Offline

Napisano 17.05.2011 15:31

wszystko fajnie tylko jak ja mam odczytać czas?
odpaliłem nVault Editor wczytałem i tam mam np:

przemooo - 661
i jak to rozumieć?
Nie da się jakoś tego inaczej zapisać?

Cs 1.6:   GoldGame.pl [Only DD2/INF/NUK] #1         IP: 31.186.81.62:27062  |  GoldGame.pl [Hns Ganiany][100aa] #2  IP: 31.186.84.46:27074

               GoldGame.pl [Hns Treningowy] #3  IP: 31.186.81.70:27059  |  GoldGame.pl [Unikatowy JailBreak] #4   IP: 31.186.84.46:27050

Ts3:        GoldGame.pl [TeamSpeak3]               IP: 178.217.191.232:6310

Cs:GO:   [PL] GoldGame.pl [Only DD2/INF/NUK][FastDrop]   IP: 185.36.170.231:27024


#32 amxxmaster

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 0
zer0.

  • Postów:207
  • Imię:Stad
  • Lokalizacja:Daleko
Offline

Napisano 17.05.2011 16:38

no wlasnie ciagle o tym mowie ze to jest w sekundach :P zeby zrobic jakies top15 czasow np (/toponline) jak sie nieda innaczej i zeby pisalo w tym top "Ziomek 1h 3min 4sec)

Użytkownik amxxmaster edytował ten post 17.05.2011 16:38


#33 radek_b11

    Hero

  • Zbanowany

Reputacja: 29
Życzliwy

  • Postów:1019
  • Lokalizacja:Rajowo
Offline

Napisano 17.05.2011 17:08

ale TOP ONLINE nic nie da bo np jest konkurs na miesiąc i po miesiącu muszę sprawdzić kto ma najwięcej przegranych godzin ze wszystkich graczy.

a nie da się zrobić żeby w nvalut zapisywało minuty ? wtedy łatwiej będzie

Cs 1.6:   GoldGame.pl [Only DD2/INF/NUK] #1         IP: 31.186.81.62:27062  |  GoldGame.pl [Hns Ganiany][100aa] #2  IP: 31.186.84.46:27074

               GoldGame.pl [Hns Treningowy] #3  IP: 31.186.81.70:27059  |  GoldGame.pl [Unikatowy JailBreak] #4   IP: 31.186.84.46:27050

Ts3:        GoldGame.pl [TeamSpeak3]               IP: 178.217.191.232:6310

Cs:GO:   [PL] GoldGame.pl [Only DD2/INF/NUK][FastDrop]   IP: 185.36.170.231:27024


#34 amxxmaster

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 0
zer0.

  • Postów:207
  • Imię:Stad
  • Lokalizacja:Daleko
Offline

Napisano 17.05.2011 19:43

no jak sprawdzisz kto ma najwiecej to wpiszesz /toponline i ci wyskoczy kto 1, kto 2 itd az do 15?

#35 radek_b11

    Hero

  • Zbanowany

Reputacja: 29
Życzliwy

  • Postów:1019
  • Lokalizacja:Rajowo
Offline

Napisano 17.05.2011 22:29

top online = osoby aktualnie będące na serwerze no chyba że umiesz zrobić tak że pokaże ogólny zarys godzin wszystkich graczy nawet nie będących na serwerze.

a co do mojego pytania to jak ?

Cs 1.6:   GoldGame.pl [Only DD2/INF/NUK] #1         IP: 31.186.81.62:27062  |  GoldGame.pl [Hns Ganiany][100aa] #2  IP: 31.186.84.46:27074

               GoldGame.pl [Hns Treningowy] #3  IP: 31.186.81.70:27059  |  GoldGame.pl [Unikatowy JailBreak] #4   IP: 31.186.84.46:27050

Ts3:        GoldGame.pl [TeamSpeak3]               IP: 178.217.191.232:6310

Cs:GO:   [PL] GoldGame.pl [Only DD2/INF/NUK][FastDrop]   IP: 185.36.170.231:27024


#36 amxxmaster

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 0
zer0.

  • Postów:207
  • Imię:Stad
  • Lokalizacja:Daleko
Offline

Napisano 18.05.2011 09:39

to moj temat wiec sie nie wtracaj geniuszu skoro jest /top15 to co masz gosciu wszystkich top15 ktorzy sa na serwie? ty jestes naprawdę malo inteligentny. /toponline to by bralo z tego pliku i ustawialo w kolejnosci pierwsze 15 osob? jak chcesz przerobke tego pluga zaloz swoj temat i nie spamuj w moim, w ogóle jak ktos sie zna to zrobi jak nie to nie zrobi proste? Tez moglbys spytac osobe ktora pisala ten plugin czy ma czas? bo moze gosciu tez chce sobie wyjsc z domu a nie meczyc sie z jakims pluginem. Ja napisalem prosbe o przerobke i czekam cierpliwie.

Użytkownik amxxmaster edytował ten post 18.05.2011 09:40


#37 Grzegorz93

    Wszechpomocny

  • Użytkownik

Reputacja: 62
Pomocny

  • Postów:311
  • GG:
  • Imię:Grzegorz
  • Lokalizacja:Śląsk
Offline

Napisano 18.05.2011 10:23

Myślę że będzie lepiej napisać to w dziale zlecenia płatne ;P
  • +
  • -
  • 0

#38 radek_b11

    Hero

  • Zbanowany

Reputacja: 29
Życzliwy

  • Postów:1019
  • Lokalizacja:Rajowo
Offline

Napisano 18.05.2011 11:18

Ty chyba mylisz pojęcia i to Ty jesteś mało inteligentny.
Bo nie potrafisz czytać ze zrozumieniem.
Co komu po TOP15 z osób aktualnie będących na serwerze ?
A jak sprawdzisz te osoby które nie są na serwerze a zapewne mają więcej przegranych godzin ?
Jaśniej nie wytłumaczę Ci...

Cs 1.6:   GoldGame.pl [Only DD2/INF/NUK] #1         IP: 31.186.81.62:27062  |  GoldGame.pl [Hns Ganiany][100aa] #2  IP: 31.186.84.46:27074

               GoldGame.pl [Hns Treningowy] #3  IP: 31.186.81.70:27059  |  GoldGame.pl [Unikatowy JailBreak] #4   IP: 31.186.84.46:27050

Ts3:        GoldGame.pl [TeamSpeak3]               IP: 178.217.191.232:6310

Cs:GO:   [PL] GoldGame.pl [Only DD2/INF/NUK][FastDrop]   IP: 185.36.170.231:27024


#39 amxxmaster

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 0
zer0.

  • Postów:207
  • Imię:Stad
  • Lokalizacja:Daleko
Offline

Napisano 18.05.2011 15:05

Nie no ja ci ****** tego nie wytlumacze top15 nie bedzie osob aktualnie grajacych na serwerze tylko to ****** bedzie pobierane z pliku nvault i odczytywane w motd. Jasniej ci ****** nie wytlumacze.

Użytkownik Abes Mapper edytował ten post 18.05.2011 19:05


#40 vaverix

    Życzliwy

  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:29
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 18.05.2011 18:51

Spokój, koniec spamu...

Co do tematu i poruszonego problemu - może kolega ;( ajć ! coś napisze, ja na razie nie mam czasu.

Użytkownik vaverix edytował ten post 18.05.2011 18:51

  • +
  • -
  • 0




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

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