Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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
CoD Nowy

[ROZWIĄZANE] Przelicznik Grawitacji

cod nowy

Najlepsza odpowiedź WeBsteR, 24.08.2015 14:54

Bardzo dziękuje Linuxowi za pomoc, jedyny jaki błąd miałem to zły przelicznik, aby Grawitacja działało prawidłowo wystarczy zmienić kod @up na taki:

public ZastosujAtrybuty(id)
{
    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;
    
    set_pev(id, pev_health, maksymalne_zdrowie_gracza[id]);
    
    wartosc_grawitacji_gracza[id] = 1.0-float(PobierzGrawitacje(id, 1, 1, 1))/125;
    set_user_gravity(id, wartosc_grawitacji_gracza[id]);
}

 

Zamiast 125 ustawiacie swój własny przelicznik. Aktualnie jest tak, ze 125 punktów to pełna grawitacja wiec przy większej ilości latasz w powietrzu bo po prostu masz mniejszą niż norma :P.

 

Wszystko działa już jak należy, problem rozwiązany, można zamknąć.

Przejdź do postu


  • Zamknięty Temat jest zamknięty
7 odpowiedzi w tym temacie

#1 WeBsteR

    Wszechwidzący

  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 17.08.2015 17:54

Witam, do swojego CodMod dodałem nową statystykę - Grawitacja z tego tematu:

   http://amxx.pl/topic...owe-statystyki/

 

Zrobiłem wszystko tak jak z tym temacie, tylko nie zmieniałem natywu w codmod.inc cod_register_class oraz nie dodawałem nic w funkcji ZarejestrujKlase bo nie chce zmieniać potem każdej klasy i kompilować na nowo (coś w tym stylu jak Obrażenia co DarkGL zrobił).

 

Niby nowa statystyka normalnie się pokazuje pod np. /staty oraz normalnie można dawać w nią punkty, lecz grawitacja się nie zmienia :( choćbym nawet dał w statystykach full grawitacji.

 

Na jakiej zasadzie działa cały ten przelicznik grawitacji?

public ZastosujAtrybuty(id)
{
    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;
    
    set_pev(id, pev_health, maksymalne_zdrowie_gracza[id]);
    
    wartosc_grawitacji_gracza[id] = float(PobierzGrawitacje(id, 1, 1, 1))/800
    floatclamp(wartosc_grawitacji_gracza[id], 0.0, 0.5)
    set_user_gravity(id, get_user_gravity(id)-wartosc_grawitacji_gracza[id]);
}

Użytkownik WeBsteR edytował ten post 17.08.2015 17:58

  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#2 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1662
Godlike

  • Postów:2495
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 17.08.2015 19:17

floatclamp(wartosc_grawitacji_gracza[id], 0.0, 0.5)

przy wartości 0.0 ustawi z powrotem Ci 1.0 ....

floatclamp(wartosc_grawitacji_gracza[id], 0.05, 0.55)

spróbuj tak


  • +
  • -
  • 1

#3 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 20.08.2015 16:42

floatclamp(wartosc_grawitacji_gracza[id], 0.0, 0.5)

przy wartości 0.0 ustawi z powrotem Ci 1.0 ....

floatclamp(wartosc_grawitacji_gracza[id], 0.05, 0.55)

spróbuj tak

 

Niestety :( dalej to samo.
 Może to bardziej opiszę. Mam w silniku 6 statystyk, 5 działają bardzo dobrze a ta 6 co ostatnio dodałem nie działa, znaczy punkty w statystyki mogę normalnie dodawać i normalnie się zapisują po zmianie mapki itd (co oznacza, że zapis nVault działa dobrze), jedynie co nie działa to ta grawitacja, dodaje w statystykę od grawitacji byle ile punktów ale i tak nic się nie dzieje, jaką grawitację miałem taką mam, nawet jeżeli dodam jej max. Limit statystyki Grawitacji (czyli ile mogę max dać w nią punktów) wynosi 50. Chciałbym również ustawić, że jak dam full punktów to grawitacja gracza zmieni się z 800 na 500. Ma ktoś jakąś propozycję jak to można naprawić?


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#4 Linux'

    Pan Pomocny

  • Power User

Reputacja: 488
Wszechobecny

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

Napisano 21.08.2015 09:52

Sprawdz w ten sposob

wartosc_grawitacji_gracza[id] = floatround(PobierzGrawitacje(id, 1, 1, 1)*0.01)
set_user_gravity(id, get_user_gravity(id)-wartosc_grawitacji_gracza[id]);

Powinno dzialac. 0.01 odpowiada za przelicznik, jak zbyt wysoko bedziesz skakac to zamien to na np 0.005 i tak dalej..


  • +
  • -
  • 2

Posiadam na sprzedaż w pełni odwzorowaną paczkę nowego coda do csgo. Kliknij by dowiedzieć się więcej!

 

- PISZE MODYFIKACJE.

- NAPRAWIAM POPSUTE PLUGINY.

- DZIALAM W DZIALACH AMXX/SOURCEMOD. MASZ ZLECENIE? PISZ.


#5 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 21.08.2015 10:42

Sprawdz w ten sposob

wartosc_grawitacji_gracza[id] = floatround(PobierzGrawitacje(id, 1, 1, 1)*0.01)
set_user_gravity(id, get_user_gravity(id)-wartosc_grawitacji_gracza[id]);

Powinno dzialac. 0.01 odpowiada za przelicznik, jak zbyt wysoko bedziesz skakac to zamien to na np 0.005 i tak dalej..

Podczas kompilacji wyskakują błędy:

warning 213: tag mismatch

Przez co dalej grawitacja nie działa.

Podałbym .sma silnika, lecz jest to silnik serwera, który ciągle jest full 32/32 i posiada kilka dodatkowych modyfikacji, przez co zbytnio nie chce, aby był rozpowszechniony, .sma mogę podać osobie na PW, która ma jakiś plan jak to naprawić.


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#6 Linux'

    Pan Pomocny

  • Power User

Reputacja: 488
Wszechobecny

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

Napisano 21.08.2015 11:00

 

Sprawdz w ten sposob

wartosc_grawitacji_gracza[id] = floatround(PobierzGrawitacje(id, 1, 1, 1)*0.01)
set_user_gravity(id, get_user_gravity(id)-wartosc_grawitacji_gracza[id]);

Powinno dzialac. 0.01 odpowiada za przelicznik, jak zbyt wysoko bedziesz skakac to zamien to na np 0.005 i tak dalej..

Podczas kompilacji wyskakują błędy:

warning 213: tag mismatch

Przez co dalej grawitacja nie działa.

Podałbym .sma silnika, lecz jest to silnik serwera, który ciągle jest full 32/32 i posiada kilka dodatkowych modyfikacji, przez co zbytnio nie chce, aby był rozpowszechniony, .sma mogę podać osobie na PW, która ma jakiś plan jak to naprawić.

 

 

Taki plan to ja mam zawsze hehe :P. Podaj na pw to ci to zrobie.


  • +
  • -
  • 1

Posiadam na sprzedaż w pełni odwzorowaną paczkę nowego coda do csgo. Kliknij by dowiedzieć się więcej!

 

- PISZE MODYFIKACJE.

- NAPRAWIAM POPSUTE PLUGINY.

- DZIALAM W DZIALACH AMXX/SOURCEMOD. MASZ ZLECENIE? PISZ.


#7 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 24.08.2015 14:54   Najlepsza odpowiedź

Bardzo dziękuje Linuxowi za pomoc, jedyny jaki błąd miałem to zły przelicznik, aby Grawitacja działało prawidłowo wystarczy zmienić kod @up na taki:

public ZastosujAtrybuty(id)
{
    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;
    
    set_pev(id, pev_health, maksymalne_zdrowie_gracza[id]);
    
    wartosc_grawitacji_gracza[id] = 1.0-float(PobierzGrawitacje(id, 1, 1, 1))/125;
    set_user_gravity(id, wartosc_grawitacji_gracza[id]);
}

 

Zamiast 125 ustawiacie swój własny przelicznik. Aktualnie jest tak, ze 125 punktów to pełna grawitacja wiec przy większej ilości latasz w powietrzu bo po prostu masz mniejszą niż norma :P.

 

Wszystko działa już jak należy, problem rozwiązany, można zamknąć.


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#8 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6033
Godlike

  • Postów:10831
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 25.08.2015 00:48

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0





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

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

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