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.

Dodaj komentarz