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

Zatrzymanie graczaZatrzymanie gracza w jednym miejscu


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

#1 kyriuch

    Zaawansowany

  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 04.01.2013 18:49

Witam, mam problem. Potrzebuję zatrzymać gracza w jednym miejscu, podczas gdy jest on rozpędzony. Nie chce go wsadzać w ziemię, ponieważ wtedy jest taki dziwny efekt skrzywienia/latania. Nie chcę również ustawić mu flagi FL_FROZEN ponieważ wtedy też jest dziwny efekt. Chcę po prostu aby został zatrzymany w miejscu, w czasie dotyku pewnego bytu. Potrzebuję tylko zatrzymania, ponieważ dotyk mam już zarejestrowany. Proszę, pomóżcie!
  • +
  • -
  • 0

#2 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 04.01.2013 18:57

http://amxx.pl/dokum...t_user_maxspeed
+ wywołuj to wtedy kiedy chcesz go zatrzymać i w event CurWeapon
  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#3 kyriuch

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 04.01.2013 19:01

Tylko widzisz, prędkość się ustawi maksymalna, ale i tak muszę czekać, aż się zatrzyma, dodatkowo jeśli przyduckuje, to poleci dalej :) Umiem już trochę i wpadłem na to ^^
  • +
  • -
  • 0

#4 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 04.01.2013 22:58

Tylko widzisz, prędkość się ustawi maksymalna, ale i tak muszę czekać, aż się zatrzyma

Nje, skoro gościu przekracza prędkość to go zatrzyma, chyba, że jest w powietrzu.
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#5 kyriuch

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 05.01.2013 12:39

Ustawiam maxspeed w chwili zetknięcia gracza z ziemią, a i tak go nie zatrzymuje :)
  • +
  • -
  • 0

#6 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 05.01.2013 12:48

Na graczu wykonaj
entity_set_vector(id, EV_VEC_velocity, Float:{0.0,0.0,0.0});

  • +
  • -
  • 0

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


#7 kyriuch

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 05.01.2013 16:42

Nie pomaga :/
  • +
  • -
  • 0

#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 05.01.2013 16:49

To widocznie źle coś robisz, to co ja podałem, zatrzymuje gracza na chwilę i po tym wystarczy mu ustawić prędkość na 0.00001 i na pewno nie będzie mógł chodzić oraz zatrzyma się od razu.
  • +
  • -
  • 0

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


#9 kyriuch

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 05.01.2013 17:17

entity_set_vector(id,EV_VEC_velocity,Float:{0.0,0.0,0.0})
fm_set_user_maxspeed(id,0.00001)


Nie zatrzymuje, uwierz mi, zwłaszcza jak przyduckuje.
  • +
  • -
  • 0

#10 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 07.01.2013 07:15

http://amxx.pl/dokum...t_user_maxspeed
+ wywołuj to wtedy kiedy chcesz go zatrzymać i w event CurWeapon

nie CurWeapon, a Ham_Item_PreFrame. CurWeapon nie służy zmiany prędkości na graczu i NIE DZIAŁA POPRAWNIE!

Chcąc zatrzymać gracza w miejscu, zmień jego prędkość na 0.1, używając funowskiego set_user_maxspeed.
Do tego warto graczowi wyzerować wektor ruchu, o czym napisał sebul.
sebul (07.01.2013 15:23):
"nie CurWeapon, a Ham_Item_PreFrame. CurWeapon nie służy zmiany prędkości na graczu i NIE DZIAŁA POPRAWNIE!"
Co masz na myśli pisząc, że nie działa poprawnie?
(07.01.2013 17:29):
Nie zawsze zmienia prędkość gracza, gdyż CurWeapon nie pokrywa się ze zmianą prędkości,
a więc nie działa poprawnie, chociażby po spawnie, czy odebraniu broni graczowi.
I nie mam tutaj na myśli beznadziejnego remove_user_weapons.
(07.01.2013 17:31):
Ten temat był nieraz wałkowany na AM,
u nas niestety, dalej powielane jest błędne
rozwiązanie z CurWeapon a potem pojawiają się
tematy, że gracze biegają już podczas FreezeTime`u.
sebul (07.01.2013 17:40):
"a potem pojawiają się tematy, że gracze biegają już podczas FreezeTime`u."
Ja tam nigdy z tym problemu nie mam, do tego wiadomo, że to się nie pokrywa ze zmianą prędkości, ale to nie oznacza, że nie działa poprawnie, bo u mnie nigdy tego problemu nie było, wszystko zależy od "kodera".
sebul (07.01.2013 17:45):
Oczywiście nie mam tutaj na myśli, że "CurWeapon" to najlepszy sposób na zmienianie prędkości, ale na pewno przy dobrym użyciu nie ma żadnych problemów, prócz może tego, że jak graczowi zabierze się broń, to jego prędkość zaktualizuje się po jakimś czasie.
(08.01.2013 02:22):
CurWeapon z odpowiednim WorkAroundem nie będzie stanowić problemu, ale pojawi się sporo dodatkowego kodu + niepotrzebne resetowanie prędkości gracza m.in. podczas strzału, czy przeładowania broni.

Mimo to, jak właśnie napisałeś, zabranie broni graczowi może zaktualizować prędkość z opóźnieniem, co, jak dla mnie, całkowicie eliminuje metodę CurWeapon jako skuteczną, ale wszystko zależy od programisty oraz zastosowania. Mimo wszystko, polecam rozwiązaniem z Ham_Player_ResetMaxSpeed


#11 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 07.01.2013 15:45

Hmm... moze tak ?

#include < amxmodx >
#include < fakemeta >

new bool:gbisFrozen[ 33 ] = { false };

public plugin_init()
{
register_forward( FM_SetClientMaxspeed, "fwSetClientMaxspeed" );

register_clcmd( "say /test", "cmdIWannaToTestIt" )
}

public client_connect( id )
gbisFrozen[ id ] = false;

public cmdIWannaToTestIt( id )
{
engfunc( EngFunc_SetClientMaxspeed, id, 0.00001 ); // Nie wiem czy to w ogole potrzebne = D
gbisFrozen[ id ] = ! gbisFrozen[ id ];
}

public fwSetClientMaxspeed( id, Float: fMaxspeed )
{
if( gbisFrozen[ id ] )
{
fMaxspeed = 0.00001;
return FMRES_HANDLED;
}

return FMRES_IGNORED ;
}

  • +
  • -
  • 0

marwit-0.png


#12 kyriuch

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 07.01.2013 19:36

my god, MarWit to co napisałeś, to weź to przeczytaj jeszcze raz, przecież co da

fMaxpseed = 0.00001

w forwardzie? nic, co do reszty, to benio, set_user_maxspeed na 0.1 i vector na 0 0 0 owszem, zatrzymuje gracza, ale zrozumcie, że ja to robię w chwili zetknięcia z entem podłogi, kiedy to gracz jest znacznie rozpędzony, przez co jeśli sobie przyduckuje, to zatrzyma go dopiero wtedy kiedy straci prędkość :/

Użytkownik kyriuch edytował ten post 07.01.2013 19:37

  • +
  • -
  • 0

#13 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 07.01.2013 20:13

<br />my god, MarWit to co napisałeś, to weź to przeczytaj jeszcze raz, przecież co da<br />fMaxpseed = 0.00001<br />w forwardzie? nic<br />


Czysty błąd w doborze funkcji ( nie wspominając o tym że sam forward nie działa jak należy o czym było wspominane m.in. na AM ). Masz zatem jeszcze możliwość zmiany pev_movetype na NONE ( chodz nie mam pojęcia czy to zadziała ), bądź ew. zmianę prędkości przy animacji modelu chodu. Możesz także w ogóle zablokować klawisze chodu, bądź po prostu zablokować zmianę origin.

Użytkownik MarWit edytował ten post 07.01.2013 20:13

  • +
  • -
  • 0

marwit-0.png





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

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