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 CoD zmiana ilości naboi w magazynku

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

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

Napisano 27.12.2011 11:35

Witam!

prosiłbym o przerobienie klasy tak, by po przeładowaniu miała 60 naboi. Dodatkowo o naprawę drugiej rzeczy. Wszystkie "bonusy" nie działają w 1 rundzie.



#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>

new const nazwa[]   = "Elitarny zolnierz";
new const opis[]		= "Ma dwie MP5 i Elite oraz zmniejszoną grawitację.";
new const bronie		= (1<<CSW_MP5NAVY | 1<<CSW_ELITE);
new const zdrowie   = 30;
new const kondycja  = 30;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];


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

		cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);  
		RegisterHam(Ham_Spawn, "player", "Spawn", 1);
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 Spawn(id)
{
		if(ma_klase[id] && is_user_alive(id))
		{
				new weapon_id = find_ent_by_owner(-1, "weapon_mp5navy", id); //szuka id bytu broni ak47 u gracza o id == id
				if(weapon_id) //jeżeli znaleziono broń - byt ma inną wartość niż 0
				{
						 cs_set_weapon_ammo(weapon_id, 60); //ustaw broni 50 ammo
						 cs_set_user_bpammo(id, CSW_MP5NAVY, 200)
				}
set_user_gravity(id, 0.75)
		}
}
public plugin_precache()
{

				precache_model("models/v_mp5dual.mdl");
				//powyżej zmieniasz ścieżki do nowych modeli
}
public CurWeapon(id)
{
				new weapon = read_data(2);

				if(ma_klase[id]) //tutaj wstawiamy ma_klase lub ma_perk
				{
								if(weapon == CSW_MP5NAVY) //tutaj ustawiamy broń, jakiej model będziemy zmieniać
								{
												set_pev(id, pev_viewmodel2, "models/v_mp5dual.mdl")

//tu dajemy ścieżkę do nowego modeli v_

								}
				}
new iWeapon = read_data(2);
		new iEnt;

		static Float:fSpeedMultiplier = 0.7;

		if(iWeapon == CSW_MP5NAVY)
		{
				iEnt = fm_find_ent_by_owner(-1, "weapon_mp5navy", id)

				set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 );
				set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 );
		}



}

wpadłem na pomysł, by wykorzystać perk "Zwinne Palce"
działa prawie dobrze:
jak wystrzelamy cały magazynek ładnie dodaje 60 do magazynka i odejmuje 60 z plecaka (tyle, że od razu, jak w perku i to nie wiem na razie jak poprawić)

a jak przeładujemy sami znów dodaje 60 i odejmuje 60 z plecaka ale po chwili ustawia 30 i dodaje 30 z powrotem do plecaka. jakieś pomysły?



#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>

new const nazwa[]   = "Elitarny zolnierz";
new const opis[]		= "Ma 2 UZI i Elite oraz zmniejszoną grawitację.";
new const bronie		= (1<<CSW_MP5NAVY | 1<<CSW_ELITE);
new const zdrowie   = 30;
new const kondycja  = 30;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool: ma_klase[33];
new const max_clip[31] = { -1, 13, -1, 10,  1,  7,  1,  30, 30,  1,  30,  20,  25, 30, 35, 25,  12,  20,
10,  30, 100,  8, 30,  30, 20,  2,  7, 30, 30, -1,  50 };


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

		cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);  
		RegisterHam(Ham_Spawn, "player", "Spawn", 1);
register_event("CurWeapon", "CurWeapon", "be", "1=1")
register_event("Spawn", "Spawn", "be", "1=1")
register_forward(FM_CmdStart, "CmdStart");

}

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


}

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

}

public Spawn(id)
{
		if(ma_klase[id] && is_user_alive(id))
		{
				new weapon_id = find_ent_by_owner(-1, "weapon_mp5navy", id); //szuka id bytu broni ak47 u gracza o id == id
				if(weapon_id) //jeżeli znaleziono broń - byt ma inną wartość niż 0
				{
						 cs_set_weapon_ammo(weapon_id, 60); //ustaw broni 50 ammo
						 cs_set_user_bpammo(id, CSW_MP5NAVY, 200)
				}
set_user_gravity(id, 0.75)
		}
}
public plugin_precache()
{

				precache_model("models/v_mp5dual.mdl");
				//powyżej zmieniasz ścieżki do nowych modeli
}
public CurWeapon(id)
{
				new weapon = read_data(2);

				if(ma_klase[id]) //tutaj wstawiamy ma_klase lub ma_perk
				{
								if(weapon == CSW_MP5NAVY) //tutaj ustawiamy broń, jakiej model będziemy zmieniać
								{
												set_pev(id, pev_viewmodel2, "models/v_mp5dual.mdl")

//tu dajemy ścieżkę do nowego modeli v_

								}
				}
new iWeapon = read_data(2);
		new iEnt;

		static Float:fSpeedMultiplier = 0.7;

		if(iWeapon == CSW_MP5NAVY)
		{
				iEnt = fm_find_ent_by_owner(-1, "weapon_mp5navy", id)

				set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 );
				set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 );
		}



}
public CmdStart(id, uc_handle)
{
if(!is_user_alive(id) || !ma_klase[id])
return FMRES_IGNORED;

new buttons = get_uc(uc_handle, UC_Buttons);
new oldbuttons = pev(id, pev_oldbuttons);
new clip, ammo, weapon = get_user_weapon(id, clip, ammo);

if((max_clip[weapon]+30) == -1 || !ammo)
return FMRES_IGNORED;

if((buttons & IN_RELOAD && !(oldbuttons & IN_RELOAD) && !(buttons & IN_ATTACK)) || !clip)
{
cs_set_user_bpammo(id, weapon, ammo-((max_clip[weapon]+30)-clip));
new new_ammo = ((max_clip[weapon]+30) > ammo)? clip+ammo: (max_clip[weapon]+30);
set_user_clip(id, new_ammo);
}

return FMRES_IGNORED;
}

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 Eustachy8 edytował ten post 28.12.2011 18:47

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 






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