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

Zabieranie broni po spawnie.


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

#1 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 30.09.2015 15:18

Zabieranie broni po spawnie.

Aktualna metoda:

#define strip_user_weapons2(%0) strip_user_weapons(%0), set_pdata_int(%0, 116, 0)

Problem:

Mam gracza w CT, jezeli ma on bron i zostanie zabity, zmienie mu team i go odrodze (przy odrodzeniu uzywana ta metoda), to nie zabiera broni (najczesciej zabiera, ale nie zawsze).

Opoznienie 0.1 s nie dało nic.

 

(Nie daje broni jezeli jest w TT, wiec bug jest dziwny)

Druzyne sprawdzam przez cs_get_user_team


Użytkownik Droso edytował ten post 30.09.2015 15:39

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#2 Ossal

    Wszechwidzący

  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:273
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 03.10.2015 09:01

Sprawdzałeś inne funkcje usuwania broni?
 

//funkcja usuwajaca wszsytkie bronie, wraz z nozem:
stock UsunWszystkieBronie(id){
	static ent
	ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip"))
	if (!pev_valid(ent)) return;
	
	dllfunc(DLLFunc_Spawn, ent)
	dllfunc(DLLFunc_Use, ent, id)
	engfunc(EngFunc_RemoveEntity, ent)
	return
}

albo znane wszystkim stripweapons?

#include <StripWeapons>

StripWeapons(id, Primary);
StripWeapons(id, Secondary);
StripWeapons(id, Knife);
StripWeapons(id, Grenades);

Nie wszyscy to wiedzą (ja na przykład doszedłem do tego sam w praktyce) ale ta funkcja w przypadku flashbanga zawiedzie, ponieważ zabierze mu broń, ale ammo jakie ma w granacie ( ammo w granacie :D) zostanie na poziomie na przykład 1, więc przy otrzymania granatu nawet w następnej rundzie zamiast jednego będzie mieć dwa (pod warunkiem, że nie umrze w międzyczasie :P), żeby pozbyć się tego buga wystarczy wyzerować ammo flasha przy zabieraniu granatów :)

cs_set_user_bpammo(id,CSW_FLASHBANG,0)

i po problemie :)
możesz ewentualnie usunąć konkretną broń, ale raczej nie polecam :P

stock ham_fm_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;
}

Sprawdź inny sposób zabierania broni, amx lubi płatać figle :P Pozdrawiam :)
PS Sztuczne odrodzenia gracza są dość dziwne, dlatego sprawdź większe opóźnienie :P


  • +
  • -
  • 1




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

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