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
 

EbuBebu - zdjęcie

EbuBebu

Rejestracja: 25.11.2019
Aktualnie: Nieaktywny
Poza forum Ostatnio: 14.06.2020 15:13
-----

#765313 Prośba o przerobienie pluginu

Napisane przez Rivit w 23.03.2020 22:34


więc żeby resetowało mi co tydzień muszę plugin uruchomić właśnie o północy dnia którego chce żeby były resety

 

Wiesz co wydaje mi sie po prostu ze wystarczy edytowac pliczek resetTime.txt i w nim ustawić czas startowy (w przód), a potem z automatu się co tydzien bedzie resetowac.

Plugin nie bedzie resetował, aż do momentu gdy czas z resetTime.txt + 'czas tygodnia' < obecny czas (jak sie zastanowisz nad tym to to ma sens ;) )

W jakim formacie jest zapisany czas w resetTime.txt poczytasz tu:

https://pl.wikipedia...i/Czas_uniksowy

https://www.unixtime...p.com/index.php

 

Ale uwaga - twój serwer może miec ustawioną inną strefę czasową lub może być godzine w przód lub tył. Dlatego pasowałoby napisać prosty plugin, któremu podasz date w formacie czytelnym dla człowieka, a on to zamieni na unix time i będzie cacy


  • +
  • -
  • 1


#765309 Prośba o przerobienie pluginu

Napisane przez Rivit w 23.03.2020 21:31

Jasne, że nie działa...

Wszystko zrobiłem poza aktualizowaniem czasu ostatniego resetu, ale dobrze wiedzieć, że to co jest to działa.

Wrzucam poprawke. Przed odpaleniem serwa usuń sobie plik resetTime.txt z folderu data i wtedy odpal serwer i powinien sie stworzyc

Reszta bez zmian.

Załączone pliki


  • +
  • -
  • 2


#765284 Prośba o przerobienie pluginu

Napisane przez Rivit w 23.03.2020 10:17

Łap i testuj. nie daje głowy ze to zadziala, ale powinno.

Wymagany jest reset bazy - trzeba usunac tabele players_time - plugin stworzy nową strukture.

Zobacz czy plugin będzie resetował dobrze. 

new const RESET_TIME = 60 * 60 * 24 * 7;

tu ustawiasz co ile resetowac (w sekundach)

jest ustawione na tydzien, ale mozesz sb zmienic na 20minut na przyklad zeby przetestowac.

Jak co to daj znac i sie poprawi

Załączone pliki


  • +
  • -
  • 1


#765250 Prośba o przerobienie pluginu

Napisane przez Rivit w 21.03.2020 21:49

Dałoby sie i nie jest to takie trudne.

Wymagałoby tylko dodania eventu do bazy danych lub zamieszczenia w pluginie resetowania tego.

Moge Ci to zrobić, ale aktualnie nie mam zbyt wiele czasu. Pingnij mnie jutro wieczorem


  • +
  • -
  • 1


#765118 Przerobienie pluginu Czas Online - czy ktoś się podejmie?

Napisane przez Rivit w 15.03.2020 22:01

Łap. nie daje głowy że zadziała bo skompilowało sie za pierwszym razem ;)

 

Jak cos sie popieprzy to zobacz w error logi.

20s po wejsciu na serwer pojawia sie komunikat

Załączone pliki


  • +
  • -
  • 2


#765015 [ROZWIĄZANE] Rezerwacja slotu

Napisane przez nojaknie w 08.03.2020 12:02

#include <amxmodx>
#include <amxmisc>

new g_ResPtr
new g_HidePtr
new g_sv_visiblemaxplayers

public plugin_init()
{
	register_plugin("Slots Reservation", AMXX_VERSION_STR, "AMXX Dev Team")
	register_dictionary("adminslots.txt")
	register_dictionary("common.txt")
	g_ResPtr = register_cvar("amx_reservation", "0", FCVAR_PROTECTED)
	g_HidePtr = register_cvar("amx_hideslots", "0")
	g_sv_visiblemaxplayers = get_cvar_pointer("sv_visiblemaxplayers")
}

public plugin_cfg()
{
	set_task(3.0, "MapLoaded")
}

public MapLoaded()
{
	if (get_pcvar_num(g_HidePtr))
	{
		setVisibleSlots(get_playersnum(1), MaxClients - get_pcvar_num(g_ResPtr))
	}
}

public client_authorized(id)
{
	new players = get_playersnum(1)
	new limit = MaxClients - get_pcvar_num(g_ResPtr)

	if (access(id, ADMIN_RESERVATION) || (players <= limit))
	{
		if (get_pcvar_num(g_HidePtr))
			setVisibleSlots(players, limit)
		return
	}
	
 	server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "DROPPED_RES")
}

public client_remove(id)
{
	if (get_pcvar_num(g_HidePtr))
	{
		setVisibleSlots(get_playersnum(1), MaxClients - get_pcvar_num(g_ResPtr))
	}
}

setVisibleSlots(players, limit)
{
	new num = players + 1

	if (players == MaxClients)
		num = MaxClients
	else if (players < limit)
		num = limit
	
	set_pcvar_num(g_sv_visiblemaxplayers, num)
}

adminslots linijka numer 36

if (access(id, ADMIN_RESERVATION) || (players <= limit))

Tutaj możesz zmienić flagę w pluginie odpowiedzialnym za rezerwacje. 

Ewentualnie jeszcze można było to zrobić w jakimś pliku z tego co kojarzę ale nie pamiętam dokładnie więc nie będę podrzucał błędnego tropu 


  • +
  • -
  • 1