Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
CS:GO

[CoD Nowy] Dodawanie procentowego doswiadczenia

cs:go

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 14.05.2016 13:29

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.


  • +
  • -
  • 3

b35020692_qesnxqa.png






Również z jednym lub większą ilością słów kluczowych: cs:go

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych