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

Zablokowanie strzału


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

#1 A może sma?

    Godlike

  • Power User

Reputacja: 546
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 15.08.2011 21:32

Cześć.
Jak mogę zablokować strzelanie (tak by w ogóle nie można było strzelić) po spełnieniu określonego warunku?
Chcę przechwycić wciśnięcie LPM i w case 1 i 2 zablokować strzał. Funkcja, którą stosuję wygląda tak:
public fwd_CmdStart(id, uc_handle, seed)
{
if(!is_user_connected(id) || !is_user_alive(id))
{
return FMRES_IGNORED;
}
if(!is_user_alive(id))
{
return FMRES_IGNORED;
}
if(!ma_klase[id])
{
return FMRES_IGNORED;
}

new buttons = get_uc(uc_handle, UC_Buttons)
new oldbuttons = get_user_oldbutton(id);

if((buttons & IN_ATTACK) || !(oldbuttons & IN_ATTACK))
{
return FMRES_IGNORED;
}
switch(tryb[id])
{
case 0:
{
return FMRES_IGNORED; // normalnie strzela
}
case 1:
{
Funkcja1(id); // strzal ma byc zablokowany
}
case 2:
{
Funkcja2(id); // strzal ma byc zablokowany
}
}
return PLUGIN_CONTINUE;
}

  • +
  • -
  • 0

#2 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 15.08.2011 21:36

Spróbuj

set_uc( uc_handle, ~IN_ATTACK );
return FMRES_SUPERCEDE;

Jak nie to w clientdata można też ustawić zablokowanie strzelania.



Nie pomagam na PW, tylko na forum.


#3 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 546
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 15.08.2011 21:41

Ale, w które miejsce w kodzie tym co podałem mam to wrzucić? Jeżeli zrobię to tak:
[...]
switch(tryb[id])
{
case 0:
{
return FMRES_IGNORED;
}
case 1:
{
PostawWorek(id);
set_uc(uc_handle, ~IN_ATTACK ); // warning
return FMRES_SUPERCEDE;
}
case 2:
{
UsunWorek(id);
set_uc(uc_handle, ~IN_ATTACK ); // warning
return FMRES_SUPERCEDE;
}
}
[...]

To wywala miszmasze w zaznaczonych linijkach
  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 15.08.2011 21:42

nie
set_uc( uc_handle, ~IN_ATTACK );
tylko
set_uc( uc_handle, buttons & ~IN_ATTACK );
dodaj to przed ostatnim return PLUGIN_CONTINUE;


+
Method 2 - Modify the time until the next attack:
z tego tematu
Blocking weapon fire, including client-side sounds/animations - AlliedModders
  • +
  • -
  • 1

#5 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 15.08.2011 21:42

To może napisz jakie warningi? Ja pamiętam że używałem tego do czegoś i działało.




#edit

DarkGL - fakt, pomyliłem się ale pisałem to z pamięci więc wybaczcie ; P


Użytkownik Dawedov edytował ten post 15.08.2011 21:46

Nie pomagam na PW, tylko na forum.


#6 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 546
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 15.08.2011 21:47

Przecież napisałem, że mismatch :]
Dzięki Dark

Edit:
Yyy... Daaaark... Zrobiłem tak jak pisałeś i...:

D:\Gry\Counter Strike\Programy\Studia\PAWN Studio 0.8.3\temp217.sma(144) : warning 213: tag mismatch
D:\Gry\Counter Strike\Programy\Studia\PAWN Studio 0.8.3\temp217.sma(150) : warning 213: tag mismatch

Kurde, ile ja problemów Wam dziś robie xD

Użytkownik A może sma? edytował ten post 15.08.2011 21:54

  • +
  • -
  • 0

#7 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 15.08.2011 22:02

set_uc( uc_handle, UC_Buttons, buttons & ~IN_ATTACK );

  • +
  • -
  • 1

#8 A może sma?

    Godlike

  • Autor tematu
  • Power User

Reputacja: 546
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 15.08.2011 22:28

Kurde...

Zrobiłem to co pisałeś.
Kod:
Spoiler

I gdy chce przełączyć tryb na stawianie bądź usuwanie, od razu tryb przełącza się na strzelanie... Dlaczego?
Edit: JEST! :D Działa :D Zmieniłem return FMRES_SUPERCEDE; na return FMRES_HANDLED; i zadziałało - nie ma animacji, nie ma odrzutu, nie zabiera naboju, a funkcja jest poprawnie wykonywana :D

Użytkownik A może sma? edytował ten post 15.08.2011 22:50

  • +
  • -
  • 0




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

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