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

Wyrzucanie broni


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

#1 Seerq.

    Zaawansowany

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:76
  • GG:
  • Lokalizacja:Lębork
Offline

Napisano 06.03.2013 17:22

Witam. Mam pytanko. Co dodać do pluginu aby broń gracza się wyrzuciła? Coś w stylu "give_item(id, "weapon_p90");" tylko, że na odwrót. np: drop_item(id, "weapon_p90");?
  • +
  • -
  • 1

#2 O'Zone

    Wszechobecny

  • Użytkownik

Reputacja: 594
Wszechwiedzący

  • Postów:409
  • Steam:steam
Offline

Napisano 06.03.2013 17:29

Wybrana broń:
engclient_cmd(id, "drop", "weapon_nazwa");
Ta, którą trzyma aktualnie:
client_cmd(id, "drop");

Użytkownik O'Zone edytował ten post 06.03.2013 17:31

  • +
  • -
  • 3
Pomogłem? Daj Dołączona grafika

#3 Seerq.

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:76
  • GG:
  • Lokalizacja:Lębork
Offline

Napisano 06.03.2013 17:35

Coś nie działa ;/ Rozpiszę może mój problem. Dokładniej chodzi o to, że mam VIP'a który daje jakąś broń, lecz jest to serwer PaintBall mod i na start od razu dostaję broń normalną, czyli gracz z vip'em ma w tym momencie dwie bronie a chciałbym tego uniknąć. Chyba, że wpisuje złą nazwę dla mp5, lepiej niech ktoś napiszę jaka nazwa powinna znajdować się w pluginie. Wie ktoś co zrobić?

Użytkownik SEERQ666 edytował ten post 06.03.2013 17:36

  • +
  • -
  • 1

#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 06.03.2013 17:35

Wybacz, że zadam to pytanie, ale XY Problem dość często występuje na naszym forum.
Czy chcesz tylko wyrzucić graczowi broń, czy zabrać mu tę broń?

#5 Seerq.

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:76
  • GG:
  • Lokalizacja:Lębork
Offline

Napisano 06.03.2013 17:37

Zabrać czy wyrzucić to bez różnicy :) Ale lepiej zabrać :>
  • +
  • -
  • 1

#6 O'Zone

    Wszechobecny

  • Użytkownik

Reputacja: 594
Wszechwiedzący

  • Postów:409
  • Steam:steam
Offline

Napisano 06.03.2013 17:42

Jeśli zabrać, to możesz wykorzystać ten stock:
stock ham_strip_weapon(id, weapon[])
{
if(!equal(weapon, "weapon_", 7))
return 0;
new wId = get_weaponid(weapon);
if(!wId)
return 0;
new wEnt;
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon)) && pev(wEnt, pev_owner) != id) {}
if(!wEnt)
return 0;

if(get_user_weapon(id) == wId)
ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt);

if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt))
return 0;
ExecuteHamB(Ham_Item_Kill, wEnt);

set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId));
return 1;
}

Przykładowe użycie:
ham_strip_weapon(id,"weapon_knife")

  • +
  • -
  • 1
Pomogłem? Daj Dołączona grafika

#7 Seerq.

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:76
  • GG:
  • Lokalizacja:Lębork
Offline

Napisano 06.03.2013 17:47

@Up. Dodaję to pierwsze co wkleiłeś na końcu pluginu i taki error przy kompilacji:

vippbtest5.sma(233) : error 017: undefined symbol "engfunc"
vippbtest5.sma(244) : error 017: undefined symbol "set_pev"
vippbtest5.sma(244) : error 017: undefined symbol "pev"

Co może być nie tak?
  • +
  • -
  • 1

#8 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 06.03.2013 18:02

Opisałem to w dokumentacji, bo dość często się przewija.
Użyj funkcji StripWeapons

#9 Seerq.

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:76
  • GG:
  • Lokalizacja:Lębork
Offline

Napisano 06.03.2013 18:03

Możesz jaśniej. Jestem trochę zielony w tych kwestiach :<
@Edit: Zrobiłem z wyrzucaniem broni :> Do zamknięcia, dzięki za pomoc :)

Użytkownik SEERQ666 edytował ten post 06.03.2013 18:20

  • +
  • -
  • 1

#10 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 06.03.2013 18:21

Jeśli chcesz odebrać broń trzymaną, przed dodaniem broni, wywołaj
StripWeapons(id, Primary);


Jeśli zaś chcesz zachować broń trzymaną, dodaj warunek przed dodaniem broni
if(get_pdata_cbase(id, 368)==-1)


Podobnie uczyń dla pozostałych slotów.
  • Primary - 368
  • Secondary - 369
  • Knife - 370
  • Grenades - 371
  • C4 - 372


#11 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 31.05.2013 15:08

sorry, że odświeżam, ale jak zrobić by wyrzucał z danego slota?


  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#12 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 31.05.2013 16:22

Nie bez powodu bez powodu Benio101 dodał link do dokumentacji: http://amxx.pl/dokum...44/stripweapons


  • +
  • -
  • 0

#13 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 31.05.2013 16:47

usuwa nie wyrzuca, tak to rozumiem. Czy się mylę?


  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#14 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 31.05.2013 18:11

Usuwa całkowicie.

Ale od razu ostrzegam - zwróć uwagę na offsety w pliku hamdata.ini



#15 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 31.05.2013 20:05

no ja właśnie bym chciał, aby ta broń była wyrzucana, a nie usuwana. Jak to osiągnąć?


  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#16 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

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

Napisano 31.05.2013 20:40

Ham_Item_Drop ;)


  • +
  • -
  • 0

#17 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 31.05.2013 20:48

sorry, ale nawet w najmniejszym stopniu nie zrozumiałem co do mnie napisałeś Dark :D

 

@Edit: Dobra nabyłem trochę pojęcia, coś na alliedmodders znalazlem, ale nie wiem jak to ugryźć na razie


Użytkownik Eustachy8 edytował ten post 31.05.2013 21:02

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#18 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 31.05.2013 21:01

http://amxx.pl/dokum...a/i73/ham-const

ctrl+f i wpisz Ham_Item_Drop, masz tam też wywołanie tego


  • +
  • -
  • 1

DarkGL to mój autorytet.

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


#19 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 01.06.2013 14:10

a czy nie można by było ruszyć to w sposób łatwiejszy?

   client_cmd(id,"slot 1")
   // tu sprawdzanie, czy slot 1 jest zapełniony

   client_cmd(id,"drop")

ale jak sprawdzić, czy slot 1 się włączył, czy jest zapełniony?


Użytkownik Eustachy8 edytował ten post 01.06.2013 14:10

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#20 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 01.06.2013 15:19

Jest to chyba najmniej optymalna i najbardziej zawodny pomysł, na jaki można wpaść.

AMXModX, poprzez metamoda:P, a następnie silnik gry, wysyła do gracza polecenie zmiany slotu na 1.

Następnie, znów wysyłasz, znów najbardziej drogocenną drogą, od AMXX, poprzez Metamoda:P i sam silnik gry aż do gracza polecenie, które trafia od gracza ponownie do silnika gry, by ostatecznie wyrzucić aktywną broń.

Pomijając długą i zupełnie zbędną wymianę pakietów informacji, nie wiesz, jaką broń wyrzucisz, z którego slota (gracz może nie mieć broni w pierwszym slocie, lub w międzyczasie slot zmienić), ani czy w ogóle komenda zostanie "odbita" ponownie do silnika gry (serwer przyjmuje ograniczoną ilość pakietów poleceń od graczy).

 

To tak, jakbyś zamiast nastawić sobie budzik na 6. rano, wysłał maila do kumpla, by ten wysłał smsa do innego kumpla, by ten zadzwonił do Ciebie, jak będzie wstawał rano, by Cię także obudzić.

Tutaj także, niepotrzebnie angażujesz kilka osób, a nie masz pewności, że ostatecznie każdy wykona swoje zadanie i informacja do Ciebie dotrze, co więcej, nie wiesz, o której wstaje inny kumpel,

a tym samym, o której zostaniesz obudzony, oraz czy w ogóle zostaniesz. Podsumowując, rozwiązanie beznadziejne, zwłaszcza przy tak bogatym wyborze różnorodnych bibliotek do realizacji tego zadania.






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

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