W tym prostym tutorialu pokaże w jaki sposób zrobić by nasze zdobyte doświadczenie wyświetlane było w procentach.
Na początku musimy otworzyć nasz silnik i odnaleźć w nim:
public Action:PokazInformacje(Handle:timer, any:client)
następnie usuwamy go i w jego miejsce wrzucamy (wersja z samymi procentami):
public Action:PokazInformacje(Handle:timer, any:client)
{
if(!IsValidClient(client))
return;
if(IsPlayerAlive(client))
{
new Float:fprocent = (float(doswiadczenie_gracza[client]-SprawdzDoswiadczenie(poziom_gracza[client]-1))/float(SprawdzDoswiadczenie(poziom_gracza[client])-SprawdzDoswiadczenie(poziom_gracza[client]-1)))*100.0;
new Float:fdoswiadczenie = (fprocent < 0.0 || fprocent > 100.0)? 0.0: fprocent;
PrintHintText(client, "<font color='#008000'>[Klasa: <b>%s</b>]\n[Xp: <b>%0.1f%%</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[client]], fdoswiadczenie, poziom_gracza[client], nazwy_itemow[item_gracza[client]], wytrzymalosc_itemu_gracza[client]);
}
else
{
new spect = GetEntProp(client, Prop_Send, "m_iObserverMode");
if(spect == 4 || spect == 5)
{
new target = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
if(target != -1 && IsValidClient(target))
{
new Float:fprocent = (float(doswiadczenie_gracza[target]-SprawdzDoswiadczenie(poziom_gracza[target]-1))/float(SprawdzDoswiadczenie(poziom_gracza[target])-SprawdzDoswiadczenie(poziom_gracza[target]-1)))*100.0;
new Float:fdoswiadczenie = (fprocent < 0.0 || fprocent > 100.0)? 0.0: fprocent;
PrintHintText(client, "<font color='#FFFFFF'>[Klasa: <b>%s</b>]\n[Xp: <b>%0.1f%%</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[target]], fdoswiadczenie, poziom_gracza[target], nazwy_itemow[item_gracza[target]], wytrzymalosc_itemu_gracza[target]);
}
}
}
hud_task[client] = CreateTimer(0.5, PokazInformacje, client, TIMER_FLAG_NO_MAPCHANGE);
}
lub (wersja z zdobytym doświadczeniem oraz procentami):
public Action:PokazInformacje(Handle:timer, any:client)
{
if(!IsValidClient(client))
return;
if(IsPlayerAlive(client))
{
new Float:fprocent = (float(doswiadczenie_gracza[client]-SprawdzDoswiadczenie(poziom_gracza[client]-1))/float(SprawdzDoswiadczenie(poziom_gracza[client])-SprawdzDoswiadczenie(poziom_gracza[client]-1)))*100.0;
new Float:fdoswiadczenie = (fprocent < 0.0 || fprocent > 100.0)? 0.0: fprocent;
PrintHintText(client, "<font color='#008000'>[Klasa: <b>%s</b>]\n[Xp: <b>%i</b> [<b>%0.1f%%</b>] | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[client]], doswiadczenie_gracza[client], fdoswiadczenie, poziom_gracza[client], nazwy_itemow[item_gracza[client]], wytrzymalosc_itemu_gracza[client]);
}
else
{
new spect = GetEntProp(client, Prop_Send, "m_iObserverMode");
if(spect == 4 || spect == 5)
{
new target = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
if(target != -1 && IsValidClient(target))
{
new Float:fprocent = (float(doswiadczenie_gracza[target]-SprawdzDoswiadczenie(poziom_gracza[target]-1))/float(SprawdzDoswiadczenie(poziom_gracza[target])-SprawdzDoswiadczenie(poziom_gracza[target]-1)))*100.0;
new Float:fdoswiadczenie = (fprocent < 0.0 || fprocent > 100.0)? 0.0: fprocent;
PrintHintText(client, "<font color='#FFFFFF'>[Klasa: <b>%s</b>]\n[Xp: <b>%i</b> [<b>%0.1f%%</b>] | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], fdoswiadczenie, poziom_gracza[target], nazwy_itemow[item_gracza[target]], wytrzymalosc_itemu_gracza[target]);
}
}
}
hud_task[client] = CreateTimer(0.5, PokazInformacje, client, TIMER_FLAG_NO_MAPCHANGE);
}
teraz już tylko wystarczy nadpisać zmiany i ponownie skompilować silnik by cieszyć się dodatkiem.
Silnik wraz z paczką modyfikacji, można nabyć wyłącznie poprzez kontakt ze mną. Więcej o tym w sygnaturze.


Dodatki SourceMod















