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
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