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.
|
Wyrzucanie broni
#1
Napisano 06.03.2013 17:22
#2
Napisano 06.03.2013 17:29
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
Napisano 06.03.2013 17:35
Użytkownik SEERQ666 edytował ten post 06.03.2013 17:36
#4 Gość_21977_*
Napisano 06.03.2013 17:35
Czy chcesz tylko wyrzucić graczowi broń, czy zabrać mu tę broń?
#5
Napisano 06.03.2013 17:37
#6
Napisano 06.03.2013 17:42
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")
#7
Napisano 06.03.2013 17:47
Co może być nie tak?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"
#8 Gość_21977_*
Napisano 06.03.2013 18:02
#9
Napisano 06.03.2013 18:03
@Edit: Zrobiłem z wyrzucaniem broni Do zamknięcia, dzięki za pomoc
Użytkownik SEERQ666 edytował ten post 06.03.2013 18:20
#10 Gość_21977_*
Napisano 06.03.2013 18:21
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
#12
Napisano 31.05.2013 16:22
Nie bez powodu bez powodu Benio101 dodał link do dokumentacji: http://amxx.pl/dokum...44/stripweapons
#14 Gość_21977_*
Napisano 31.05.2013 18:11
Usuwa całkowicie.
Ale od razu ostrzegam - zwróć uwagę na offsety w pliku hamdata.ini
#16
Napisano 31.05.2013 20:40
Ham_Item_Drop
#18
Napisano 31.05.2013 21:01
DarkGL to mój autorytet.
skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować
#20 Gość_21977_*
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