←  Pytania dotyczące pluginów

AMXX.pl: Support AMX Mod X i SourceMod

»

Plugin z informacja na sayu tylko dla tt w...

  • +
  • -
patryQ1997 - zdjęcie patryQ1997 30.08.2014

Siemka..Szukam plugin lub jeżeli takowy nie istnieje proszę o jego napisane ;)

 

Plugin będzie pokazywał na sayu (z zastosowanie colorchatu) jedną informacje "de_dust2 # Minuta minęła! Kampienie na respie jest w tej chwili karane!" po upływie minuty (w każdej rundzie) i wyświetlało tylko graczom TT.

Daje +


Użytkownik patryQ1997 edytował ten post 30.08.2014 16:12
Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 30.08.2014

#include <amxmodx>
#include <colorchat>

new g_MaxPlayers

public plugin_init() {
	register_plugin("Info o kampieniu", "1.0", "Dr@goN")
	register_logevent("Poczatek_Rundy", 2, "1=Round_Start") 
	g_MaxPlayers = get_maxplayers()
}

public Poczatek_Rundy()
	set_task(60.0, "Info")
	
public Info() {
	for(new i = 1; i <= g_MaxPlayers; i++) {
		if(is_user_connected(i) && get_user_team(i) == 1) {
			ColorChat(i, RED, "de_dust2 ^x01# ^x04Minuta minela! Kampienie na respie jest w tej chwili karane!")
		}
	}
}
Odpowiedz

  • +
  • -
patryQ1997 - zdjęcie patryQ1997 30.08.2014

Nie do końca się plugin sprawdza, ponieważ pokazuję tą wiadomość co minute. A mi chodzi po minucie od rozpoczęcia rundy.

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 30.08.2014

#include <amxmodx>
#include <colorchat>

new g_MaxPlayers

public plugin_init() {
	register_plugin("Info o kampieniu", "1.0", "Dr@goN")
	register_logevent("Poczatek_Rundy", 2, "1=Round_Start") 
	g_MaxPlayers = get_maxplayers()
}

public Poczatek_Rundy()
	set_task(60.0, "Info")
	
public Info() {
	for(new i = 1; i <= g_MaxPlayers; i++) {
		if(is_user_connected(i) && get_user_team(i) == 1) {
			ColorChat(i, RED, "de_dust2 ^x01# ^x04Minuta minela! Kampienie na respie jest w tej chwili karane!")
		}
	}
}

 

Jeżeli runda skończyła się za wcześnie to task istnieje i zostanie wywołany. Tylko nie mam pomysłu, jak temu zaradzić, bo używając boolów, jak tak przed chwilą myślałem, może być problem, bo mogą się źle resetować. Tak mi się chociaż wydaje.

Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 30.08.2014

#include <amxmodx>
#include <colorchat>

#define TASK 4895

public plugin_init()
{
	register_plugin("Kampienie", "1.0", "szelbi");
	register_logevent("poczatek_rundy", 2, "1=Round_Start");
	register_logevent("koniec_rundy", 2, "1=Round_End");
}

public poczatek_rundy()
{
	set_task(60.0, "info", TASK);
}

public koniec_rundy()
{
	if(task_exist(TASK))
	remove_task(TASK);
}
	
public info()
{
	ColorChat(0, RED, "de_dust2 ^x01# ^x04Minuta minela! Kampienie na respie jest w tej chwili karane!");
}
Odpowiedz

  • +
  • -
radim - zdjęcie radim 30.08.2014

@up
Dodaj pętlę po graczach i sprawdzaj czy są w terro, dopiero wyświetlaj wiadomość

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 30.08.2014

Mała poprawka do pluginu kolegi Szelbiego

 

#include <amxmodx>
#include <colorchat>
 
#define TASK 4895
 
new g_MaxPlayers
 
public plugin_init()
{
register_plugin("Kampienie", "1.0", "szelbi");
register_logevent("poczatek_rundy", 2, "1=Round_Start");
register_logevent("koniec_rundy", 2, "1=Round_End");
}
 
public plugin_cfg()
g_MaxPlayers = get_maxplayers()
 
public poczatek_rundy()
{
set_task(60.0, "info", TASK);
}
 
public koniec_rundy()
{
if(task_exists(TASK))
remove_task(TASK);
}
 
public info()
{
for(new i = 1; i <= g_MaxPlayers; i++) {
if(is_user_connected(i) && get_user_team(i) == 1) {
ColorChat(i, RED, "de_dust2 ^x01# ^x04Minuta minela! Kampienie na respie jest w tej chwili karane!")
}
}
}
Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 30.08.2014

@up
Dodaj pętlę po graczach i sprawdzaj czy są w terro, dopiero wyświetlaj wiadomość

Zapomniałem, że ma być tylko dla TT :P

Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 30.08.2014

Zapomniałem, że to ma się raz wyświetlać.

 

@szelbi

Wiadomość ma się raz wyświetlić, nie po minucie aż do końca rundy ;)

 

Poprawiona wersja.

#include <amxmodx>
#include <colorchat>

new g_MaxPlayers

public plugin_init() {
	register_plugin("Info o kampieniu", "1.0", "Dr@goN")
	register_logevent("Poczatek_Rundy", 2, "1=Round_Start") 
	g_MaxPlayers = get_maxplayers()
}

public Poczatek_Rundy()
	set_task(60.0, "Info",5643)
	
public Info() {
	for(new i = 1; i <= g_MaxPlayers; i++) {
		if(is_user_connected(i) && get_user_team(i) == 1) {
			ColorChat(i, RED, "de_dust2 ^x01# ^x04Minuta minela! Kampienie na respie jest w tej chwili karane!")
			remove_task(5643)
		}
	}
}
Odpowiedz

  • +
  • -
radim - zdjęcie radim 30.08.2014


Wiadomość ma się raz wyświetlić, nie po minucie aż do końca rundy

A co jest źle w kodzie szelbi'iego? Przecież task nie ma nadanej flagi "b" i wiadomość powtórzy się tylko raz, więc czemu sugerujesz, że wiadmość wyświetli się kilka razy?

Do tego warto dodać event końca rundy i usunięcie w nim taska jeżeli istnieje. Czemu? Bo jak runda skończy się po 20 sekundach, to task nadal będzie istniał i wiadomość wyświetli się w nowej rundzie dużo wcześniej.


Użytkownik radim edytował ten post 30.08.2014 18:43
Odpowiedz

  • +
  • -
patryQ1997 - zdjęcie patryQ1997 30.08.2014

Okej, dzięki skorzystałem z kodu Szelbiego, oczywiście dla każdego + za zainteresowanie.

Temat do zamknięcia.

 

@EDIT 

Chociaż nie co jest źle tekst pojawił się i po jakiś 15 sekundach znowu.


Użytkownik patryQ1997 edytował ten post 30.08.2014 19:13
Odpowiedz