Procentowy Exp

Jeśli zamiast expa w hud chcielibyście widzieć ile macie procent do następnego levela to ten tutorial jest dla ciebie 😉 zmiany wymaga jedna funkcja
public PokazInformacje(id) 
po
if(!target)
return PLUGIN_CONTINUE;
dodajemy
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;
następnie po klamrze zamykającej warunek
if(!is_user_alive(id))
(przed drugim set_hudmessage) dodajemy
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;
teraz wybieramy
  • Chcemy widzieć exp i procenty
    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]]);
    podmieniamy na
    ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i %0.1f%%^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]),fProcent, poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
    i
    ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i ]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);
    na
    ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i %0.1f%%]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), fProcent, poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);
  • Chcemy widzieć sam procent
    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]]);
    podmieniamy na
    ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %0.1f%%^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]],fProcent, poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
    i
    ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i ]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);
    na
    ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %0.1f%%]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]],fProcent, poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);
gotowe kompilujemy i wrzucamy na serwer funkcja pokazinformacje dla „Chcemy widzieć exp i procenty” powinna wyglądać tak:
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;

new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1)
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;

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 %0.1f%%^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]),fProcent, poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
return PLUGIN_CONTINUE;
}

new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;

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 %0.1f%%]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), fProcent, poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);

return PLUGIN_CONTINUE;
}  
a dla „Chcemy widzieć sam procent”:
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;

new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1)
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;

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 : %0.1f%%^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], fProcent, poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
return PLUGIN_CONTINUE;
}

new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;

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 : %0.1f%%]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], fProcent, poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);

return PLUGIN_CONTINUE;
}  

24 komentarzy o “Procentowy Exp

  1. Mi nie dziala 🙁

    Welcome to the AMX Mod X 1.8.1-300 Compiler.
    Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

    QTM_CodMod.sma(495) : warning 217: loose indentation
    QTM_CodMod.sma(497) : warning 217: loose indentation
    QTM_CodMod.sma(826) : warning 217: loose indentation
    QTM_CodMod.sma(827) : warning 217: loose indentation
    Header size: 4836 bytes
    Code size: 58056 bytes
    Data size: 382500 bytes
    Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion
    Total requirements: 461776 bytes

    4 Warnings.
    Done.

  2. Mam Sprawe
    Da Sie Zrobic Na Procentowy Exp zeby Bylo Kolo Poziomu
    I Nie bylo . Tylko bylo tak (0%)
    A Jak Ktos Bedzie Zabijal Ludzi np to jak dojdzie do 100 od nowa jest (0%) a Gosciu ma 1 lvl
    da sie to zrobic??

  3. LIPA …
    QTM_CodMod.sma(1095) : warning 217: loose indentation
    QTM_CodMod.sma(1098) : warning 217: loose indentation
    QTM_CodMod.sma(1103) : warning 204: symbol is assigned a value that is never used: „fProcent”
    QTM_CodMod.sma(1106) : warning 217: loose indentation
    QTM_CodMod.sma(1109) : warning 217: loose indentation
    QTM_CodMod.sma(1115) : warning 204: symbol is assigned a value that is never used: „fProcent”

  4. Zaczelo walic bledami na serwerze :

    L 04/26/2012 – 19:29:50: [AMXX] Run time error 4: index out of bounds
    L 04/26/2012 – 19:29:50: [AMXX] [0] QTM_CodMod.sma::PobierzDoswiadczeniePoziomu (line 1431)
    L 04/26/2012 – 19:29:50: [AMXX] [1] QTM_CodMod.sma::PobierzDoswiadczeniePoziomu (line 1431)
    L 04/26/2012 – 19:29:50: [AMXX] [2] QTM_CodMod.sma::PokazInformacje (line 1173)

    linijka 1431 : return doswiadczenie_poziomu[poziom];
    Linijka 1173 : new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)

  5. No gratulacje poradnik z******** wszystko dziala a dodatkowe 4 warningi nie robią większej ruznicy (mam juz z 10 :D)

  6. Mam Sprawe
    Da Sie Zrobic Na Procentowy Exp zeby Bylo Kolo Poziomu
    I Nie bylo . Tylko bylo tak (0%)
    A Jak Ktos Bedzie Zabijal Ludzi np to jak dojdzie do 100 od nowa jest (0%) a Gosciu ma 1 lvl
    da sie to zrobic??

  7. Nie wiem dlaczego ale wyskakują dwa warningi, które psują HUD’a

    …a value that is never used: „fProcent”
    Linijka w której występuje błąd :
    1205 – }
    1217 – }

    Klamry zamykające. O co chodzi?

  8. Kod w zrobieniu „po kroku” jest troszkę inny niż w gotowcach, mianowicie:

    po kroku:
    new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = poziom_gracza[target]-1 >= 0 ? PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1) : 0;

    gotowiec:
    new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1)

    Istotne są to różnice?

  9. Hej,
    Pragnę zauważyć, że jak ktoś ma wgrane frakcje to do póki nie wybierze z menu którejś z nich to exp procentowy się krzacz. Dopiero jak wejdzie się do któregoś z menu klas, exp pokazuje się normalnie.

  10. Witam mam taki problem z silnikiem cod:
    L 04/22/2014 – 19:32:25: [AMXX] [0] QTM_CodMod.sma::PobierzDoswiadczeniePoziomu (line 3603)

    L 04/22/2014 – 19:32:25: [AMXX] [1] QTM_CodMod.sma::PobierzDoswiadczeniePoziomu (line 3603)

    L 04/22/2014 – 19:32:25: [AMXX] [2] QTM_CodMod.sma::PokazInformacje (line 3352)
    Linia 3603:
    public PobierzDoswiadczeniePoziomu(poziom)
    return doswiadczenie_poziomu[poziom];
    Linia 3352:
    new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)
    Czy mógł by ktoś mi pomóc gdyż spamuje mi to non stop logi.

Skomentuj Lacostii Anuluj pisanie odpowiedzi

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.