←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Wyświtlanie HP, redukcji, szybkosci

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 01.10.2012

Chciałem by pod całym hudem wyświetlało się życie (tu nie problem, bo można zrobić z tutka), o ile się redukują obrażenia i jaką możemy mieć maksymalną prędkość.
Więc dodałem do huda to:
ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPrzedmiot : %s^n^n^n^n^n^nZycie : %i^nRedukcja : %i^nSzybkosc : %i", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], maksymalne_zdrowie_gracza[id], redukcja_obrazen_gracza[id], szybkosc_gracza[id]);
gdzie
redukcja_obrazen_gracza[id] = 0.7*(1.0-floatpower(1.1, -0.112311341*PobierzWytrzymalosc(id, 1, 1, 1)));

maksymalne_zdrowie_gracza[id] = 100.0+PobierzZdrowie(id, 1, 1, 1);

szybkosc_gracza[id] = STANDARDOWA_SZYBKOSC+PobierzKondycje(id, 1, 1, 1)*1.3;
I wyświetla mi kosmiczne liczby. Oto mój problem, a moje pytanie brzmi czemu tak się dzieje?

EDIT: w kodzie była reklama :X
Użytkownik Vasto edytował ten post 01.10.2012 21:16
Odpowiedz

  • +
  • -
Equilibrium - zdjęcie Equilibrium 01.10.2012

http://amxx.pl/topic...tlane-hp-w-hud/ Spróbuj coś z tego wyciągnąć bo nie wiem czy dodałeś to ^n do paru hudów.
Odpowiedz

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 03.10.2012

Equilibrium, mówiłem, że życie można z tutka zrobić, więc to nie problem. Porobiłem trochę i wyszła zmieniona wersja wytrzymałości perku:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>

#define PLUGIN "[CODMOD] Wytrzymalosc Perku & Staty w hud"
#define VERSION "1.0"
#define AUTHOR "QTM_Peyote"// & Vasto_Lorde

#define ZADANIE_POKAZ_WYTRZYMALOSC 35200

new cvar_max_wytrzymalosc, cvar_uszkodzenia_za_smierc;

new wytrzymalosc_perku[33];

new SyncHudObj;

/*---------

Aby korzystac z natywow
cod_get_perk_durability oraz cod_set_perk_durability
musisz dodac do swojego pluginu:

native cod_set_perk_durability(id, wytrzymalosc); // Ustawia wytrzymalosc perku gracza.
native cod_get_perk_durability(id); // Pobiera wytrzymalosc perku gracza.

-----------*/

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "ResetHUD", "abe");
register_event("DeathMsg", "Death", "ade");
cvar_max_wytrzymalosc = register_cvar("cod_maxperkdurability", "10");
cvar_uszkodzenia_za_smierc = register_cvar("cod_perkdamage", "1");
SyncHudObj = CreateHudSyncObj();
}

public plugin_natives()
{
register_native("cod_get_perk_durability", "PobierzWytrzymalosc", 1);
register_native("cod_set_perk_durability", "UstawWytrzymalosc", 1);
}

public cod_perk_changed(id, perk)
wytrzymalosc_perku[id] = perk? get_pcvar_num(cvar_max_wytrzymalosc): 0;

public Death()
{
new id = read_data(2);

if(!cod_get_user_perk(id)) return;

new uszkodzenia_za_smierc = get_pcvar_num(cvar_uszkodzenia_za_smierc);
wytrzymalosc_perku[id] -= (wytrzymalosc_perku[id] > uszkodzenia_za_smierc)? uszkodzenia_za_smierc: wytrzymalosc_perku[id];
if(wytrzymalosc_perku[id] <= 0)
{
cod_set_user_perk(id, 0);
client_print(id, print_chat, "Twoj przedmiot ulegl zniszczeniu.");
}
else
client_print(id, print_chat, "Pozostala wytrzymalosc twojego przedmiotu to %i.", wytrzymalosc_perku[id]);
}

public UstawWytrzymalosc(id, wartosc)
{
new max_wytrzymalosc = get_pcvar_num(cvar_max_wytrzymalosc);
wytrzymalosc_perku[id] = (wartosc > max_wytrzymalosc)? max_wytrzymalosc: wartosc;
}

public PobierzWytrzymalosc(id)
return wytrzymalosc_perku[id];

public PokazWytrzymalosc(id)
{
id -= ZADANIE_POKAZ_WYTRZYMALOSC;

if(!is_user_alive(id))
{
remove_task(id+ZADANIE_POKAZ_WYTRZYMALOSC);
return;
}
new Float: redukcja = 0.7*(1.0-floatpower(1.1, -0.112311341*cod_get_user_stamina(id, 1, 1, 1)));
new Float: zdrowie_gracza = 100.0+cod_get_user_health(id, 1, 1, 1);

set_hudmessage(255, 170, 42, 0.01, 0.01, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "^n^n^n^n^nWytrzymalosc przedmiotu : %i / %i^n^n^n^n^nZycie : %i^nRedukcja : %i", wytrzymalosc_perku[id], get_pcvar_num(cvar_max_wytrzymalosc), zdrowie_gracza, redukcja);


}
public ResetHUD(id)
{
if(!task_exists(id+ZADANIE_POKAZ_WYTRZYMALOSC))
set_task(0.1, "PokazWytrzymalosc", id+ZADANIE_POKAZ_WYTRZYMALOSC, _, _, "b");
}
Ale nadal wyświetla kosmiczne liczby. Mógłby mi ktoś to wytłumaczyć?
Użytkownik Vasto edytował ten post 03.10.2012 18:48
Odpowiedz

  • +
  • -
Raen - zdjęcie Raen 04.10.2012

trzeba zaokrąglić i pomnożyć przez 100 z tego co pamiętam, tutaj masz działający kod. Wyciągnij sobie ;)
http://amxx.pl/topic...ak-w-diablomod/
Odpowiedz