Jeśli tak to nowy gracz nie jest uwzgledniany w userStats i co sugeruję może powodować problemy z rangą.
Użytkownik Deus Vult edytował ten post 08.01.2026 20:18
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.
|
Napisano 08.01.2026 20:13
Użytkownik Deus Vult edytował ten post 08.01.2026 20:18
Napisano 09.01.2026 09:53
Czyli wystarczy, że nowy gracz wbije chociażby jednego killa i ranga zaczyna mu działać poprawnie?
Napisano 09.01.2026 17:17
Czyli wystarczy, że nowy gracz wbije chociażby jednego killa i ranga zaczyna mu działać poprawnie?
Napisano 09.01.2026 18:03
/* Gets overall stats which are stored in file on server * and updated on every respawn or user disconnect. * Function returns the position in stats by diff. kills to deaths. */ native get_user_stats(index,stats[8],bodyhits[8]);
Napisano 09.01.2026 23:12
Hmmmm, ale idzie coś takiego dopisać do kodu? Bo na nie jednym serwerze grywałem i było po prostu unranked bądź w inny sposób działało to poprawnie.
Napisano 09.01.2026 23:53
Użytkownik Deus Vult edytował ten post 09.01.2026 23:53
Napisano 17.01.2026 15:49
Dzień dobry się z państwem, ponawiam pytanko czy byłaby możliwość dopisania do kodu informację w formie dźwięku o postępie (przejściu na następną rangę)? Płacę jak na prezydenta.
Napisano 30.01.2026 01:30
Dzień dobry się z państwem, ponawiam pytanko czy byłaby możliwość dopisania do kodu informację w formie dźwięku o postępie (przejściu na następną rangę)? Płacę jak na prezydenta.
SMA
#include <amxmodx>
#include <csx>
#include <fakemeta>
#define ForArray(%1,%2) for(new %1 = 0; %1 < sizeof %2; %1++)
#define TASK_HUD 666
new const rankName[][] =
{
"Silver I", "Silver II", "Silver III", "Silver IV", "Silver Elite", "Silver Elite Master",
"Gold Nova I", "Gold Nova II", "Gold Nova III", "Gold Nova IV", "Gold Nova Master",
"Master Guardian I", "Master Guardian II", "Master Guardian Elite",
"Distinguished Master Guardian", "Legendary Eagle", "Legendary Eagle Master",
"Supreme Master First Class", "The Global Elite"
};
new const rankKills[][] =
{
{ 0, 29 }, { 30, 59 }, { 60, 119 }, { 120, 209 }, { 210, 324 }, { 325, 499 },
{ 500, 729 }, { 730, 999 }, { 1000, 1399 }, { 1400, 1849 }, { 1850, 2299 },
{ 2300, 2899 }, { 2900, 3549 }, { 3550, 4999 }, { 5000, 5899 }, { 5900, 6899 },
{ 6900, 7999 }, { 8000, 9299 }, { 9300, 12000 }
};
new hudObject;
new g_userOldRank[33];
public plugin_init()
{
register_plugin("Info Hud I Rangi CsGo", "1.6", "ProToTyp e: N1K1Cz");
hudObject = CreateHudSyncObj();
}
public client_putinserver(id)
{
if (!is_user_bot(id) && !is_user_hltv(id))
{
g_userOldRank[id] = -1;
set_task(1.0, "displayHud", id + TASK_HUD, .flags="b");
}
}
// Zmienione na client_disconnected dla wersji 1.10
public client_disconnected(id)
{
remove_task(id + TASK_HUD);
}
public displayHud(taskID)
{
new index = taskID - TASK_HUD;
if(!is_user_connected(index))
{
remove_task(taskID);
return;
}
static userName[33], requiredKills, userPosition, userRankIndex, userStats[8], body[8];
new target = index;
// Obsługa widoku obserwatora (Spectator)
if (!is_user_alive(index))
{
new spec = pev(index, pev_iuser2);
if (spec > 0 && is_user_alive(spec))
{
target = spec;
}
else
{
ClearSyncHud(index, hudObject);
return;
}
}
// Pobieranie statystyk celu
userPosition = get_user_stats(target, userStats, body);
userRankIndex = getRankIndex(userStats[0]);
// Logika powiadomienia o awansie (tylko dla gracza, który faktycznie awansuje)
if (target == index)
{
if (g_userOldRank[index] != -1 && userRankIndex > g_userOldRank[index])
{
// Dźwięk awansu z folderu gry i napis na środku
client_cmd(index, "spk events/tutor_msg.wav");
set_hudmessage(255, 215, 0, -1.0, 0.3, 0, 6.0, 5.0);
show_hudmessage(index, "GRATULACJE!^nAWANSOWALES DO RANGI: %s", rankName[userRankIndex]);
}
g_userOldRank[index] = userRankIndex;
}
get_user_name(target, userName, charsmax(userName));
// Obliczanie progu fragów
if (userRankIndex < sizeof(rankKills) - 1)
requiredKills = rankKills[userRankIndex + 1][0];
else
requiredKills = rankKills[userRankIndex][1];
// Kolor jasnoniebieski (cyjan), pozycja po lewej stronie
set_hudmessage(0, 160, 255, 0.02, 0.20, 0, 0.1, 1.1, 0.1, 0.1, -1);
ShowSyncHudMsg(index, hudObject,
"[Nick: %s]^n\
[Ranga: %s]^n\
[Postep: %i / %i]^n\
[Fragi: %i]^n\
[Ranking: %i / %i]^n\
[Vip: %s]",
userName,
rankName[userRankIndex],
userStats[0],
requiredKills,
get_user_frags(target),
userPosition,
get_statsnum(),
(get_user_flags(target) & ADMIN_LEVEL_H) ? "Tak" : "Nie"
);
}
public getRankIndex(kills)
{
for (new i = sizeof(rankKills) - 1; i >= 0; i--)
{
if (kills >= rankKills[i][0])
return i;
}
return 0;
}
Dźwięk dodajesz tutaj cstrike/sound/events/tutor_msg.wav
jak coś daj znać na priv to zrobimy od podstaw
Napisano 30.01.2026 12:50
Dzień dobry się z państwem, ponawiam pytanko czy byłaby możliwość dopisania do kodu informację w formie dźwięku o postępie (przejściu na następną rangę)? Płacę jak na prezydenta.
SMA
#include <amxmodx> #include <csx> #include <fakemeta> #define ForArray(%1,%2) for(new %1 = 0; %1 < sizeof %2; %1++) #define TASK_HUD 666 new const rankName[][] = { "Silver I", "Silver II", "Silver III", "Silver IV", "Silver Elite", "Silver Elite Master", "Gold Nova I", "Gold Nova II", "Gold Nova III", "Gold Nova IV", "Gold Nova Master", "Master Guardian I", "Master Guardian II", "Master Guardian Elite", "Distinguished Master Guardian", "Legendary Eagle", "Legendary Eagle Master", "Supreme Master First Class", "The Global Elite" }; new const rankKills[][] = { { 0, 29 }, { 30, 59 }, { 60, 119 }, { 120, 209 }, { 210, 324 }, { 325, 499 }, { 500, 729 }, { 730, 999 }, { 1000, 1399 }, { 1400, 1849 }, { 1850, 2299 }, { 2300, 2899 }, { 2900, 3549 }, { 3550, 4999 }, { 5000, 5899 }, { 5900, 6899 }, { 6900, 7999 }, { 8000, 9299 }, { 9300, 12000 } }; new hudObject; new g_userOldRank[33]; public plugin_init() { register_plugin("Info Hud I Rangi CsGo", "1.6", "ProToTyp e: N1K1Cz"); hudObject = CreateHudSyncObj(); } public client_putinserver(id) { if (!is_user_bot(id) && !is_user_hltv(id)) { g_userOldRank[id] = -1; set_task(1.0, "displayHud", id + TASK_HUD, .flags="b"); } } // Zmienione na client_disconnected dla wersji 1.10 public client_disconnected(id) { remove_task(id + TASK_HUD); } public displayHud(taskID) { new index = taskID - TASK_HUD; if(!is_user_connected(index)) { remove_task(taskID); return; } static userName[33], requiredKills, userPosition, userRankIndex, userStats[8], body[8]; new target = index; // Obsługa widoku obserwatora (Spectator) if (!is_user_alive(index)) { new spec = pev(index, pev_iuser2); if (spec > 0 && is_user_alive(spec)) { target = spec; } else { ClearSyncHud(index, hudObject); return; } } // Pobieranie statystyk celu userPosition = get_user_stats(target, userStats, body); userRankIndex = getRankIndex(userStats[0]); // Logika powiadomienia o awansie (tylko dla gracza, który faktycznie awansuje) if (target == index) { if (g_userOldRank[index] != -1 && userRankIndex > g_userOldRank[index]) { // Dźwięk awansu z folderu gry i napis na środku client_cmd(index, "spk events/tutor_msg.wav"); set_hudmessage(255, 215, 0, -1.0, 0.3, 0, 6.0, 5.0); show_hudmessage(index, "GRATULACJE!^nAWANSOWALES DO RANGI: %s", rankName[userRankIndex]); } g_userOldRank[index] = userRankIndex; } get_user_name(target, userName, charsmax(userName)); // Obliczanie progu fragów if (userRankIndex < sizeof(rankKills) - 1) requiredKills = rankKills[userRankIndex + 1][0]; else requiredKills = rankKills[userRankIndex][1]; // Kolor jasnoniebieski (cyjan), pozycja po lewej stronie set_hudmessage(0, 160, 255, 0.02, 0.20, 0, 0.1, 1.1, 0.1, 0.1, -1); ShowSyncHudMsg(index, hudObject, "[Nick: %s]^n\ [Ranga: %s]^n\ [Postep: %i / %i]^n\ [Fragi: %i]^n\ [Ranking: %i / %i]^n\ [Vip: %s]", userName, rankName[userRankIndex], userStats[0], requiredKills, get_user_frags(target), userPosition, get_statsnum(), (get_user_flags(target) & ADMIN_LEVEL_H) ? "Tak" : "Nie" ); } public getRankIndex(kills) { for (new i = sizeof(rankKills) - 1; i >= 0; i--) { if (kills >= rankKills[i][0]) return i; } return 0; }Dźwięk dodajesz tutaj cstrike/sound/events/tutor_msg.wav
jak coś daj znać na priv to zrobimy od podstaw
ale ai wjechalo ![]()
Napisano 30.01.2026 14:51
ale ai wjechalo
Owszem ai jest może niezbyt dokładne, lecz szybciej coś ogarniesz i jest bardziej pomocne wiadomo ai nie ogarnie w 100% bo się będziesz bawić i wkur..
przy większym projekcie ale zrobisz to szybciej i jak chcesz więc w czym widzisz problem ? Chyba każda pomoc jest potrzebna nie ważne z jakiego źródła ![]()
Napisano 30.01.2026 20:10
ale ai wjechalo
Owszem ai jest może niezbyt dokładne, lecz szybciej coś ogarniesz i jest bardziej pomocne wiadomo ai nie ogarnie w 100% bo się będziesz bawić i wkur..
przy większym projekcie ale zrobisz to szybciej i jak chcesz więc w czym widzisz problem ? Chyba każda pomoc jest potrzebna nie ważne z jakiego źródła
to chociaz jak juz uzywasz to wyslij kod przyjazny dla oka
0 użytkowników, 1 gości, 0 anonimowych