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;
}
Nie lepiej zrobić to bez zmiennych?
po co zaciemniać sobie kod
A jak zrobić to na starego CODa :)?
http://darkgl.amxx.pl/index.php/2011/09/05/procentowy-exp-2/ 😉
Dzięki wielkie 🙂
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.
Przecież się skompilowało a to co widzisz to są ostrzeżenia o złej tabulacji
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??
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”
skoro źle dodajesz to nie jest to wina tutorialu
Dziękować 😀
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)
mi te same errory wywala co poprzednikowi? Pomożesz coś ?? czy nie
No gratulacje poradnik z******** wszystko dziala a dodatkowe 4 warningi nie robią większej ruznicy (mam juz z 10 :D)
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??
W sensie procent koło levela ?
tak
procent kolo levela umie zrobic tylko to co napisalem 😛
Dalej są te errory ?
Mi wyskakuje taki błąd:”target”
Oco kaman?…
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?
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?
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.
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.