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

Problem z dodaniem "ratio" do info hud


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 .Etc

    Zaawansowany

  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:96
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Osterdam
Offline

Napisano 12.10.2013 17:06

Witam,

próbuje dodać do info w hud "Ratio" czyli K/D

Zrobiłem to tak:

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

new hud_rgb, hud_x, hud_y, hud_effects,g_round = 1,maxplayers,hudsync


public plugin_init() {
	register_plugin("Informator [PL]","1.2f","xakintosh")
	hud_rgb = register_cvar( "srv_hud_rgb", "165 165 165" )
	hud_x = register_cvar( "srv_hud_x", "0.55" )
	hud_y = register_cvar( "srv_hud_y", "0.75" )
	hud_effects = register_cvar( "srv_hud_effects", "1" )
	hudsync = CreateHudSyncObj()
	maxplayers = get_maxplayers()
	set_task(0.1, "Fwd_StartFrame", 1, "", 0, "b")
	register_forward(FM_StartFrame, "Fwd_StartFrame")
	register_event("HLTV", "event_newround", "a", "1=0", "2=0")
}
public event_newround() {
	g_round++
}
public Fwd_StartFrame(id) {
	new timestring[31]
	
        new Float:ratio
	new deads = get_user_deaths(id);
	new kills = get_user_frags(id);
	ratio = kills % deads;
	
	get_time("%H:%M:%S",timestring,8)
	static Float:GameTime, Float:FramesPer = 0.0
	static Float:Fps
	GameTime = get_gametime()
	if(FramesPer >= GameTime)
		Fps += 1.0;
	else {
		FramesPer = FramesPer + 1.0
		for( new id = 1; id <= maxplayers; id++ ) { 
			new ip[42],red, green, blue
			
			new timeleft = get_timeleft()
			get_hud_color(red, green, blue)
			get_user_ip(0, ip, 31, 1)
			set_hudmessage(red,green,blue,get_pcvar_float(hud_x),get_pcvar_float(hud_y),get_pcvar_num(hud_effects),0.3,1.0)
			ShowSyncHudMsg(id,hudsync,"Godzina: %s | Serwer FPS: %.1f^n Fragi: %i | Zgony: %i | Ratio: %.1f",timestring,Fps,get_user_frags(id),get_user_deaths(id), ratio)
                                                           

		}
		Fps = 0.0
	}
}
get_hud_color(&r, &g, &b) {
	new color[20]
	static red[5], green[5], blue[5]
	get_pcvar_string(hud_rgb, color, charsmax(color))
	parse(color, red, charsmax(red), green, charsmax(green), blue, charsmax(blue))
	r = str_to_num(red)
	g = str_to_num(green)
	b = str_to_num(blue)
}

ale po dodaniu

        new Float:ratio
	new deads = get_user_deaths(id);
	new kills = get_user_frags(id);
	ratio = kills % deads;

Nie wyświetla sie hud aż do pierwszego killa, i podaje błedne dane


Użytkownik kimiz edytował ten post 12.10.2013 17:07


#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 12.10.2013 18:43

A moze tam gdzie ratio daj %0.1f%%

lub

0.1f%%


  • +
  • -
  • 0

#3 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 13.10.2013 00:06

Do działań na floacie służą odpowiednie funkcje np. floatadd

A tak poza tym % to dzielenie modulo a ty chyba potrzebujesz normalnego ?


Użytkownik Ogen Dogen edytował ten post 13.10.2013 00:06

  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.10.2013 06:31

Popatrz jak to jest rozwiązane w procentowym expie

http://darkgl.amxx.p...procentowy-exp/


  • +
  • -
  • 1

#5 .Etc

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:96
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Osterdam
Offline

Napisano 13.10.2013 13:09

Spróbowałem tak:

new deads = get_user_deaths(id);
new kills = get_user_frags(id);
new Float:ratio = 0.0;
ratio = float(kills / deads);

ale dalej nie działa


L 10/13/2013 - 07:23:46: [AMXX] Run time error 11: divide
L 10/13/2013 - 07:23:46: [AMXX]    [0] informator.sma::Fwd_StartFrame (line 30)




#6 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.10.2013 13:27

show hudmessage edytuj tez. Popatrz jak to zrobil DarkGL.

%0.1f%%
  • +
  • -
  • 0

#7 .Etc

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:96
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Osterdam
Offline

Napisano 13.10.2013 13:41

Wciąż to samo, nawet jak usunąłem  to z ShowSyncHudMsg , więc to nie od tego



#8 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 14.10.2013 16:32

Pomyśl sobie co się dzieje, gdy gracz nie ma ani jednego killa? Przez co dzielisz? PRZEZ ZERO!!!

ratio = deads>0?float(kills / deads):kills>0?1.0:0.0;

 

Spróbuj takiego "mutanta".


  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#9 .Etc

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:96
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Osterdam
Offline

Napisano 14.10.2013 21:08


Pomyśl sobie co się dzieje, gdy gracz nie ma ani jednego killa?

:facepalm: :facepalm2:

Teraz nie ma błędów w konsoli ani logów , pozostałe wyniki są dobrze ale teraz cały czas jest     fragi: 0 zgony: 0 ratio: 0 :/

 

//

Edit:

 

Dałem zamiast kills / deads normalnie get_user_... i fragi / zgony czyta ale ratio dalej nie


Użytkownik kimiz edytował ten post 14.10.2013 21:18





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

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