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
Naprawienie

Najlepszy gracz rundy

Naprawienie

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 BotKiller1

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:25
  • Imię:Dawid
  • Lokalizacja:Sosnowiec
Offline

Napisano 29.09.2012 17:49

Witam mam na swoim serwerze plugin najlepszy gracz rundy, działa ten plugin, lecz nie do końca.

Pokazuje najlepszego gracza rundy np:

Najlepszy gracz rundy: Bot>>>Killer
Zabił fragów: np 2
Ustrzelił w tym: 0 HS

Za każdym razem gdy zabiję kogoś przez HS w pluginie zawsze piszę, że Ustrzelił w tym: 0 HS

Proszę o pomoc.

Załączone pliki


  • +
  • -
  • 0

#2 P@trYk^.^

    Wszechwidzący

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:299
  • Imię:Patryk
  • Lokalizacja:Piła
Offline

Napisano 29.09.2012 18:25

Spróbuj tego:
#include <amxmodx>
#define PLUGIN "BestPlayer"
#define VERSION "1.0"
#define AUTHOR "KaMaZZ"
new g_iKills[33]
new g_iDeaths[33]
new g_hs[33]
new bestplayer = 0, g_iMaxPlayers;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "death_event", "a", "1>0");
register_event("HLTV", "eHLTV", "a", "1=0", "2=0");
register_logevent("wiadomosc",2,"1=Round_End")
g_iMaxPlayers = get_maxplayers();
}
/*============================================ ============================================= =======*/
/*************************************** [Color Chat] *********************************************/
/*============================================ =================================R=E=Y=M=O=N= =A=R=G=*/

enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}
new TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
new message[256];
switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';
new team, ColorChange, index, MSG_Type;
if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message);
if(ColorChange)
{
Team_Info(index, MSG_Type, TeamName[team]);
}
}
ShowColorMessage(id, type, message[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}
return 0;
}
FindPlayer()
{
new i = -1;
while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}
return -1;
}
public client_connect(id)
{
g_iKills[id] = 0
g_iDeaths[id] = 0
}
public death_event()
{
new iKiller = read_data(1), iVictim = read_data(2), iHitplace = read_data(4);
if (iKiller == iVictim)
{
g_iDeaths[iKiller]++;
return;
}
g_iKills[iKiller]++;
g_iDeaths[iVictim]++;
if(iHitplace == HIT_HEAD)
{
g_hs[iKiller]++;
}
}
public wiadomosc()
{
if(get_playersnum() < 2)
return
for(new i=1; i <= g_iMaxPlayers; i++)
{
if (g_iKills[i] > g_iKills[bestplayer] || g_iKills[i] == g_iKills[bestplayer] && g_iDeaths[i] < g_iDeaths[bestplayer] || g_iKills[i] == g_iKills[bestplayer] && g_hs[i] > g_hs[bestplayer])
{
bestplayer = i;
}
}
new name[32];
get_user_name(bestplayer, name, 31);
new iKills = g_iKills[bestplayer]
new iHS = g_hs[bestplayer]
ColorChat(0, GREEN,"^x03 BF2+FFA: Najlepszy gracz w tej rundzie: %s", name)
if(iKills >= 5 || iKills == 0)
{
ColorChat(0, GREEN, "^x03 BF2+FFA: Zdobyl %d fragow", iKills)
}
else if(iKills > 1 && iKills < 5)
{
ColorChat(0, GREEN, "^x03 BF2+FFA: Zdobyl %d fragi", iKills)
}
else if(iKills == 1)
{
ColorChat(0, GREEN, "^x03 BF2+FFA: Zdobyl 1 fraga")
}
ColorChat(0, GREEN, "^x03 BF2+FFA: Ustrzelil %d hsow", HS)
}
public eHLTV()
{
for( new i = 1 ; i <= g_iMaxPlayers ; i++ )
{
g_iKills[ i ] = 0;
g_iDeaths[ i ] = 0;
g_hs[ i ] = 0;
}
}

Użytkownik P@trYk^.^ edytował ten post 29.09.2012 18:28

  • +
  • -
  • 0

#3 BotKiller1

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:25
  • Imię:Dawid
  • Lokalizacja:Sosnowiec
Offline

Napisano 29.09.2012 18:59

Nie działa. Jakieś inne próby?

Błąd przy kompilacji Lokalnej i Online

Użytkownik BotKiller1 edytował ten post 29.09.2012 19:02

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: Naprawienie

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

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