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] Jak wyrzucić broń graczowi?


Najlepsza odpowiedź sebul , 22.08.2014 10:22

Ale skoro wiadomość na czacie się pokazuje poprawnie to czemu nie wyrzuca?
 
W innym pluginie mam dropanie broni, ale tak:

engclient_cmd(this, "drop", weapon); //weapon nazwa bronie weapon_*
I to działa.

Bo tak właśnie trzeba robić, musisz podawać nazwę broni w trzecim parametrze. Przejdź do postu


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

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 18.08.2014 10:41

Witam.

Jak wyrzucić broń graczowi, ale nie przez (eng)client_cmd.


  • +
  • -
  • 0

#2 sNH.

    Czy MisieQ ukradł ciasteczko?

  • Power User

Reputacja: 299
Wszechwidzący

  • Postów:1 070
  • Steam:steam
  • Imię:Bartek
  • Lokalizacja:Ełk
Offline

Napisano 18.08.2014 11:34

Pamiętam, że coś takiego było i bawiłem się z tym. Niestety nie miałem długo do czynienia z dokumentacją, ale mogę ci powiedzieć, że to było bardzo słabe rozwiązanie, w moim przypadku crashowało serwer. Poprzeglądaj dokumentację i forum. Znajdziesz coś, ale wg mnie to jest najlepsza i najprostsza opcja.


  • +
  • -
  • 0

#3 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 18.08.2014 14:24

 

 

ale nie przez (eng)client_cmd.

Czemu? Użycie engclient_cmd to jedyna słuszna droga.


Użytkownik Puchate edytował ten post 18.08.2014 14:26

  • +
  • -
  • 0

#4 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 18.08.2014 16:30

a ham item drop?
  • +
  • -
  • 0

#5 szelbi

    Hero

  • Power User

Reputacja: 373
Wszechpomocny

  • Postów:1 032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 18.08.2014 16:36

To spróbuj coś z tym zrobić, bo ja nie mam pojęcia co tam trzeba wpisać ;) Próbowałem i ID entu nie działa, CSW_* nie działa, weapon_* też nie działa xD


  • +
  • -
  • 0

#6 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 18.08.2014 18:22

Powiedz lepiej w jakim celu tak bezsensownie kombinujesz.


  • +
  • -
  • 3

#7 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 18.08.2014 20:39

Chce wiedziec.
Albo mam wadliwy kod albo to nie dziala na niektorych klientach. Paru gosci jest "odpornych" na wyrzucenie.

Co z Ham_Item_Drop ?
  • +
  • -
  • 0

#8 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 19.08.2014 12:07

 

 

Paru gosci jest "odpornych" na wyrzucenie.

Drop to jest komenda engine gry, nie DLL'ki klienta więc ciężko mi uwierzyć w tą odporność.

 

O ile przez client_cmd komende "drop" można łatwo zablokować dodatkami, o tyle engclient_cmd powinno działać zawsze bez problemu BO NIE WYKONUJE SIE ONA U GRACZA.


Użytkownik Puchate edytował ten post 19.08.2014 12:07

  • +
  • -
  • 1

#9 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 19.08.2014 12:25

Dobra. Moze jakis warunek jest zly. Sprawdze i dam znac.

A co z Ham_item_drop?
Jak tego uzyc?
  • +
  • -
  • 0

#10 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 22.08.2014 06:33

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
            return HAM_IGNORED;

	if(!ma_klase[idattacker])
            return HAM_IGNORED;
            
      if(!random(6))
      {
            client_print(0, 3, "powinno dropac")
		engclient_cmd(this, "drop");
      }
	
	if(get_user_weapon(idattacker) == CSW_USP && damagebits & DMG_BULLET)
	{
            SetHamParamFloat(4, damage+0.2*cod_get_user_intelligence(idattacker, 1, 1, 1))
            return HAM_HANDLED
      }

	return HAM_IGNORED;
}

To dlaczego nie działa ten kod? Dlatego że jest pre? Wiadomość na czacie się pokazuje, ale broni nie wyrzuca.


  • +
  • -
  • 0

#11 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
Online

Napisano 22.08.2014 06:40

a testowo sprawdzałeś czy samo 


            client_print(0, 3, "powinno dropac")
		engclient_cmd(this, "drop");

bez randoma działa? Random jest zły i przebiegły , potrafi 7 lat losować liczbę nie taką jaką byśmy chcieli. 


  • +
  • -
  • 0

#12 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 22.08.2014 06:57

Ale skoro wiadomość na czacie się pokazuje poprawnie to czemu nie wyrzuca?

 

W innym pluginie mam dropanie broni, ale tak:

engclient_cmd(this, "drop", weapon); //weapon nazwa bronie weapon_*

I to działa.


  • +
  • -
  • 0

#13 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 22.08.2014 10:22   Najlepsza odpowiedź

Ale skoro wiadomość na czacie się pokazuje poprawnie to czemu nie wyrzuca?
 
W innym pluginie mam dropanie broni, ale tak:

engclient_cmd(this, "drop", weapon); //weapon nazwa bronie weapon_*
I to działa.

Bo tak właśnie trzeba robić, musisz podawać nazwę broni w trzecim parametrze.
  • +
  • -
  • 1

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


#14 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 981
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Online

Napisano 22.08.2014 11:08

No to skoro tam działa to zrób to samo tutaj :P


  • +
  • -
  • 0

#15 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 22.08.2014 11:47

Ale jak miałem daaawno CoDa to działał ten sposób chyba.

Pobiore przez get_weaponname i sprawdze.

A co z client_cmd i Ham_Item_Drop?
  • +
  • -
  • 0

#16 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 22.08.2014 16:29

 

 

A co z client_cmd

Czego jeszcze nie wiesz o tym?

 

 

 

 Ham_Item_Drop? 

Podejrzewam ze nie jest to odpowiednio zaimplementowane w module aby moc wywolywac to, ale moge gadac w tej chwili glupoty bo nie mam kodu zrodlowego modulu / HL przed oczami.

 


  • +
  • -
  • 0

#17 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 22.08.2014 17:58

Czy client_cmd działa zawsze? Czy gracz moze blokowac tą komende.
  • +
  • -
  • 0

#18 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 22.08.2014 18:26

Mam wrazenie ze nie wiesz o co pytasz :) client_cmd sluzy do wykonywania komend klienta gry, wiec moze byc bez problemu blokowane po stronie gracza. engclient_cmd wykonuje komendy silnika gry, czyli tak naprawdę to co jest zaimplementowane w netcode i nie wykonuje sie tak naprawdę u gracza (jak np. komenda rebuy).


  • +
  • -
  • 0

#19 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 23.08.2014 06:55

Ahooooo.
Juz czaje.
A czy jest jakiś sposób żeby np. ustawić interp? Używam client_cmd, ale skoro to nie dla wszystkich działa to czy można inaczej? Gdzieś widziałem jakieś message, ale to chyba na innym forum i nwm jak się to wabi.
  • +
  • -
  • 0

#20 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 23.08.2014 11:29

client_cmd wysyła komendę do gracza, aby ją wykonał. To jest wszystko, co serwer robi. Następnie klient po prostu tą komendę wykonuje, a serwer łapie jej wykonanie i robi to, co do niego należy.

engclient_cmd wykonuje to, co by normalnie wykonał, gdyby gracz wywołał komendę. Pomijamy więc wysyłanie komendy do gracza i oczekiwanie aż ją wykona, co może nie nastąpić jeśli gracz ją zablokuje. Nie ma więc gracz możliwości zablokowania tego. Zablokować może jedynie animację wyrzucania po swojej stronie, dzięki czemu dalej broń będzie trzymał... Ale nic mu to nie da, bo nie ma jak jej użyć, serwer uważa, że gracz już jej nie posiada...
  • +
  • -
  • 0

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





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

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