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

Plugin pokazujący odległość strzału który nas zabił


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

#1 Jooe

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:42
  • Lokalizacja:Rzeszów
Offline

Napisano 12.01.2015 19:50

Jak w temacie, gdzzieś na polskim serwerze widziałem taki. Ma ktoś? :)


  • +
  • -
  • 0

#2 psilocybe

    Toasty!

  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 12.01.2015 20:01

W statsx jest coś takiego, z menu admina wejdź w konfirugracje Statystyk i poszukaj ;)


  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#3 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 12.01.2015 20:55

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <engine>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Wielkie Jol"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("DeathMsg", "DeathMsg", "a")
}

public DeathMsg(){
	new killer = read_data(1);
	new victim = read_data(2);
	new Float:Distance;
	if(!is_user_connected(killer) || killer == victim || !is_user_connected(victim))
		return PLUGIN_CONTINUE
		
	Distance = entity_range(killer, victim)
	client_print(victim, 3, "Dystans z ktorego Cie zabito to %.2f unitow", Distance)
	return PLUGIN_CONTINUE
}

Użytkownik Wielkie Jol edytował ten post 12.01.2015 20:59

  • +
  • -
  • 1

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#4 patryQ1997

    Profesjonalista

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:204
  • GG:
  • Imię:Patryk
  • Lokalizacja:Czeladź
Offline

Napisano 12.01.2015 21:00

Może o to chodziło? http://amxx.pl/topic...info-beams-iii/


  • +
  • -
  • 0

#5 Jooe

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:42
  • Lokalizacja:Rzeszów
Offline

Napisano 12.01.2015 23:21

@Wielkie Joł

 

Pięknie działa :) ale ja chciałbym wyświetlanie w HUD, da się? :D i w metrach :D


Użytkownik Jooe edytował ten post 12.01.2015 23:25

  • +
  • -
  • 0

#6 NieWiemMamMac@

    Wszechwidzący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:289
  • Imię:Kamil
  • Lokalizacja:Lokalizacja
Offline

Napisano 12.01.2015 23:30

@Wielkie Joł

 

Pięknie działa :) ale ja chciałbym wyświetlanie w HUD, da się? :D i w metrach :D

client_print(victim, 3, "Dystans z ktorego Cie zabito to %.2f unitow", Distance)

na:

set_hudmessage(255, 0, 0, 0.11, 0.82, 0, 6.0, 5.0)
show_hudmessage(victim, "Dystans z ktorego Cie zabito to %.2f unitow", Distance)

  • +
  • -
  • 1

Pomagam z klasami/perkami/silnikiem COD

Kontakt:

[email protected]

PW

 


#7 Jooe

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:42
  • Lokalizacja:Rzeszów
Offline

Napisano 12.01.2015 23:54

Również działa ładnie, tylko jeszcze w metrach żeby było. Bo ta jednostka jest zbyt wysoka, z bliskiej odległości pokazuje po 210

 

EDIT: a jednak wiadomość w hud nie działa, z czymś innym i się pomyliło


Użytkownik Jooe edytował ten post 13.01.2015 00:15

  • +
  • -
  • 0

#8 psilocybe

    Toasty!

  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 13.01.2015 00:49

Ostatni parametr to kanał hud (-1 auto), możliwe że inne hud nadpisują wiadomość więc zamień set_hudmessage na ten:

set_hudmessage (255, 000, 000, -1.0, 0.25, 2, 0.02, 4.0, 0.01, 0.1, -1)

Co do jednostek to wysokość modelu gracza:

 

 

78 units = 78 inches = (2,54 x 78 =) 198,12cm

 

Przyjęto że 1 game unit to 1 cal czyli (Distance * 2.54) * 0.01 da Ci wynik w metrach, trzeba matematyki by pokazać metry dlatego już mnie tu nie ma :D


Użytkownik psilocybe edytował ten post 13.01.2015 00:50

  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#9 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 13.01.2015 07:15

Zamień

set_hudmessage(255, 0, 0, 0.11, 0.82, 0, 6.0, 5.0)
show_hudmessage(victim, "Dystans z ktorego Cie zabito to %.2f unitow", Distance)

na

set_hudmessage(255, 0, 0, 0.11, 0.82, 0, 6.0, 5.0)
show_hudmessage(victim, "Dystans z ktorego Cie zabito to %.2f unitow", Distance/39.37)

@psilocybe

Wystarczy prosta proporcja.  

Skoro 78 unitów to 198,12 cm

to ile unitów to będzie 100cm(1m)?

 

(78*100cm)/198,12cm = ~39,37

 

Więc by teraz uzyskać jednostkę w metrach, to najzwyczajniej dzielimy ilość unitów, jakie nas dzieli od zabójcy przez 39,37.


  • +
  • -
  • 1

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#10 psilocybe

    Toasty!

  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 13.01.2015 09:17

No tak, wychodzi na to że mała skrzynka(32x32) ma około 81cm, jest to realne jak na silnik GoldSource.

 

Teraz jako member Support Teamu Wielkie Jol powinieneś wytłumaczyć nam jak za pomocą funkcji format, pokazać "Dystans z którego Cie zabito to X metrów XX centymetrów" :D

 

Może się przydać bo przykład jest dobry, a wyczerpiemy temat do zera, może ktoś będzie chciał tak pokazać odległość? Osobiście wybrał bym opcję zaokrąglenia tego do pełnych metrów funkcją floatround, lub ewentualnie jedno miejsce po przecinku czyli %.1f


Użytkownik psilocybe edytował ten post 13.01.2015 09:17

  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#11 wiwi249

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:440
  • GG:
  • Imię:Wiktor
  • Lokalizacja:Tarnobrzeg
Offline

Napisano 13.01.2015 09:40

Teraz jako member Support Teamu Wielkie Jol powinieneś wytłumaczyć nam jak za pomocą funkcji format, pokazać "Dystans z którego Cie zabito to X metrów XX centymetrów" :D

To akurat najprostsza rzecz jaka została :D

static HUD[64];
formatex(HUD, charsmax(HUD), "Dystans z ktorego Cie zabito to %.2f metrow", Distance/39.37)
set_hudmessage(255, 0, 0, 0.11, 0.82, 0, 6.0, 5.0)
show_hudmessage(victim, HUD)

Przyjęto że 1 game unit to 1 cal czyli (Distance * 2.54) * 0.01 da Ci wynik w metrach, trzeba matematyki by pokazać metry dlatego już mnie tu nie ma :D

Gdzie byłeś jak o to pytałem? Kiedyś wrzucałem pytanie o unity w grze na forum i nikt nie umiał mi pomóc. dziękuję <3 Przynajmniej teraz wiem, że w tej mojej SR-25 co zrobiłem i widnieje w dziale Offtopic dałem ponad 2,5 razy za małą prędkośc wylotową xD


  • +
  • -
  • 0

Wykonuję strony internetowe, zlecenia AMXX i HLDS - w tym pisanie pluginów, ogarnianie serwerów, edycja i tworzenie modeli.

Potrzebujesz czegoś? Pisz!

 

"śpieszmy się pisać posty, tak szybko banują..." ~ sebul


#12 psilocybe

    Toasty!

  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 13.01.2015 09:56


To akurat najprostsza rzecz jaka została :D

 

Nie widzę żebyś rozbił to na metry i centymetry, mi chodzi o to jak zastosować tu funkcję format np.:

// Przykład formatowania czasu (prosta zamiana sekund na mm:ss)

new iSekundy = 75;
format(szText, 127, "%02d:%02d", iSekundy/60, iSekundy%60); // 01:15

Zastosować to tak, by zamiast "10.85 metrów" wyświetlić "10 metrów 85 centymetrów" :D


  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#13 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 13.01.2015 17:14

No tak, wychodzi na to że mała skrzynka(32x32) ma około 81cm, jest to realne jak na silnik GoldSource.

 

Teraz jako member Support Teamu Wielkie Jol powinieneś wytłumaczyć nam jak za pomocą funkcji format, pokazać "Dystans z którego Cie zabito to X metrów XX centymetrów" :D

 

Może się przydać bo przykład jest dobry, a wyczerpiemy temat do zera, może ktoś będzie chciał tak pokazać odległość? Osobiście wybrał bym opcję zaokrąglenia tego do pełnych metrów funkcją floatround, lub ewentualnie jedno miejsce po przecinku czyli %.1f

To żeś mnie wkopał w robotę xD, nie jest jakoś doskonale wytłumaczone, bo tłumaczyć za bardzo nie umiem, ale jeżeli chociaż trochę ogarniasz matematykę, powinieneś wiedzieć co tam jest napisane. Testowane, zwraca realne wyniki.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <engine>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Wielkie Jol"


#define UnitsPerMeter 39.37

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("DeathMsg", "DeathMsg", "a")
}

public DeathMsg(){
	new killer = read_data(1);
	new victim = read_data(2);
	new Float:Distance;
	if(!is_user_connected(killer) || killer == victim || !is_user_connected(victim))
		return PLUGIN_CONTINUE
	new gMeters, gCentimeters;
	Distance = entity_range(killer, victim)/UnitsPerMeter // pobieramy odlegosc miedzy zabojca a ofiara, dzielimy od razu, by miec metry
	gMeters = floatround(Distance, floatround_floor) // przy metrach zaokraglamy w dol co wazne, bedziemy wtedy wiedzieli ile metrow mamy, no bo przeciez nie mozemy zaokraglic do gory, bo przy 1.6 metrze pokaze nam dwa
	gCentimeters = floatround((Distance - gMeters)*100, floatround_round); // Odejmujemy od naszej 'glownej wartosci' ktora liczylismy na poczatku ilosc metrow jaka sobie przed momentem policzylismy.
	//najpierw mnozymy wynik przez 100, bo przeciez nam bedzie zaokraglalo np. liczbe 0.71, a nam chodzi o centymetry, nie o metry
	//0.71m = 71cm czyli oczywiscie mnozymy przez 100 ( nie tlumacze jakos super, no ale mam nadzieje ze wiadomo o co chodzi xD )
	//zaokraglamy ta liczbe, bo inaczej bedziemy mieli np. 71.4cm, nie chodzi nam chyba o to, prawda?
	client_print(victim, 3, "Dystans z ktorego Cie zabito to %d Metrow %d Centymetrow", gMeters, gCentimeters)
	// wuala wyswietlamy dystans.
	
	return PLUGIN_CONTINUE
}

Wielkie Jol (13.01.2015 17:16):
zaraz pewnie wyskoczy jakiś RGB albo grankee ze swoim rozwiązaniem xD, ograniczającym się do dwóch linijek, no ale ja takim matematycznym podejściem to zrobiłem - taki mi pomysł wpadł do głowy.

Jeżeli czegoś nie rozumiecie z tego mojego bełkotu xD, to postaram się wytłumaczyć
Wielkie Jol (13.01.2015 17:17):
a i prefix dałem zmiennym g, że niby są globalne, ale w rzeczywistości są lokalne, także proszę mnie nie ganić za to, już nie chce mi się poprawiać :P

  • +
  • -
  • 2

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.





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

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