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

[ROZWIĄZANE] Wykrycie strzału


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

#1 BoB0_

    Wszechpomocny

  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 07.06.2013 09:32

Witam.

 

Czy ta funkcja: cs_get_user_stationary ( index ) zwraca wartość gdy gracz strzela czy tylko gdy posiada broń stacjonarną i nie koniecznie z niej strzela. Jeżeli nie prosiłby o podpowiedź która z funkcji zwraca taką wartość. 

 

Dziękuję i pozdrawiam. 

 


  • +
  • -
  • 0

#2 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 07.06.2013 11:28

Z dokumentacji :  

Zwraca 1 jeżeli gracz korzysta z broni stacjonarnej, w przeciwnym wypadku 0.

 

 

 

 

Opisz dokładniej co chcesz zrobić. Chcesz złapać moment kiedy gracz strzeli? 


  • +
  • -
  • 0

#3 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 07.06.2013 11:35

Nie dokładnie. Chciałbym wykorzystać to do warunku, czyli: Jeżeli gracz strzela nie może czegoś zrobić. Np postawić apteczki. 


  • +
  • -
  • 0

#4 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 07.06.2013 11:45

pierwsze co mi przychodzi na myśl to coś w ten deseń

public funkcja_stawiania_apteczki(pewnie_id)
{
    if(get_user_buttons(pewnie_id) & IN_ATTACK)
    {
       //nie stawia bo strzela
    }
    else
    {
       //stawia bo nie strzela
    }
}

w funkcji do postawienia apteczki sprawdzasz czy trzyma IN_ATTACK (czyli klawisz strzelania ) pewnie nie jest to zbyt dobre rozwiązanie. 


  • +
  • -
  • 1

#5 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 07.06.2013 12:00

public cod_class_skill_used(id){
if (!ilosc_apteczek_gracza[id])
{
client_print(id, print_center, "Masz tylko 2 apteczki na runde!");
return PLUGIN_CONTINUE;
}


if (get_user_buttons(id) & IN_ATTACK)
{
client_print(id, print_center, "Przestan strzelac aby postawic apteczke!");
return PLUGIN_CONTINUE;
}


ilosc_apteczek_gracza[id]--;


new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);


new ent = create_entity("info_target");
entity_set_string(ent, EV_SZ_classname, "medkit");
entity_set_edict(ent, EV_ENT_owner, id);
entity_set_int(ent, EV_INT_solid, SOLID_NOT);
entity_set_vector(ent, EV_VEC_origin, origin);
entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);




entity_set_model(ent, "models/w_medkit.mdl");
set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 )  ;
drop_to_floor(ent);


entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);


return PLUGIN_CONTINUE;
}

Coś takiego mniej więcej czy może do innego publica? Zobaczę jak działa ten twój pomysł. Dodatkowo dlaczego uważasz że jest zły?


Użytkownik BoB0_ edytował ten post 07.06.2013 12:02

  • +
  • -
  • 0

#6 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 07.06.2013 12:17


Dodatkowo dlaczego uważasz że jest zły?

 

Dawno nie odpalałem amxxstudio , człowiek zapomina pewnych rzeczy. Pamiętam że z moich początków na Codzie (jeszcze starym) Zrobiłem coś na wzór tego co Ci podałem tylko nie pamiętam jak to działało a sprawdzić też nie mam jak zbytnie. Znając życie można to rozwiązać inaczej (może za pomocą Ham Sandwoch łapiąc moment ataku? )


  • +
  • -
  • 0

#7 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 07.06.2013 13:01

public cod_class_skill_used(id){
if (!ilosc_apteczek_gracza[id])
{
client_print(id, print_center, "Masz tylko 2 apteczki na runde!");
return PLUGIN_CONTINUE;
}
if(get_user_buttons(id) & IN_ATTACK)
    {
     client_print(id, print_center, "Nie mozesz postawic apteczki, ponieważ strzelasz!");
return PLUGIN_CONTINUE;
    }

if (get_user_buttons(id) & IN_ATTACK)
{
client_print(id, print_center, "Przestan strzelac aby postawic apteczke!");
return PLUGIN_CONTINUE;
}


ilosc_apteczek_gracza[id]--;


new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);


new ent = create_entity("info_target");
entity_set_string(ent, EV_SZ_classname, "medkit");
entity_set_edict(ent, EV_ENT_owner, id);
entity_set_int(ent, EV_INT_solid, SOLID_NOT);
entity_set_vector(ent, EV_VEC_origin, origin);
entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);




entity_set_model(ent, "models/w_medkit.mdl");
set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 )  ;
drop_to_floor(ent);


entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);


return PLUGIN_CONTINUE;
}
poskładane ^^

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#8 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 07.06.2013 13:45

Czy to:

if(get_user_buttons(id) & IN_ATTACK)
{
client_print(id, print_center, "Nie mozesz postawic apteczki, ponieważ strzelasz!");
return PLUGIN_CONTINUE;
}

i to:

if (get_user_buttons(id) & IN_ATTACK)
{
client_print(id, print_center, "Przestan strzelac aby postawic apteczke!");
return PLUGIN_CONTINUE;
}

to nie jest to samo?


  • +
  • -
  • 1

#9 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 07.06.2013 18:22

zastosuj wersje od Cheq, nie ma sensu sprawdzać prawie tego samego warunku dwa razy (użyj z else)

 

@GT Team niepotrzebnie sprawdzasz podobny warunek 2 razy, do tego tylko w jednym powinieneś coś zwracać (w tym co jest że aktualnie strzela), gdyż kod za if'ami się nigdy nie wykona.


  • +
  • -
  • 1

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#10 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 07.06.2013 22:07

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_G))
{
client_print(id, print_chat, "[Medyk+] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ColorChat(id, GREEN, "Klasa stworzona przez www.***");
ilosc_apteczek_gracza[id] = 2;
ma_klase[id] = true
}


public cod_class_disabled(id)
{
ma_klase[id] = false
}


public cod_class_skill_used(id)
{
if (!ilosc_apteczek_gracza[id])
{
client_print(id, print_center, "Masz tylko 2 apteczki na runde!");
return PLUGIN_CONTINUE;
}


else if (get_user_buttons(id) & IN_ATTACK)
{
client_print(id, print_center, "Przestan strzelac aby postawic apteczke!");
return PLUGIN_CONTINUE;
}


else
{


ilosc_apteczek_gracza[id]--;


new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);


new ent = create_entity("info_target");
entity_set_string(ent, EV_SZ_classname, "medkit");
entity_set_edict(ent, EV_ENT_owner, id);
entity_set_int(ent, EV_INT_solid, SOLID_NOT);
entity_set_vector(ent, EV_VEC_origin, origin);
entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);




entity_set_model(ent, "models/w_medkit.mdl");
set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 )  ;
drop_to_floor(ent);


entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);


return PLUGIN_CONTINUE;
}
}

 
Coś takiego, bo nie wiem czy dobrze zrozumiałem?


  • +
  • -
  • 0

#11 BoB0_

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 08.06.2013 13:12

public cod_class_skill_used(id)
{
if (!ilosc_apteczek_gracza[id])
{
client_print(id, print_center, "Masz tylko 2 apteczki na runde!");
return PLUGIN_CONTINUE;
}


if (get_user_button(id) & IN_ATTACK)
{
client_print(id, print_center, "Przestan strzelac aby postawic apteczke!");
return PLUGIN_CONTINUE;
}


else


ilosc_apteczek_gracza[id]--;


new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);


new ent = create_entity("info_target");
entity_set_string(ent, EV_SZ_classname, "medkit");
entity_set_edict(ent, EV_ENT_owner, id);
entity_set_int(ent, EV_INT_solid, SOLID_NOT);
entity_set_vector(ent, EV_VEC_origin, origin);
entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);




entity_set_model(ent, "models/w_medkit.mdl");
set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 )  ;
drop_to_floor(ent);


entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);


return PLUGIN_CONTINUE;
}

W ten sposób wszystko działa .

 


  • +
  • -
  • 0

#12 Kawon

    Godlike

  • Przyjaciel

Reputacja: 887
Czempion

  • Postów:5 165
  • Steam:steam
  • Imię:Paweł
  • Lokalizacja:Dzierzgoń
Offline

Napisano 08.06.2013 15:36

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

DarkGL to mój autorytet.





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

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