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
Naprawienie

EdycjaNaprawa Pluginu Menu Broni wraz z możliwością zapamiętania broni + Bezlik Magazynków

naprawienie

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

#1 Damian.

    Zaawansowany

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:101
  • Imię:Damian
  • Lokalizacja:Bydzia
Offline

Napisano 09.06.2016 21:01

Witam,

jeżeli istnieje taka możliwość, proszę o edycję pluginu Menu Broni wraz z możliwością zapamiętania broni + Bezlik Magazynków

 

https://amxx.pl/topi...lik-magazynków/

 

Problem polega na tym, ze :

 

Jeżeli wybierze się np M4+deagla i przetrwa się rundę, możemy wybrać kolejną broń.

W ten sposób mamy np. M4+Ak+deagle.

Da się to jakoś naprawić ?

 

 

Dziękuję za pomoc,

Pozdrawiam.


  • +
  • -
  • 0

#2 rzeznik9871

    Wszechwidzący

  • Użytkownik

Reputacja: 80
Zaawansowany

  • Postów:260
Offline

Napisano 15.06.2016 22:14

Witam,

jeżeli istnieje taka możliwość, proszę o edycję pluginu Menu Broni wraz z możliwością zapamiętania broni + Bezlik Magazynków

 

https://amxx.pl/topi...lik-magazynków/

 

Problem polega na tym, ze :

 

Jeżeli wybierze się np M4+deagla i przetrwa się rundę, możemy wybrać kolejną broń.

W ten sposób mamy np. M4+Ak+deagle.

Da się to jakoś naprawić ?

 

 

Dziękuję za pomoc,

Pozdrawiam.

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <fun>
 
new g_iMyWeapons[33][2];
new CSW_MAX_AMMO[33] = {-2, 52, 0, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, 0, 100, -1, -1}
 
public plugin_init()
{
	register_plugin("Menu Broni", "v1.0", "Skull");
 
	RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
	register_event("CurWeapon", "Event_BezlikAmmo", "be", "1=1");
}

public client_disconnect(id)
	g_iMyWeapons[id][0] = g_iMyWeapons[id][1] = 0;

public Odrodzenie(id)
{
	new menu = menu_create("Menu Broni", "Handel_Menu");
	menu_additem(menu, "Wybierz Bronie");
	menu_additem(menu, "Daj Poprzednie bronie");
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_display(id, menu);
}

public Handel_Menu(id, menu, item)
{
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE;
	switch(item)
	{
		case MENU_EXIT: return PLUGIN_CONTINUE;
		case 0: return MenuBroni(id);
		case 1:
		{
			if(g_iMyWeapons[id][1]==0)
				return MenuBroni(id)
			else
			{
			new g_szName[24];
			get_weaponname(g_iMyWeapons[id][0], g_szName, 23);
			give_item(id, g_szName);
			get_weaponname(g_iMyWeapons[id][1], g_szName, 23);
			give_item(id, g_szName);
			}
		}
	}
	return PLUGIN_CONTINUE;
}

public MenuBroni(id)
{
	new menu = menu_create("Wybierz Bron:", "Handel_Bronie");
	menu_additem(menu, "M4A1");
	menu_additem(menu, "AK47");
	menu_additem(menu, "AWP");
	menu_additem(menu, "Scout");
	menu_additem(menu, "AUG");
	menu_additem(menu, "Krieg 550");
	menu_additem(menu, "M249");
	menu_additem(menu, "MP5");
	menu_additem(menu, "UMP45");
	menu_additem(menu, "Famas");
	menu_additem(menu, "Galil");
	menu_additem(menu, "M3");
	menu_additem(menu, "XM1014");
	menu_additem(menu, "Mac10");
	menu_additem(menu, "TMP");
	menu_additem(menu, "P90");
	menu_additem(menu, "G3SG1 (autokampa)");
	menu_additem(menu, "Krieg 552 (autokampa)");
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
	return menu_display(id, menu);
}

public Handel_Bronie(id, menu, item)
{
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE;
	menu_destroy(menu)
	if (item == MENU_EXIT) return PLUGIN_HANDLED
	new tab[18]={CSW_M4A1,CSW_AK47,CSW_AWP,CSW_SCOUT,CSW_AUG,CSW_SG550,CSW_M249,CSW_MP5NAVY,CSW_UMP45,CSW_FAMAS,CSW_GALIL,CSW_M3,CSW_XM1014,CSW_MAC10,CSW_TMP,CSW_P90,CSW_G3SG1,CSW_SG552}
	g_iMyWeapons[id][0]=tab[item]
	return MenuBroniPistolety(id);
}

public MenuBroniPistolety(id)
{
	new menu = menu_create("Wybierz Bron Krotka:", "Handel_BroniePistolety");
	menu_additem(menu, "Deagle");
	menu_additem(menu, "Elite");
	menu_additem(menu, "Usp");
	menu_additem(menu, "Glock18");
	menu_additem(menu, "Fiveseven");
	menu_additem(menu, "P228");
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	return menu_display(id, menu);
}

public Handel_BroniePistolety(id, menu, item)
{
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE;
	menu_destroy(menu)
	if (item == MENU_EXIT) return PLUGIN_HANDLED
	new tab[6]={CSW_DEAGLE,CSW_ELITE,CSW_USP,CSW_GLOCK18,CSW_FIVESEVEN,CSW_P228}
	g_iMyWeapons[id][1]=tab[item]
	return dajbronie(id)
}
public dajbronie(id)
{
	new g_szName[24]
	strip_user_weapons(id)
	get_weaponname(g_iMyWeapons[id][0], g_szName, 23);
	give_item(id, g_szName);
	get_weaponname(g_iMyWeapons[id][1], g_szName, 23);
	give_item(id, g_szName);
	give_item(id,"weapon_knife")
	return 0
}
public Event_BezlikAmmo(id)
{
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE;

	new weaponID = read_data(2)

	if(weaponID == CSW_C4 || weaponID == CSW_KNIFE || weaponID == CSW_HEGRENADE || weaponID == CSW_SMOKEGRENADE || weaponID == CSW_FLASHBANG)
		return PLUGIN_CONTINUE;

	if(cs_get_user_bpammo(id, weaponID) != CSW_MAX_AMMO[weaponID])
		cs_set_user_bpammo(id, weaponID, CSW_MAX_AMMO[weaponID])

	return PLUGIN_CONTINUE;
}

na szybko robione i testowane zmienilem troche kod bo te "kejsy" nie dawaly mi spokoju jak cos bedzie nie tak to pisz


  • +
  • -
  • 1

Cześć


#3 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 16.06.2016 07:20

Wymagany AMXX 1.8.3 nie starszego niz z 23 lutego 2016
nie zmieniaj nazwy broni w menu bo nie bedzie dzialac ustawianie broni graczowi
kod zostal tak wlasnie napisany aby byl jak najlawiejszy do zrozumienia przez mniej doswiadczonych uzytkownikow
bezlik ammo ustawilam aby nie wykonywalo nabijania ammo po kazdym strzale, uzyciu celownika, zamiany broni itp. tylko po kazdym przeladowaniu sprawdza czy gracz ma mniej niz maksymalna ilosc ammo i gdy ma mniej to ustawia
menu sa cache'owane czyli nie sa tworzone za kazdym razem tylko raz na mape, zwieksza to optymalnosc i zmniejsza zuzycie danych

#include <amxmodx>
#include <fakemeta_util>
#include <hamsandwich>

new g_hMenuWeapons, g_hMenuPrimaryWeapons, g_hMenuSecondaryWeapons,
g_iMyWeapons[33][2],
g_iMaxAmmo[31] = { 0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120, 90, 2, 35, 90, 90, 0, 100 };
 
public plugin_init()
{
	register_plugin("Menu Broni", "1.0", "Asiap");

	RegisterHamPlayer(Ham_Spawn, "Odrodzenie", 1);

	for(new szWeapon[24], i = 1; i <= 30; i++)
	{
		if(~(CSW_ALL_GRENADES|1<<CSW_C4|1<<CSW_KNIFE & 1<<i) & 1<<i && get_weaponname(i, szWeapon, 23))
		{
			RegisterHam(Ham_Weapon_Reload, szWeapon, "WeaponReload", 1);
		}
	}

	g_hMenuWeapons = menu_create("Menu broni", "HandleWeaponsMenu");
	menu_additem(g_hMenuWeapons, "Wybierz bronie");
	menu_additem(g_hMenuWeapons, "Daj poprzednie bronie");
	menu_setprop(g_hMenuWeapons, MPROP_EXITNAME, "Wyjdz");

	g_hMenuPrimaryWeapons = menu_create("Wybierz bron", "HandlePrimaryWeapons");
	menu_additem(g_hMenuPrimaryWeapons, "M4A1");
	menu_additem(g_hMenuPrimaryWeapons, "AK47");
	menu_additem(g_hMenuPrimaryWeapons, "AWP");
	menu_additem(g_hMenuPrimaryWeapons, "Scout");
	menu_additem(g_hMenuPrimaryWeapons, "AUG");
	menu_additem(g_hMenuPrimaryWeapons, "SG550");
	menu_additem(g_hMenuPrimaryWeapons, "M249");
	menu_additem(g_hMenuPrimaryWeapons, "MP5Navy");
	menu_additem(g_hMenuPrimaryWeapons, "UMP45");
	menu_additem(g_hMenuPrimaryWeapons, "Famas");
	menu_additem(g_hMenuPrimaryWeapons, "Galil");
	menu_additem(g_hMenuPrimaryWeapons, "M3");
	menu_additem(g_hMenuPrimaryWeapons, "XM1014");
	menu_additem(g_hMenuPrimaryWeapons, "Mac10");
	menu_additem(g_hMenuPrimaryWeapons, "TMP");
	menu_additem(g_hMenuPrimaryWeapons, "P90");
	menu_additem(g_hMenuPrimaryWeapons, "G3SG1");
	menu_additem(g_hMenuPrimaryWeapons, "SG552");
	menu_setprop(g_hMenuPrimaryWeapons, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(g_hMenuPrimaryWeapons, MPROP_NEXTNAME, "Nastepna strona");
	menu_setprop(g_hMenuPrimaryWeapons, MPROP_EXITNAME, "Wyjdz");

	g_hMenuSecondaryWeapons = menu_create("Wybierz pistolet", "HandleSecondaryWeapons");
	menu_additem(g_hMenuSecondaryWeapons, "Deagle");
	menu_additem(g_hMenuSecondaryWeapons, "Elite");
	menu_additem(g_hMenuSecondaryWeapons, "Usp");
	menu_additem(g_hMenuSecondaryWeapons, "Glock18");
	menu_additem(g_hMenuSecondaryWeapons, "Fiveseven");
	menu_additem(g_hMenuSecondaryWeapons, "P228");
	menu_setprop(g_hMenuSecondaryWeapons, MPROP_EXITNAME, "Wyjdz");
}

public client_disconnected(id)
{
	g_iMyWeapons[id][0] = g_iMyWeapons[id][1] = 0;
}

public Odrodzenie(id)
{
	if(!is_user_alive(id))
	{
		return;
	}

	menu_display(id, g_hMenuWeapons);
}

public HandleWeaponsMenu(id, hMenu, iItem)
{
	if(!is_user_alive(id))
	{
		return PLUGIN_CONTINUE;
	}

	switch(iItem)
	{
		case MENU_EXIT:
		{
			return PLUGIN_CONTINUE;
		}
		case 0:
		{
			return menu_display(id, g_hMenuPrimaryWeapons);
		}
		default:
		{
			static szWeapon[24];
			get_weaponname(g_iMyWeapons[id][0], szWeapon, 23);
			DropUserWeapons(id, 0);
			fm_give_item(id, szWeapon);

			get_weaponname(g_iMyWeapons[id][1], szWeapon, 23);
			DropUserWeapons(id, 1);
			fm_give_item(id, szWeapon);
		}
	}
	return PLUGIN_CONTINUE;
}

public HandlePrimaryWeapons(id, hMenu, iItem)
{
	if(!is_user_alive(id) || iItem == MENU_EXIT)
	{
		return PLUGIN_CONTINUE;
	}

	static iBitAccess, iCallback, szInfo[2], szWeapon[24];
	menu_item_getinfo(hMenu, iItem, iBitAccess, szInfo, 1, szWeapon, 23, iCallback);

	strtolower(szWeapon);

	g_iMyWeapons[id][0] = get_weaponid(fmt("weapon_%s", szWeapon));

	DropUserWeapons(id, 0);
	fm_give_item(id, szWeapon);
	return menu_display(id, g_hMenuSecondaryWeapons);
}

public HandleSecondaryWeapons(id, hMenu, iItem)
{
	if(!is_user_alive(id) || iItem == MENU_EXIT)
	{
		return;
	}

	static iBitAccess, iCallback, szInfo[2], szWeapon[24];
	menu_item_getinfo(hMenu, iItem, iBitAccess, szInfo, 1, szWeapon, 23, iCallback);

	strtolower(szWeapon);

	g_iMyWeapons[id][1] = get_weaponid(fmt("weapon_%s", szWeapon));

	DropUserWeapons(id, 1);
	fm_give_item(id, szWeapon);
}

public WeaponReload(iEnt) {
	static id;
	if(!is_user_alive((id = get_pdata_cbase(iEnt, 41, 4))) || !pev_valid(iEnt) || !get_pdata_int(iEnt, 54, 4))
	{
		return;
	}

	static iWeapon;
	if(GetUserAmmo(id) != g_iMaxAmmo[(iWeapon = GetUserWeapon(id))])
	{
		SetUserAmmo(id, g_iMaxAmmo[iWeapon]);
	}
}

stock GetUserWeapon(id, &iWid = 0)
{
	return is_user_alive(id) ? pev_valid((iWid = get_pdata_cbase(id, 373))) == 2 ? get_pdata_int(iWid, 43, 4) : PLUGIN_CONTINUE : PLUGIN_CONTINUE;
}

stock SetUserAmmo(id, iBpAmmo)
{
	static iWeapon;
	if(!is_user_alive(id) || pev_valid((iWeapon = get_pdata_cbase(id, 373))) != 2)
	{
		return PLUGIN_CONTINUE;
	}

	static szWeapon[24];
	if(iWeapon <= CSW_LAST_WEAPON && get_weaponname(iWeapon, szWeapon, 23))
	{
		while((iWeapon = engfunc(EngFunc_FindEntityByString, iWeapon, "classname", szWeapon)))
		{
			if(pev_valid(iWeapon) == 2 && get_pdata_cbase(iWeapon, 41, 4) == id)
			{
				set_pdata_int(id, 376 + get_pdata_int(iWeapon, 49, 4), iBpAmmo);
				set_pdata_int(id, 351, 0);
				return PLUGIN_HANDLED;
			}
		}
	}
	return PLUGIN_CONTINUE;
}

stock GetUserAmmo(id)
{
	static iWeapon;
	if(!is_user_alive(id) || pev_valid((iWeapon = get_pdata_cbase(id, 373))) != 2)
	{
		return PLUGIN_CONTINUE;
	}

	static szWeapon[24];
	if(iWeapon <= CSW_LAST_WEAPON && get_weaponname(iWeapon, szWeapon, 23))
	{
		while((iWeapon = engfunc(EngFunc_FindEntityByString, iWeapon, "classname", szWeapon)))
		{
			if(pev_valid(iWeapon) == 2 && get_pdata_cbase(iWeapon, 41, 4) == id)
			{
				return get_pdata_int(id, 376 + get_pdata_int(iWeapon, 49, 4));
			}
		}
	}
	return PLUGIN_CONTINUE;
}
stock DropUserWeapons(id, iType) {
	if(!is_user_alive(id))
	{
		return PLUGIN_CONTINUE;
	}

	static i, iBitWeapons[32], iNum, szWeapon[24];
	get_user_weapons(id, iBitWeapons, iNum);

	iType = iType ? CSW_ALL_PISTOLS : (CSW_ALL_SHOTGUNS | CSW_ALL_SMGS | CSW_ALL_RIFLES | CSW_ALL_SNIPERRIFLES | CSW_ALL_MACHINEGUNS);

	for(i = 0; i < iNum; i++) {
		if(~(iType & 1<<iBitWeapons[i]) || !get_weaponname(iBitWeapons[i], szWeapon, 23))
		{
			continue;
		}

		engclient_cmd(id, "drop", szWeapon);
	}
	return PLUGIN_HANDLED;
}

Użytkownik Asiap edytował ten post 16.06.2016 07:33

  • +
  • -
  • 2





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

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

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