Prawdopodobnie będzie działać, ale nie mam pewności bo nie znam kodu tych klanów ani trochę...
public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;
if(!is_user_connected(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return PLUGIN_CONTINUE;
}
if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
if(!target)
return PLUGIN_CONTINUE;
set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
return PLUGIN_CONTINUE;
}
static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
iGroup = g_iPlayerGroup[id];
if(iGroup == -1)
{
iLevel = 0;
fPercentExp = 0.0;
copy(szGroupName, 19, "Brak");
}
else
{
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
}
set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]^n[Klan: %s | %d | %d%]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], szGroupName, iLevel, fPercentExp);
return PLUGIN_CONTINUE;
}
Napisałeś, że wszystko działa kiedy jest klan, ale zastanawia mnie taki drobny szczegół:
%d%
Nie wierzę, że działa poprawnie.
Na moje powinno być tak:
%0.0f%%
cyfra przed kropką oznacza ile liczb ma być wyświetlone, 0 oznacza wszystkie
druga cyfra to ilość wyświetlonych cyfr po przecinku, 0 oznacza brak cyfr po przecinku
f oznacza, że wyświetlana jest liczba rzeczywista
są dwa znaki procentu bo jeden znika przez formatowanie
Baw się dobrze.
Działa, ale dodałem go też do hud oglądającego na tej samej zasadzie i wywala mi błędy w consoli gdy kogos oglądam
L 04/29/2018 - 18:12:56: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 04/29/2018 - 18:12:56: [AMXX] Run time error 10: native error (native "ArrayGetCell")
L 04/29/2018 - 18:12:56: [AMXX] [0] QTM_CodMod.sma::PokazInformacje (line 1250)
linijka 1250
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
mój public
public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;
if(!is_user_connected(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return PLUGIN_CONTINUE;
}
if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
new ordery2 = cod_get_user_coins(target);
static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
iGroup = g_iPlayerGroup[target];
iGroup = g_iPlayerGroup[target];
new hp = get_user_health(target);
if(iGroup == -1)
{
iLevel = 0;
fPercentExp = 0.0;
copy(szGroupName, 19, "Brak");
}
else
{
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
}
if(!target)
return PLUGIN_CONTINUE;
new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = poziom_gracza[target]-1 >= 0 ? PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1) : 0;
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
set_hudmessage(0, 255, 0, 0.01, 0.16, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "==================^n|> Klasa : %s^n|> Poziom : %i(%0.1f%%)^n|> Perk : %s^n|> Zdrowie: %d^n|> Klan: %s (Poz: %d[%0.0f%%]^n|> Ordery: %i^n==================", nazwy_klas[klasa_gracza[target]], poziom_gracza[target], fProcent, nazwy_perkow[perk_gracza[target]], hp, szGroupName, iLevel, fPercentExp, ordery2);
return PLUGIN_CONTINUE;
}
new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = poziom_gracza[id]-1 >= 0 ?PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1) : 0
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
new ordery = cod_get_user_coins(id);
static iGroup, iLevel, Float:fPercentExp, szGroupName[20];
iGroup = g_iPlayerGroup[id];
new hp = get_user_health(id);
if(iGroup == -1)
{
iLevel = 0;
fPercentExp = 0.0;
copy(szGroupName, 19, "Brak");
}
else
{
iLevel = ArrayGetCell(g_iGroupLevel, iGroup);
fPercentExp = float(ArrayGetCell(g_iGroupExperience, iGroup) - WriteLevelExp(iLevel-1)) / float(WriteLevelExp(iLevel) - WriteLevelExp(iLevel-1)) * 100.0;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
}
set_hudmessage(0, 255, 0, 0.01, 0.16, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "==================^n|> Klasa : %s^n|> Poziom : %i(%0.1f%%)^n|> Perk : %s^n|> Zdrowie: %d^n|> Klan: %s (Poz: %d[%0.0f%%])^n|> Ordery: %i^n==================", nazwy_klas[klasa_gracza[id]], poziom_gracza[id], fProcent, nazwy_perkow[perk_gracza[id]], hp, szGroupName, iLevel, fPercentExp, ordery);
return PLUGIN_CONTINUE;
}
Użytkownik chrisN edytował ten post 29.04.2018 17:16