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

Dodanie opcji do pluginu


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

#1 Popeye

    Początkujący

  • Użytkownik

Reputacja: 1
Nowy

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

Napisano 16.05.2008 22:39

Witam, założyłem serwer na którym każdy może zagrać mixa bądź cw. Chodzi o to, aby można było za pomocą komendy w say zmienić hasło np. say /password cw Liczę na Waszą pomoc i pozdrawiam. I aby każdy gracz widział napis w say:
[ClanSphere] haslo to 'cw'


//#define ADMINS_ONLY // comment this line to allow SCM commands for all players

#define MAX_MAPS 128 // max number of maps in map list (if you need more maps, just change this value to suits your needs)

#define SCM_DICT "scm.txt"
#define SCM_MAPS "maplist.ini"
#define SCM_CW "cw.cfg"
#define SCM_WARM "warmup.cfg"

// DO NOT EDIT BELOW
#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Simple Clanwar Management"
#define VERSION "1.0"
#define AUTHOR "rhin0"

new g_match_inprogress = 0

new g_mapnames[MAX_MAPS][32]
new g_mapcount

new g_filename[256]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say", "check_map", 0, "- [ClanSphere] check if the user say map change command")
	
	register_clcmd("say /start", "cmd_start", 0, "- [ClanSphere] 3x restarty i rozpoczecie meczu")
	register_clcmd("say /stop", "cmd_stop", 0, "- [ClanSphere] zatrzymanie meczu")
	register_clcmd("say /rr", "cmd_rr", 0, "- [ClanSphere] restart rundy")
	register_clcmd("say /knife", "cmd_knives", 0, "- [ClanSphere] runda nozowa")
	register_clcmd("say /help", "cmd_showhelp", 0, "- [ClanSphere] pokaz menu pomocy")
	
	register_dictionary(SCM_DICT)
	
	read_maps()
}

#if defined ADMINS_ONLY
public client_putinserver(id) {
	if (access(id, ADMIN_MENU)) {
		if (is_user_bot(id)) return
		set_task(10.0, "showhelp", id)
	} else return
}

public client_disconnect(id) {
	remove_task(id)
}
#else
public client_putinserver(id) {
	if (is_user_bot(id))
		return
	set_task(10.0, "showhelp", id)
}

public client_disconnect(id) {
	remove_task(id)
}
#endif

public read_maps() {
	new textlength
	
	get_filename(SCM_MAPS)
	
	new line = 0
	while (line < MAX_MAPS && read_file(g_filename, line, g_mapnames[line], 30, textlength)) {
		++line
	}
	log_message("SCM: loaded %i maps", line)
	g_mapcount = line
}

public check_map(id) {
	new said[192]
	read_args(said, 191)
	
	new i = 0
	while (i < g_mapcount) {
		new trash[16], mapname[32]
		strtok(g_mapnames[i], trash, 15, mapname, 31, '_')
		format(mapname, 31, "^"/%s^"", mapname)
		if (equali(said, mapname)) {
			cmd_changemap(id, g_mapnames[i])
		}
		++i
	}
}

public cmd_changemap(id, mapname[]) {
#if defined ADMINS_ONLY
	if (!access(id, ADMIN_MENU)) {
		client_print(id, print_chat, "[ClanSphere] %L", id, "NO_ACCESS")
		return PLUGIN_HANDLED
	}
#endif
	if (g_match_inprogress != 1) {
		set_task(2.0, "change_map", 0, mapname, strlen(mapname))
		
		new message[64]
		format(message, 63, "%L", id, "CHANGELEVEL", mapname)
		all_msg(message)
	} else {
		client_print(id, print_chat, "[ClanSphere] %L", id, "CANNOT_CHANGE_MAP")
	}

	return PLUGIN_CONTINUE
}

public cmd_knives(id) { 
#if defined ADMINS_ONLY
	if (!access(id, ADMIN_MENU)) {
		client_print(id, print_chat, "[ClanSphere] %L", id, "NO_ACCESS")
		return PLUGIN_HANDLED
	}
#endif
	if (g_match_inprogress != 1) {
		g_match_inprogress = 0
		
		set_task(1.0, "restart_round", 0, "1", 1)
		all_msg("runda nozowa")
		set_task(3.0, "strip_weapons")
		set_task(4.0, "knife_msg")
	} else {
		client_print(id, print_chat, "[ClanSphere] %L", id, "CANNOT_STOP_MATCH")
	}

	return PLUGIN_CONTINUE
}

public cmd_start(id) {
#if defined ADMINS_ONLY
	if (!access(id, ADMIN_MENU)) {
		client_print(id, print_chat, "[ClanSphere] %L", id, "NO_ACCESS")
		return PLUGIN_HANDLED
	}
#endif
	if (g_match_inprogress != 1) {
		set_task(1.0, "restart_round", 0, "1", 1)
		all_msg("rozpoczynanie meczu")
		g_match_inprogress = 1
		
		get_filename(SCM_CW)
		server_cmd("exec %s", g_filename)
		client_print(0, print_chat, "[ClanSphere] %L", LANG_PLAYER, "CWTG_CFG_LOADED")
		
		set_task(3.0, "restart_round", 0, "1", 1)
		set_task(5.0, "restart_round", 0, "3", 1)
		set_task(9.0, "live_msg")
	} else {
		client_print(id, print_chat, "[ClanSphere] %L", id, "CANNOT_START_MATCH")
	}
	
	return PLUGIN_CONTINUE
}

public cmd_stop(id) {
#if defined ADMINS_ONLY
	if (!access(id, ADMIN_MENU)) {
		client_print(id, print_chat, "[ClanSphere] %L", id, "NO_ACCESS")
		return PLUGIN_HANDLED
	}
#endif
	if (g_match_inprogress == 1) {
		all_msg("zatrzymanie meczu")
		g_match_inprogress = 0
		
		get_filename(SCM_WARM)
		server_cmd("exec %s", g_filename)
		client_print(0, print_chat, "[ClanSphere] %L", LANG_PLAYER, "WRM_CFG_LOADED")
		
		set_task(3.0, "restart_round", 0, "1", 1)
		set_task(6.0, "all_msg", 0, "mecz zatrzymany", 15)
	} else {
		client_print(id, print_chat, "[ClanSphere] %L", id, "CANNOT_STOP_MATCH")
	}
	
	return PLUGIN_CONTINUE
}

public cmd_rr(id) {
#if defined ADMINS_ONLY
	if (!access(id, ADMIN_MENU)) {
		client_print(id, print_chat, "[ClanSphere] %L", id, "NO_ACCESS")
		return PLUGIN_HANDLED
	}
#endif
	if (g_match_inprogress != 1) {
		set_task(1.0, "restart_round", 0, "1", 1)
		all_msg("restart")
	} else {
		client_print(id, print_chat, "[ClanSphere] %L", id, "CANNOT_RESTART_MATCH")
	}
	
	return PLUGIN_CONTINUE
}

public strip_weapons() {
	new plist_public[32], pnum_public
	get_players(plist_public, pnum_public)
	for (new i = 0; i < pnum_public; i++) {
		if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){
			strip_user_weapons(plist_public[i])
			give_item(plist_public[i], "weapon_knife")
		}
	}
}

public get_filename(filename[]) {

	new dir[128]
	
	get_configsdir(dir, 127)
	format(g_filename, 255, "%s/scm/%s", dir, filename)
	
	if (!file_exists(g_filename)) {
		log_message("SCM: file %s not found", filename)
		return PLUGIN_HANDLED
	}
	
	return PLUGIN_CONTINUE
}

public change_map(map[]) {
	server_cmd("changelevel %s", map)

	return PLUGIN_CONTINUE
}

public restart_round(seconds[]) {
	server_cmd("sv_restartround %s", seconds)

	return PLUGIN_CONTINUE
}

public live_msg() {
	set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
	show_hudmessage(0, "--- live ---^n--- live ---^n--- live ---")
	client_print(0, print_chat, "*** live ***")
	client_print(0, print_chat, "*** live ***")
	client_print(0, print_chat, "*** live ***")

	return PLUGIN_CONTINUE
}

public knife_msg() { 
	set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0) 
	show_hudmessage(0, "--- runda nozowa ---^n--- runda nozowa---^n--- runda nozowa ---") 
	client_print(0, print_chat, "*** runda nozowa ***") 
	client_print(0, print_chat, "*** runda nozowa ***") 
	client_print(0, print_chat, "*** runda nozowa ***") 
	return PLUGIN_CONTINUE 
}

public all_msg(msg[]) {
	set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
	show_hudmessage(0, "--- %s ---", msg)
	client_print(0, print_chat, "*** %s ***", msg)

	return PLUGIN_CONTINUE
}

public showhelp(id) {
#if defined ADMINS_ONLY
	if (!access(id, ADMIN_MENU)) {
		client_print(id, print_chat, "[ClanSphere] %L", id, "NO_ACCESS")
		return PLUGIN_HANDLED
	}
#endif
	client_print(id, print_chat, "[ClanSphere] %L", id, "HELP_MOTD")
	
	return PLUGIN_CONTINUE
}

public cmd_showhelp(id) {
	new motd[2048], line[256], title[64]
	
	add(motd, 2047, "<html><head><style>")
	add(motd, 2047, "body {font-family: Tahoma; font-size: 12px}")
	add(motd, 2047, "code {font-size: 14px; margin: 0 10px 0 0}")
	add(motd, 2047, "h1 {font-size: 18px; text-align: center}")
	add(motd, 2047, "h2 {font-size: 14px; font-weight: bold}")
	add(motd, 2047, "p {text-align: center; margin: 5px}")
	add(motd, 2047, "a {color: #991A00}")
	add(motd, 2047, "</style></head><body>")
	add(motd, 2047, "<div>")
	format(line, 255, "<h1>ClanSphere MIX @1shot1kill.pl</h1>", PLUGIN, VERSION)
	add(motd, 2047, line)
	format(line, 255, "<p>%L <strong>ClanSphere</strong></p>", id, "MOTD_CREDITS")
	add(motd, 2047, line)
	format(line, 255, "<p>%L <a href=http://www.ClanSphere.pl>www.ClanSphere.pl</a></p>", id, "MOTD_INFO")
	add(motd, 2047, line)
	format(line, 255, "<h2>%L</h2>", id, "MOTD_GEN_CMD")
	add(motd, 2047, line)
	format(line, 255, "[list]
[*]<code>say /start</code> // %L", id, "MOTD_START_MATCH")
	add(motd, 2047, line)
	format(line, 255, "
[*]<code>say /stop</code> // %L", id, "MOTD_STOP_MATCH")
	add(motd, 2047, line)
	format(line, 255, "
[*]<code>say /knife</code> // %L", id, "MOTD_KNIFE_ROUND")
	add(motd, 2047, line)
	format(line, 255, "
[*]<code>say /rr</code> // %L", id, "MOTD_RESTART_MATCH")
	add(motd, 2047, line)
	format(line, 255, "
[*]<code>console amx_kickmenu</code> // %L", id, "MOTD_KICK_MENU")
	add(motd, 2047, line)
	format(line, 255, "<h2>%L</h2>", id, "MOTD_MAPS_CMD")
	add(motd, 2047, line)
	add(motd, 2047, "[list]")
	
	new i = 0
	while (i < g_mapcount) {
		new mapcmd[128], trash[16], mapname[32]
		strtok(g_mapnames[i], trash, 15, mapname, 31, '_')
		format(mapcmd, 127, "
[*]<code>say /%s</code> // %L %s", mapname, id, "MOTD_CHANGELEVEL", g_mapnames[i])
		add(motd, 2047, mapcmd)
		++i
	}
	
	add(motd, 2047, "
[/list]")
	add(motd, 2047, "</div></body></html>")
	format(title, 63, "%s %s", PLUGIN, VERSION)
	show_motd(id, motd, title)
	
	return PLUGIN_HANDLED
}

  • +
  • -
  • 0

#2 ESTCOBS

    Pomocny

  • Użytkownik

Reputacja: 4
Nowy

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

Napisano 16.05.2008 23:01

Ciekawa inicjatywa xD
A nie lepiej wgrać Autorespondera i co 5/10 minut żeby robiło reklamę
Haslo rcon serwera to : RCON
~~~
Zmien haslo RCON oraz haslo serwera gry przed rozpoczeciem meczu
~~~
Po zakonczeniu wpisz /clear

I do tego taki plugin co robi zadania o XX porze ;D żeby co 75 minut ładował domyślny config :D

~~~
Jak chcesz tak jak napisałem to napisz na PW :P albo GG
  • +
  • -
  • 0

#3 Popeye

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

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

Napisano 17.05.2008 10:50

Chcę zrobić serwer do mixów i cw dla graczy którzy potrzebują serwer. Nie chce dawać hasła do rcon tylko żeby była możliwość zmiany hasła w say.

A tak przy okazji, jak zrobić żeby po wpisaniu w say /kick pokazywało się menu amx_kickmenu

Coś tu jest źle:

public cmd_kick(id) {
#if defined ADMINS_ONLY
	if (!access(id, ADMIN_MENU)) {
		client_print(id, print_chat, "[ClanSphere] %L", id, "NO_ACCESS")
		return PLUGIN_HANDLED
	}
#endif
	if (g_match_inprogress != 1) {
		set_task(1.0, "amx_kickmenu", 0, "1", 1)
		all_msg("kick")
	} else {
		client_print(id, print_chat, "[ClanSphere] %L", id, "CANNOT_KICK_PLAYER")
	}
	
	return PLUGIN_CONTINUE
}

  • +
  • -
  • 0

#4 fNK

    Życzliwy

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:27
  • GG:
  • Lokalizacja:Kwidzyn
Offline

Napisano 17.05.2008 15:54

A tak przy okazji, jak zrobić żeby po wpisaniu w say /kick pokazywało się menu amx_kickmenu

Nie lepiej wpisać w konsoli [bind "ZNAK" "amxmodmenu"] i wybierać pierwszą opcję? Będzie dużo szybciej nacisnąć np. L, niż za każdym razem wpisywać kick na sayu...
  • +
  • -
  • 0

#5 Popeye

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

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

Napisano 17.05.2008 16:56

Powtarzam że to ma być serwer dla ludzi który potrzebują zagrać np. cw A to może być każdy i chce aby obsługa była jednolita bez różnych rodzai komend.
  • +
  • -
  • 0

#6 Salamon

    Profesjonalista

  • Użytkownik

Reputacja: 43
Pomocny

  • Postów:199
Offline

Napisano 17.05.2008 19:00

nie wiem po co to bo i tak zeby otworzylo menu kicka trzeba miec odpowiednie flagi

register_clcmd("say /kick", "kickmenu")

public kickmenu(id)
{
client_cmd(id, "amx_kickmenu")
}
  • +
  • -
  • 0

#7 Popeye

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

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

Napisano 17.05.2008 19:17

a gdzie to wstawić dokładnie?
  • +
  • -
  • 0

#8 Salamon

    Profesjonalista

  • Użytkownik

Reputacja: 43
Pomocny

  • Postów:199
Offline

Napisano 17.05.2008 19:29

register_clcmd w plugin_init, a to drugie gdziekolwiek
  • +
  • -
  • 0

#9 Popeye

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

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

Napisano 17.05.2008 20:35

Ok to działa. Dziękuje bardzo. A czy dało by się z hasłem takie zrobić?
Coś żeby podpiąć pod tego cvara:
k - access to sv_password cvar (by amx_cvar command)
  • +
  • -
  • 0

#10 Miczu

    Godlike

  • Przyjaciel

Reputacja: 646
Wszechmogący

  • Postów:2862
Offline

Napisano 17.05.2008 22:25

Taka tylko moja uwaga... co sie stanie gdy przyjdzie dziecko neo i /kick usunie all graczy a potem zmieni haslo tak ze tylko on wie jakie jest? ;>
  • +
  • -
  • 0

#11 Salamon

    Profesjonalista

  • Użytkownik

Reputacja: 43
Pomocny

  • Postów:199
Offline

Napisano 17.05.2008 22:27

ehh Miczu Miczu, spojrz co mu dalem, komende amx_kickmenu, dlatego nie wiem po co mu to bylo, po prostu zamiast isc do konsoli wpisuje sie /kick i menu sie otwiera, a ono nie otworzy sie przeciez dla kazdego tylko standardowo dla tego kto moze, przeciez ja nie ingeruje w zaden kod tylko wymusilem komende w konsoli amx_kickmenu ;>
  • +
  • -
  • 0

#12 Popeye

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

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

Napisano 18.05.2008 09:31

Właśnie każdy kto zmieni nick ma dostęp do menu kicka i chce żeby miał dostęp do zmiany hasła. Ale jakoś trzeba też rozwiązać kwestie hasła, aby później wgrywało standardowy config lub coś.
  • +
  • -
  • 0

#13 Miczu

    Godlike

  • Przyjaciel

Reputacja: 646
Wszechmogący

  • Postów:2862
Offline

Napisano 18.05.2008 10:40

Zamiast zmieniania nicka mozesz zmienic w amxx.cfg
amx_default_access
To ustala jakie maja miec flagi gracze nie widniejacy w users.ini ;)

Salamon i kto mial raqcje xP
  • +
  • -
  • 0

#14 Salamon

    Profesjonalista

  • Użytkownik

Reputacja: 43
Pomocny

  • Postów:199
Offline

Napisano 18.05.2008 11:27

no tak ale co ma jedno do drugiego xP jak ma sie default acces nie 'z' to przeciez tak czy siak wpisze w konsoli amx_kickmenu i mu sie otworzy menu
  • +
  • -
  • 0

#15 Popeye

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

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

Napisano 18.05.2008 13:37

No niby tak, ale byłby za duży chaos gdyby każdy z grających miał dostęp do komend.
  • +
  • -
  • 0

#16 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 05.08.2008 12:50

czyli każdy komu podasz hasło ma mieć admina? czy bez hasła, ale jak już jedna osoba sie zaloguje to nikt inny ma nie mieć możliwości użycia?
  • +
  • -
  • 0




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

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