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

Zmiana ilości pocisków w magazynku.


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

#1 diggs

    Wszechwidzący

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 09.04.2011 20:35

Witam. Poszukuje funkcji lub jakiegoś innego sposobu dającego możliwość manipulowania ilością pocisków w jednym magazynku. Potrzebował bym czegoś podobnego do np set_user_health czy set_user_armor. Chodzi o to że podaje id gracza, któremu ma się zmienić ilość pocisków oraz samą ilość na jaką trzeba zmienić.

Do tej pory udało mi się znaleźć tylko coś takiego:
ns_set_weap_clip( idWeapon, clipsize )
z tym że funkcja ta jest z moda Natural Selection i niezbyt wiem czy i jak mogę użyć tego w cs'ie. Jeśli już dodam biblioteke i funkcje, plugin się kompiluje lecz nie uruchamia na serwerze.

Proszę o jakieś podpowiedzi. Znalazłem również ten wątek:
Dokumentacja AMXX.pl: NS >> ns > ns_set_weap_clip
natomiast nie mogę tam odnaleźć w jaki sposób jest zwiększana ta ilość pocisków.

Podmiana tych pocisków odbywała by się w funkcji obsługującej event CurWeapon.
register_event("CurWeapon","cur_weapon","be", "1=1")

Dla osób które nie wiedzą jeszcze o co mi chodzi przykład:
Gracz ma deagla (standardowo ma 7 pocisków) plugin zmienia ilość pocisków na np 14, czy 9.

PS.
Zapomniałem dodać nie jestem idiotą wystarczy mi podrzucić hasło a sam postaram się znaleźć resztę, nie potrzebuje gotowca przykładu itp.

Użytkownik diggs edytował ten post 09.04.2011 20:40

  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#2 abcdef

    Nowy

  • Zbanowany

Reputacja: 2
Nowy

  • Postów:5
  • Imię:michal
  • Lokalizacja:opolskie
Offline

Napisano 10.04.2011 16:01

ta funkcja da 2 pociski do deagla więc weapon deagle zmieniasz na no chcesz i ilosc ammo i dajesz do swojej funkcji
new weapon_id = find_ent_by_owner(-1, "weapon_deagle", id);
	if(weapon_id)
	{
		cs_set_weapon_ammo(weapon_id, 2);
	}


#3 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 10.04.2011 16:37

set_user_weapon_clip(id, newammo, weapon = 0)
{
new szWeapon[64], iWeapon = get_user_weapon(id);
if(!weapon)
{
if(!iWeapon)
return 0;

get_weaponname(get_user_weapon(id), szWeapon, 63);
}
else
{
if(!get_weaponname(weapon, szWeapon, 63))
return 0;
}

cs_set_weapon_ammo(find_ent_by_owner(-1, szWeapon, id), newammo);
return 1;
}

Wymagane cstrike + engine. Jeśli weapon = 0 to ammo bedzie zmieniane w obecnej broni, w przeciwnym wypadku bedzie zmienione w broni o podanym id.

Użytkownik Owner123 edytował ten post 10.04.2011 16:40

  • +
  • -
  • 1

#4 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 10.04.2011 16:57

Plus dla obu Panów ;], tego właśnie potrzebowałem.

Pytanie tylko do Owner123, moja aktualna eksperymentalno - próbna funkcja zmiany broni wygląda tak
public s_3_clip_set(id, id_weapon)
{
	if(cs_get_user_team(id) == CS_TEAM_CT)
	{
		cs_set_weapon_ammo(id_weapon, weapon_clip[id_weapon] + g_PlayerInfo[id][SKILL3POS]*1);
		//ns_set_weap_clip(id_weapon, weapon_clip[cs_get_weapon_id(id)] + g_PlayerInfo[id][SKILL3POS]*1);
	}
	else if(cs_get_user_team(id) == CS_TEAM_T)
	{
		return PLUGIN_CONTINUE;
	}
	else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
	{
		return PLUGIN_HANDLED;
	}

	return PLUGIN_CONTINUE;
}

wywoływana w funkcji
register_event("CurWeapon","cur_weapon","be", "1=1");
[...]
public cur_weapon(id)
{
	if(!is_user_alive(id)){
		return PLUGIN_CONTINUE
	}
	
	new weapon_id = read_data(2);
	
	s_1_speed_set(id);
	s_3_clip_set(id, weapon_id);
	
	return PLUGIN_CONTINUE;
}

Czyli do mojej funkcji przesyłane jest id aktualnej broni, czyli wystarczy mi tak jak to próbowałem w komentarzach sama funkcja
cs_set_weapon_ammo(id_weapon, ilosc_pociskow);
Czy potrzebuje czegoś jeszcze. I ta funkcja cs_set_weapon_ammo() zmienia wartość amunicji dla wszystkich np deagl'i czy dla deagl'a konkretnego gracza?
  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png


#5 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 10.04.2011 17:13

Niee, funkcja cs_set_weapon_ammo wymaga id enta, ktory odpowiada za bron.
Czyli poprawne użycie wygląda mniej więcej tak:
cs_set_weapon_ammo(find_ent_by_owner(-1, "nazwa_broni", id), nowa_ilosc_ammo);

Zamiast nazwa broni powinno byc cos w stylu "weapon_deagle", "weapon_m4a1" etc. Jeśli chcesz automatycznie pobrac nazwe mozesz uzyc funkcji get_weaponname.
  • +
  • -
  • 0

#6 diggs

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:229
  • Lokalizacja:Internet
Offline

Napisano 10.04.2011 18:27

A teraz pytanie za 100 punktów dlaczego event CurWeapon wykonywany jest tylko dla TT a dla CT nie działa. Chodzi o moda BaseBuilder.

Odświeżenie tematu.

Dodano 14 kwiecień 2011 - 16:39:
Chciałbym odświeżyć temat ponieważ problemu nie udało mi się rozwiązać.

Użytkownik diggs edytował ten post 12.04.2011 19:29

  • +
  • -
  • 0

cFun.pl BaseBuilderPro v6.5.8 Tirant edit by diggs
IP: 80.82.16.66:27034
b_350_20_D91408_470002_FFFFFA_000000.png

cFun.pl Only AWP - 1000 FPS [SkinsMod]
IP: 80.72.42.113:27015
b_350_20_F8D241_B69427_0F100D_000000.png





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

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