Skocz do zawartości
Akuku5

[ROZWIĄZANY]Blokowanie strzelania z czołgu.

Rekomendowane odpowiedzi

Witam, mam problem z zablokowaniem strzelania z czołgu. Na pewno jest to możliwe, ponieważ widziałem to na jednym z serwerów. Macie może jakieś propozycje?

Edytowane przez Akuku5

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A jak to wygląda na "jednym z serwerów"? Osobiście nie mam pojęcia jak można to zablokować.

 

Edit: mam pewną teorię, ale musiałbym ją pierw sprawdzić.

Edytowane przez PaweL

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Po prostu, klikasz przycisk i pocisk nie wystrzelał tylko był taki dźwięk że brak pocisków. Było to na jednym z serwerów wojskowych, na którym było trzeba ładować pociski ponieważ jeżeli nie będziemy ich mieli wogóle to nie strzeli. Właśnie też nie mam pojęcia jak to zrobić, wydaje się łatwe ale jak, jaka definicja>.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

O to chodzi że to był samp. Na sto procent jestem pewny że to był zwykły model czołgu. ;)

 

PS: Zaraz zobacze czy freeze zadziała.

Edytowane przez Akuku5

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jest to nie możliwe. Jak mówiłem "było" czyli już serwer nie istnieje, ale jest na sto procent pewny że takie coś było. Jeżeli chodzi o Freeze to właśnie przed chwilką sprawdzałem i nic to nie daje. Zamraża gracza, ale pocisk wylatuje.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jest takie coś na "największym" Polskim serwerze DM (mają nawet własną hostownie)

Tam jest taka zabawa, jak /czołgi i jest coś takiego jak czas ładowania pocisku.

Trwa np. 1 minutę, a ty jak strzelisz z czołgu w czasie ładowania, to pocisk nie odniesie obrażeń.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W takim razie zakładam sprawdzanie w OnPlayerUpdate czy czołg wystrzelił (animacja? klawisze?) i zwrócenie 0 jeśli to zrobił.

 

Zwrócenie 0 w OnPlayerUpdate powoduje niezsynchronizowanie akcji z resztą graczy.

Edytowane przez PaweL

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A nie dało by rady jakoś zrobić że nie wystrzeli tego pocisku? Sam mówiłeś że OnPlayerWeaponShot nie działa w pojazdach. Przynajmniej w czołgach. ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie, że nie działa w pojazdach tylko nie działają niektóre akcje itp. myślałem, że do nich zaliczy się czołg, ale byłem w błędzie.

Co do twojego pytania to nie, nie da się zablokować wystrzalu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A dało by zablokować klawisz? Z tego co sprawdzałem to w czasie zamrożenia nie wystrzela, lecz wiadomo. Pocisk szybszy od onplayerupdate...

 

Nic nie zablokujesz, bo SA:MP nie oddziałuje na gracza do takiego stopnia. Innymi słowy w SA:MPie musiałyby być opcja tymczasowego unbindowania klawiszy lub coś w ten deseń.

 

Edit:

A wybuch da rade zablokować?

 

Blokada w OnPlayerUpdate wydaje się rozsądna, ale znowu trzeba by to jakoś zakodować, bo oprócz tego return 0; trzeba sprawdzić jakoś ten wystrzał...

Edytowane przez PaweL

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To jest takie proste ;f.

   if(IsPlayerInAnyVehicle(playerid) &&
        GetVehicleModel(GetPlayerVehicleID(playerid)) == 432)
    {
        new keys, void;
        GetPlayerKeys(playerid, keys, void, void);
 
        if(keys & KEY_FIRE || keys & KEY_ACTION)
            return 0;
    }
Edytowane przez alibabkebabi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 

To jest takie proste ;f.

   if(IsPlayerInAnyVehicle(playerid) &&
        GetVehicleModel(GetPlayerVehicleID(playerid)) == 432)
    {
        new keys, void;
        GetPlayerKeys(playerid, keys, void, void);
 
        if(keys & KEY_FIRE || keys & KEY_ACTION)
            return 0;
    }

Nie działa to coś, po za tym już robiłem coś podobnego więc odpada..

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Musi dzialac, pakiet nie zostaje wyslany, wiec nikt poza osoba siedzaca w czolgu nie widzi tego, ze nie doszlo do wystraszlu. Jezeli chcialbys blokowac nawet po stronie klienta to raczej bez pluginow sie nie obejdzie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Małe podsumowanie tego tematu:

 

1. W aktualnej wersji SA:MP'a (0.3z) nie można powstrzymać strzału z czołgu u strzelającego (jeśli można proszę o dowody w postaci filmu)

2. OnPlayerWeaponShot nie wykrywa strzałów z czołgów (sprawdziłem) i broni białej (na wiki sampa pisze też, że Heli-Kill również nie wykrywa)

3. Sposób @alibabkebabi jest jedynym sposobem na zatrzymanie wybuchu u reszty graczy, żeby go nie widzieli (czasem buguje się nawet bez strzału, prawdopodobnie przez dodatkowe wykrywanie KEY_ACTION)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×