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
CoD Nowy

Klasa z nieskończoną amunicją

CoD Nowy

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

#1 BliBs_Pl

    Wszechpomocny

  • Użytkownik

Reputacja: 91
Zaawansowany

  • Postów:365
  • GG:
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Pisz
Offline

Napisano 27.06.2011 12:19

Witam!
Jest to poradnik dla ludzi którzy raczej nie są specjalistami w nowym codzie i się im to przyda. Poradnik opiera się na moim eksperymencie :D
Zaczynamy.

Otwórz plik z rozszerzeniem .sma klasy która ma mieć nieskończoną amunicję np. codclass_kozak.sma

Do :
#include <amxmodx>
#include <codmod>

Dodaj:
#include <fakemeta>

#define DMG_BULLET (1<<1)

new bool:ma_klase[33];

Ta część ma wyglądać tak:
#include <amxmodx>
#include <codmod>
#include <fakemeta>

#define DMG_BULLET (1<<1)

new bool:ma_klase[33];

new const nazwa[] = "Kozak";
new const opis[] = "Nieskonczona amunicja";
new const bronie = 1<<CSW_MP5NAVY | 1<<CSW_FIVESEVEN;
new const zdrowie = 10;
new const kondycja = -40;
new const inteligencja = 0;
new const wytrzymalosc = 0;

Teraz zajmijmy się kodem w publicu "plugin_init()":

Do tego kodu:
{
	register_plugin(nazwa, "1.0", "QTM_Peyote");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}

Dodajemy:
register_event("CurWeapon","CurWeapon","be", "1=1");

Aby wyglądało to tak:

public plugin_init() 
{
	register_plugin(nazwa, "1.0", "QTM_Peyote");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

	register_event("CurWeapon","CurWeapon","be", "1=1");
}

Teraz wystarczy tylko wkleić te public'i:
public CurWeapon(id)
{
	if(!is_user_connected(id))
		return;
	
	if(!ma_klase[id])
		return;
	
	set_user_clip(id, 2);
}
	

stock set_user_clip(id, ammo)
{
	new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
	get_weaponname(weapon, weaponname, 31);
	while ((weaponid = engfunc(EngFunc_FindEntityByString, weaponid, "classname", weaponname)) != 0)
		if (pev(weaponid, pev_owner) == id) {
		set_pdata_int(weaponid, 51, ammo, 4);
		return weaponid;
	}
	return 0;
}

Nasza klasa gotowa, oczywiście klasa może mieć jeszcze inną moc.

Poradnik by BliBs_Pl, kopiowanie za zgodą :unsure:
  • +
  • -
  • 0

#2 sharkowy

    Lokalna anomalia sejsmiczna o nieustalonej genezie.

  • Przyjaciel

Reputacja: 113
Zaawansowany

  • Postów:1 981
Offline

Napisano 30.06.2011 10:45

Testowałeś? mi się wydaje, że albo za mało trochę tego kodu, albo zamiast set_user_clip(id, 2) powinno być:
set_user_clip(id, maxClip[get_user_weapon(id)]);

  • +
  • -
  • 0

#3 BliBs_Pl

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 91
Zaawansowany

  • Postów:365
  • GG:
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Pisz
Offline

Napisano 30.06.2011 12:24

Testowałem i na moim serwerze to działa jak powinno, fakt że pokazuje po strzale że jest 2 amunicji czy ile tam ale to żaden błąd bo i tak się nie kończy.
Ps. Jak chcesz to wejdź na mój serwer i tam będzie we frakcji Testowe ta właśnie klasa.

Użytkownik BliBs_Pl edytował ten post 30.06.2011 12:24

  • +
  • -
  • 0

#4 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 30.06.2011 12:42

A tak nie moze byc ? Normalnie dodaje magazynek gdy ich ilosc jest równa zeru.



public CurWeapon(id)
{
new clip, ammo
new weapon[32]
new weapon_id = get_user_weapon(id, clip, ammo)

if(weapon_id==CSW_C4 || weapon_id==CSW_HEGRENADE || weapon_id==CSW_SMOKEGRENADE || weapon_id==CSW_FLASHBANG || weapon_id==CSW_KNIFE || !ma_klase[id] || !(is_user_alive(id))) return PLUGIN_CONTINUE

if (clip==0 ) //jezeli chcesz nieskończone magazynki zamiast ammo zmień "clip" na "ammo"
{
get_weaponname(weapon_id, weapon, 31)
give_item(id, weapon)
engclient_cmd(id, weapon)
}
return PLUGIN_CONTINUE
}

Użytkownik MarWit edytował ten post 01.07.2011 14:30

  • +
  • -
  • 2

marwit-0.png


#5 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

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

Napisano 10.10.2011 18:35

Warto też dodac o cod)_class_enabled/disabled a w nich ma_klase, żeby nie było bugów
  • +
  • -
  • 0

#6 RedDevill

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Maciek
  • Lokalizacja:Wołomin
Offline

Napisano 12.11.2011 11:26

Gdzie wkleić te public'i?
  • +
  • -
  • 0

#7 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

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

Napisano 12.11.2011 11:58

Przed CurWeapon wklej to :

public cod_class_enabled(id)
ma_klase[id] = true;

public cod_class_disabled(id)
ma_klase [id] = false;


A i nie potrzebne jest to :

#define DMG_BULLET (1<<1)


Użytkownik d0n tHe Pr0oo edytował ten post 12.11.2011 11:58

  • +
  • -
  • 1

#8 RedDevill

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Maciek
  • Lokalizacja:Wołomin
Offline

Napisano 16.11.2011 17:26

Coś nie tak mi idzie. Czy zrobiłby mi ktoś na szybko klasę (w generatorze):
Nazwa: Lekki obrońca
Opis: Nieskończone ammo, szybki

Statystyki
Zdrowie: -5 Kondycja: 30 Inteligencja: 0 Wytrzymałość: 0

Broń: P90

? :)
  • +
  • -
  • 0

#9 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

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

Napisano 18.11.2011 19:13

Masz, mi działa bez zarzutu

/* Plugin generated by d0n tHe Pr0oo */
#include <amxmodx>
#include <codmod>
#include <fakemeta>

new bool:ma_klase[33];

new const nazwa[] = "Szturmer";
new const opis[] = "Nieskonczone ammo";
new const bronie = 1<<
new const zdrowie = 80;
new const kondycja = 90;
new const inteligencja = 0;
new const wytrzymalosc = 100;

public plugin_init() {
register_plugin(nazwa, "1.0", "QTM_Peyote");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

register_event("CurWeapon","CurWeapon","be", "1=1");
}

public cod_class_enabled(id)
ma_klase[id] = true;

public cod_class_disabled(id)
ma_klase[id] = false;

public CurWeapon(id)
{
if(!is_user_connected(id))
return;

if(!ma_klase[id])
return;

set_user_clip(id, 31);

}


stock set_user_clip(id, ammo)
{
new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
get_weaponname(weapon, weaponname, 31);
while ((weaponid = engfunc(EngFunc_FindEntityByString, weaponid, "classname", weaponname)) != 0)
if (pev(weaponid, pev_owner) == id) {
set_pdata_int(weaponid, 51, ammo, 4);
return weaponid;
}
return 0;
}

Użytkownik d0n tHe Pr0oo edytował ten post 18.11.2011 19:17

  • +
  • -
  • 2





Również z jednym lub większą ilością słów kluczowych: CoD Nowy

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

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