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

Mocne trzęsienie ekranem - jak to ustawić?


Najlepsza odpowiedź sebul, 03.08.2015 14:18

Jak masz tą funkcję ode mnie to ampli daj większą, dur mniej więcej takie samo jak ampli albo i na max short, a freq możesz dawać nawet poniżej 1. Przejdź do postu


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

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 03.08.2015 10:19

Witam,

	message_begin(MSG_ALL, get_user_msgid("ScreenShake"));
	write_short((1<<12) * 70)
	write_short((1<<12) * 4)
	write_short((1<<12) * 5) 
	message_end();

Jak to ustawić, żeby tym ekranem tak mocno trzęsło? Od czego to zależy, jak wpływa jeden parametr na reszte? Zmieniam te wartości i kiedy już się wydaje dobrze, zmniejszam drugą a tu d*p, słabo trzęsie. Jak to ustawić?


  • +
  • -
  • 0

#2 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 03.08.2015 10:23

https://wiki.alliedm...nts#ScreenShake

 

Naprawdę to jest dla Ciebie niejasne? :P


  • +
  • -
  • 0

#3 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 03.08.2015 10:31

Tak, gdyby było jasne to bym nie pisał,

 

Amplituda, czas, częstotliwość, ale jak sprawić, żeby to naprawdę mocne było i trwało 10s?


  • +
  • -
  • 0

#4 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 03.08.2015 11:04

No to musisz się pobawić, amplituda powinna być mała bo to czas jednego drgnięcia, a częstotliwość i czas dość duże.

    message_begin(MSG_ALL, get_user_msgid("ScreenShake"));
    write_short((1<<12) * 2)
    write_short((1<<12) * 10)
    write_short((1<<12) * 20)
    message_end();

Spróbuj tak.


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.08.2015 12:19

#define bitfloatvalue(%1) floatround((%1)*(1<<12))

public TrzesEkranem(id, Float:ampli, Float:dur, Float:freq) {
	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), _, id);
	write_short(bitfloatvalue(ampli));
	write_short(bitfloatvalue(dur));
	write_short(bitfloatvalue(freq));
	message_end();
}
Z tym będziesz mieć trochę łatwiej, bo można dawać mniejsze wartości bez wnikania jak je zapisać, a z doświadczenia wiem, że (1<<12) * 1 nie wystarcza i pamiętaj także o ograniczeniach jakie są przy wartości short.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 03.08.2015 12:58

10 sekund to nie będzie trwało, w shorcie możesz zapisać maksymalnie 15 bitów (short ma 16 bitów, ale 1 jest zarezerwowany na znak). Maksymalnie więc możesz w parametrze umieścić 32767 tych śmiesznych unitów, co daje ciut mniej niż 8 sekund (czyli (1<<12) * 8 już jest za dużo, ale (1<<12) * 8 - 1 się jeszcze zmieści).

 

Co się stanie gdy spróbujesz ustalić 10 sekund? Ano zmienna się przekręci i wyjdzie Ci z tego coś ujemnego, jak to potraktuje HLDS? Nie wiem... Ale to:

write_short((1<<12) * 70)

już jest o wiele więcej niż w shorcie można schować i skurczy się do 6 sekund.

 

Chcesz "wygodnie" obliczyć ile Ci się zmieści, ile sekund jaka wartość da itp? Otwórz windowsowy kalkulator i przełącz go na tryb programisty (jeśli masz jeszcze windowsa XP to niestety tego trybu może nie być), masz tam mnożenie, dzielenie, przesunięcia bitowe itp. Dodatkowo zawsze jest wizualizacja w bitach :) Teraz każda zmienna, która Ci wyjdzie poza 32 bit, zostanie do 32 bitów ucięta, możesz sobie więc w prosty sposób sprawdzić jaki efekt da np (1<<12) * 144 (podpowiedź: da zero).

 

 


  • +
  • -
  • 2

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


#7 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 03.08.2015 14:00

dzięki wielkie, czas już wiem jak ustalić, ale co z amplitudą i częstotliwością?

Jakie wartości dadzą najlepszy efekt
  • +
  • -
  • 0

#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.08.2015 14:18   Najlepsza odpowiedź

Jak masz tą funkcję ode mnie to ampli daj większą, dur mniej więcej takie samo jak ampli albo i na max short, a freq możesz dawać nawet poniżej 1.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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