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
 

Zdjęcie

Spree - najlepszy gracz rundy


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

#1 jakub_s

    Zaawansowany

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:129
  • Imię:Jakub
  • Lokalizacja:Forum
Offline

Napisano 16.05.2010 11:15

witam,

mam problem z pluginem spree, który pokazuje najlepszego gracza rundy - chodzi o to, że dla wszystkich na serwerze - CT, TT i SPEC pokazuje jeden kolor niezależnie od teamu - Czerwony, biały lub niebieski.
Czy jest coś nie tak z tym kodem?
#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define PLUGIN "Spreeeee!"
#define VERSION "0.07"
#define AUTHOR "R3X"
#define MAX_PLAYERS 32

//#define DEBUG

new g_points[MAX_PLAYERS+1][2];
new g_pointsThisRound[MAX_PLAYERS+1][2];
new g_cvarLimit,g_cvarEndShow;

public plugin_init(){
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_event("DeathMsg","onDeath","a");
	register_event("TextMsg", "resetAll", "a", "2&#Game_will_restart_in" );
	register_event("TextMsg", "resetAll", "a", "2&#Game_C");
	register_logevent("onEndRound", 2, "1=Round_End") 
	register_logevent("resetAllThisRound", 2, "1=Round_Start")  
	g_cvarLimit=register_cvar("amx_spree_limit","5");
	g_cvarEndShow=register_cvar("amx_endshow","1");
#if defined DEBUG
	register_concmd("show_points","cmd_show_points",ADMIN_KICK);
#endif
}
reset(id){
	g_points[id][0]=0;
	g_points[id][1]=0;
}
resetRound(id){
	g_pointsThisRound[id][0]=0;
	g_pointsThisRound[id][1]=0;
}
public resetAllThisRound(){
	for(new i=0;i<=MAX_PLAYERS;i++)
		resetRound(i);
}
public resetAll(){
	for(new i=0;i<=MAX_PLAYERS;i++)
		reset(i);
}
public onEndRound(){
	if(get_pcvar_num(g_cvarEndShow))
		set_task(0.3,"podsumowanie");
}
public podsumowanie(){
	new bool:double=false;
	new id=0;
	for(new i=1;i<=MAX_PLAYERS;i++){
		if(g_pointsThisRound[id][0]==g_pointsThisRound[i][0]){
			if(g_pointsThisRound[id][1] == g_pointsThisRound[i][1]){
				double=true;
			}
			else if(g_pointsThisRound[id][1] < g_pointsThisRound[i][1]){
				id=i;
				double=false;
			}
		}
		else if(g_pointsThisRound[id][0] < g_pointsThisRound[i][0]){
			id=i;	
			double=false;
		}
	}
	if(!double && id){
		new szNick[33];
		get_user_name(id,szNick,32);
		ColorChat(0, GREEN, "**^x01 Najlepszy gracz rundy to^x03 %s^x01 !",szNick);
		ColorChat(0, GREEN, "**^x01 Zamordowal^x03 %d^x01 graczy !",g_pointsThisRound[id][0]);
		ColorChat(0, GREEN, "**^x01 Ustrzelil^x03 %d^x01 headshot'ow !",g_pointsThisRound[id][1]);
	}
}
public client_putinserver(id){
	reset(id);
	resetRound(id);
}
public client_disconnect(id){
	reset(id);
	resetRound(id);
}
public onDeath(){
	new kid=read_data(1);
	new vid=read_data(2);
	log_amx("%d->%d",kid,vid);
	if(!is_user_connected(kid)){
		reset(vid);
		return PLUGIN_CONTINUE;
	}
	log_amx("(2)%d->%d",kid,vid);
	g_points[kid][0]++;
	g_pointsThisRound[kid][0]++;
	
	if(read_data(3)){
		g_points[kid][1]++;
		g_pointsThisRound[kid][1]++;
	}
	if(get_pcvar_num(g_cvarLimit)<=0)
		return PLUGIN_CONTINUE;
	if(g_points[vid][0]>=get_pcvar_num(g_cvarLimit)){
		new szVicNick[33],szKilNick[33];
		get_user_name(vid,szVicNick,32);
		get_user_name(kid,szKilNick,32);
		ColorChat(0, GREEN, "**^x01 Szalenstwo zabijania^x03 %s^x01 !",szVicNick);
		ColorChat(0, GREEN, "**^x01 Zabil^x03 %d^x01 graczy w tym^x03 %d^x01 hs'ow !",g_points[vid][0],g_points[vid][1]);
		ColorChat(0, GREEN, "**^x01 Zatrzymane przez^x03 %s^x01 !",szKilNick);
	}
	reset(vid);
	return PLUGIN_CONTINUE;
}
#if defined DEBUG
public cmd_show_points(id,level,cid){
	if( !cmd_access(id, level, cid, 1)) 
		return PLUGIN_HANDLED;
	client_print(id,print_console,"----------Points------------");
	new Players[32];
	new playerCount, id2;
	get_players(Players, playerCount);
	for ( new i=0; i<playerCount; i++){
		id2 = Players[i];
		client_print(id,print_console,"[%d] P=%d(%dhs), PTR=%d(%dhs)",id2,g_points[id2][0],g_points[id2][1],g_pointsThisRound[id2][0],g_pointsThisRound[id2][1])
	}
	client_print(id,print_console,"--------------------------");
	return PLUGIN_HANDLED;
}
#endif

  • +
  • -
  • 0

#2 Lukasz5

    Godlike

  • Power User

Reputacja: 280
Wszechwidzący

  • Postów:1 414
  • Imię:Łukasz
  • Lokalizacja:C: / WINDOWS
Offline

Napisano 16.05.2010 11:22

Masz ustawione zielony kolor czyli jeden dla wszystkich... Chcesz mieć jeden z tych??:
Czerwony, biały lub niebieski.
  • +
  • -
  • 0

#3 jakub_s

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:129
  • Imię:Jakub
  • Lokalizacja:Forum
Offline

Napisano 16.05.2010 11:25

Nie mam ustawionego jednego koloru.
ColorChat(0, GREEN,
oznacza, że początek tekstu bedzie zielony. do czasu aż znajdzie np.
^x03

  • +
  • -
  • 0

#4 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 16.05.2010 11:42

spróbuj tak
ColorChat(0, get_user_team(id)==1?RED:BLUE, "^x04**^x01 Najlepszy gracz rundy to^x03 %s^x01 !",szNick);
		ColorChat(0, get_user_team(id)==1?RED:BLUE, "^x04**^x01 Zamordowal^x03 %d^x01 graczy !",g_pointsThisRound[id][0]);
		ColorChat(0, get_user_team(id)==1?RED:BLUE, "^x04**^x01 Ustrzelil^x03 %d^x01 headshot'ow !",g_pointsThisRound[id][1]);

  • +
  • -
  • 0

#5 Kusek

    z Wikipedii

  • Power User

Reputacja: 446
Wszechobecny

  • Postów:1 655
  • Imię:Krystian
Offline

Napisano 16.05.2010 11:42

nie, oznacza to że gdy znajdzie "^x03" to jeden wyraz będzie tego koloru a reszta zielona :)
  • +
  • -
  • 0

#6 hardbot

    Banned

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:3 049
Offline

Napisano 16.05.2010 11:46

Paczaj na to


#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define PLUGIN "Spreeeee!"
#define VERSION "0.07"
#define AUTHOR "R3X"
#define MAX_PLAYERS 32

//#define DEBUG

new g_points[MAX_PLAYERS+1][2];
new g_pointsThisRound[MAX_PLAYERS+1][2];
new g_cvarLimit,g_cvarEndShow;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("DeathMsg","onDeath","a");
register_event("TextMsg", "resetAll", "a", "2&#Game_will_restart_in" );
register_event("TextMsg", "resetAll", "a", "2&#Game_C");
register_logevent("onendRound", 2, "1=Round_End")
register_logevent("resetAllThisRound", 2, "1=Round_Start")
g_cvarLimit=register_cvar("amx_spree_limit","5");
g_cvarEndShow=register_cvar("amx_endshow","1");
#if defined DEBUG
register_concmd("show_points","cmd_show_points",ADMIN_KICK);
#endif
}
reset(id)
{
g_points[id][0]=0;
g_points[id][1]=0;
}
resetRound(id)
{
g_pointsThisRound[id][0]=0;
g_pointsThisRound[id][1]=0;
}
public resetAllThisRound()
{
for(new i=0;i<=MAX_PLAYERS;i++)
resetRound(i);
}
public resetAll()
{
for(new i=0;i<=MAX_PLAYERS;i++)
reset(i);
}
public onendRound()
{
if(get_pcvar_num(g_cvarEndShow))
set_task(0.3,"podsumowanie");
}
public podsumowanie()
{
new bool:double=false;
new id=0;
for(new i=1;i<=MAX_PLAYERS;i++)
{
if(g_pointsThisRound[id][0]==g_pointsThisRound[i][0])
{
if(g_pointsThisRound[id][1] == g_pointsThisRound[i][1])
{
double=true;
}
else if(g_pointsThisRound[id][1] < g_pointsThisRound[i][1])
{
id=i;
double=false;
}
}
else if(g_pointsThisRound[id][0] < g_pointsThisRound[i][0])
{
id=i;
double=false;
}
}
if(!double && id)
{
new szNick[33];
get_user_name(id,szNick,32);
new szMsg[192];
formatex(szMsg,191,"**^x01 Najlepszy gracz rundy to^x03 %s^x01 !",szNick);
formatex(szMsg,191,"**^x01 Zamordowal^x03 %d^x01 graczy !",g_pointsThisRound[id][0]);
formatex(szMsg,191,"**^x01 Ustrzelil^x03 %d^x01 headshot'ow !",g_pointsThisRound[id][1]);
ColorChat(0, GREEN,szMsg);
}
}
public client_putinserver(id)
{
reset(id);
resetRound(id);
}
public client_disconnect(id)
{
reset(id);
resetRound(id);
}
public onDeath()
{
new kid=read_data(1);
new vid=read_data(2);
log_amx("%d->%d",kid,vid);
if(!is_user_connected(kid))
{
reset(vid);
return PLUGIN_CONTINUE;
}
log_amx("(2)%d->%d",kid,vid);
g_points[kid][0]++;
g_pointsThisRound[kid][0]++;

if(read_data(3)){
g_points[kid][1]++;
g_pointsThisRound[kid][1]++;
}
if(get_pcvar_num(g_cvarLimit)<=0)
return PLUGIN_CONTINUE;
if(g_points[vid][0]>=get_pcvar_num(g_cvarLimit))
{
new szVicNick[33],szKilNick[33];
get_user_name(vid,szVicNick,32);
get_user_name(kid,szKilNick,32);
new szMsg[192];
formatex(szMsg,191,"**^x01 Szalenstwo zabijania^x03 %s^x01 !",szVicNick);
formatex(szMsg,191,"**^x01 Zabil^x03 %d^x01 graczy w tym^x03 %d^x01 hs'ow !",g_points[vid][0],g_points[vid][1]);
formatex(szMsg,191,"**^x01 Zatrzymane przez^x03 %s^x01 !",szKilNick);
ColorChat(0, GREEN,szMsg);
}
reset(vid);
return PLUGIN_CONTINUE;
}
#if defined DEBUG
public cmd_show_points(id,level,cid)
{
if( !cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED;
client_print(id,print_console,"----------Points------------");
new Players[32];
new playerCount, id2;
get_players(Players, playerCount);
for ( new i=0; i<playerCount; i++)
{
id2 = Players[i];
client_print(id,print_console,"[%d] P=%d(%dhs), PTR=%d(%dhs)",id2,g_points[id2][0],g_points[id2][1],g_pointsThisRound[id2][0],g_pointsThisRound[id2][1])
}
client_print(id,print_console,"--------------------------");
return PLUGIN_HANDLED;
}
#endif


#7 jakub_s

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:129
  • Imię:Jakub
  • Lokalizacja:Forum
Offline

Napisano 16.05.2010 12:26

kyky, nie działa.
hardbot, nie działa.

17 maj 2010 - 17:41:
@ czy jest jeszcze inna możliwość?
  • +
  • -
  • 0

#8 ZiuTeK

    Wszechwiedzący

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:507
  • Lokalizacja:inąd
Offline

Napisano 18.05.2010 18:20

zeby dzialal plugin hardbota musisz sciagnac biblioteke colorchat.inl. Nie wiam jak w ogole probowales bez niej kompilowac.
Musisz to skompilowac lokalnie, czyli u siebie na dysku a nie na stronie.
  • +
  • -
  • 0

#9 hardbot

    Banned

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:3 049
Offline

Napisano 18.05.2010 18:41

Robicie Problemy xD proszę tutaj przekonwertowany plug

Załączone pliki


Użytkownik hardbot edytował ten post 18.05.2010 18:41





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

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