←  Pytania dotyczące pluginów

AMXX.pl: Support AMX Mod X i SourceMod

»

HPK kickuje z powodem Kicked: You have ban...

  • +
  • -
Ravenek - zdjęcie Ravenek 23.11.2014

Tak jak w temacie, nie leci ban tylko kick ale graczy to myli, jak zmienic komunikat? Ma pisac zwyczajnie kicked lub kicked z powodem podamyn w pluginie a nie "You have banned from this serwer"

W kodzie jest tak "server_cmd("banid 1 #%d", uID)"

Za pomoc leci +

Tutaj sma:

#include <amxmodx>
#include <colorchat>

new HIGHPING_MAX = 95 // set maximal acceptable ping
new HIGHPING_TIME = 6  // set in seconds frequency of ping checking
new HIGHPING_TESTS = 3  // minimal number of checks before doing anything

new iNumTests[33]

public plugin_init() {
	register_plugin("High Ping Kicker","1.2.0","DynAstY")
	if (HIGHPING_TIME < 10) HIGHPING_TIME = 6
	if (HIGHPING_TESTS < 4) HIGHPING_TESTS = 3
	return PLUGIN_CONTINUE
}

public client_disconnect(id) {
	remove_task(id)
	return PLUGIN_CONTINUE
}
	
public client_putinserver(id) {
	iNumTests[id] = 0
	if (!is_user_bot(id)) {
		new param[1]
		param[0] = id
		set_task(30.0, "showWarn", id, param, 1)
	}
	return PLUGIN_CONTINUE
}

kickPlayer(id) {
	new name[32]
	get_user_name(id, name, 31)
	new uID = get_user_userid(id)
	server_cmd("banid 1 #%d", uID)
	client_cmd(id, "echo ^"[HPK] Twoj ping jest za duzy!^"; disconnect")
	ColorChat(0, GREEN, "[HPK]^x01 Gracz^x04 %s^x01 zostal rozlaczony z powodu duzego ping'u!", name)
	return PLUGIN_CONTINUE
} 

public checkPing(param[]) {
	new id = param[0]
	if ((get_user_flags(id) & ADMIN_IMMUNITY)) {
		remove_task(id)
		ColorChat(0, GREEN, "[HPK]^x01 Ping nie obowiazuje graczy z immunitetem...")
		return PLUGIN_CONTINUE
	}
	new p, l
	get_user_ping(id, p, l)
	if (p > HIGHPING_MAX)
		++iNumTests[id]
	else
		if (iNumTests[id] > 0) --iNumTests[id]
	if (iNumTests[id] > HIGHPING_TESTS)
		kickPlayer(id)
	return PLUGIN_CONTINUE
}

public showWarn(param[]) {
	ColorChat(param[0], GREEN, "[HPK]^x01 Gracze z pingiem wiekszym niz^x04 %d^x01 beda wyrzucani!", HIGHPING_MAX)
	set_task(float(HIGHPING_TIME), "checkPing", param[0], param, 1, "b")
	return PLUGIN_CONTINUE
}


Odpowiedz

  • +
  • -
Master Yoga - zdjęcie Master Yoga 23.11.2014

to

server_cmd("banid 1 #%d", uID)

na 

server_cmd("kick #%d ^"Za wysoki ping^"", uID)

albo możesz dać print_console i dać coś w tym stylu 

Spoiler

Wtedy gracz który został zbanowany lub dostał kicka dostanie takie info w konsoli, nie sposób go nie zauważyć  :)

Odpowiedz

  • +
  • -
Ravenek - zdjęcie Ravenek 23.11.2014

Chcialem usunac info o pokazywaniu komunikatu ze admin nie jest wyrzucany oraz to info z konsoli zastapic infem w okienku zaraz po wyrzuceniu.

Cz zrobilem to dobrze?

kickPlayer(id) {
	new name[32]
	get_user_name(id, name, 31)
	new uID = get_user_userid(id)
	server_cmd("kick #%d ^"Twoj ping jest za duzy!^"", uID)    
	ColorChat(0, GREEN, "^x04[~] ^x03Gracz^x04 %s ^x03zostal rozlaczony za wysoki ping", name)
	return PLUGIN_CONTINUE
} 

public checkPing(param[]) {
	new id = param[0]
	if ((get_user_flags(id) & ADMIN_BAN)) {
		remove_task(id)
		return PLUGIN_CONTINUE
	}
	new p, l
	get_user_ping(id, p, l)
	if (p > HIGHPING_MAX)
		++iNumTests[id]
	else
		if (iNumTests[id] > 0) --iNumTests[id]
	if (iNumTests[id] > HIGHPING_TESTS)
		kickPlayer(id)
	return PLUGIN_CONTINUE
}

Użytkownik Ravenek edytował ten post 23.11.2014 17:22
Odpowiedz