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
 

Damian. - zdjęcie

Damian.

Rejestracja: 21.07.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 28.07.2017 17:47
-----

#738698 Jakie polecacie Pluginy na serwer DD2?

Napisane przez Linux' w 20.04.2017 22:37

Moze ten?

 

https://www.youtube....h?v=N6DK_62HySw


  • +
  • -
  • 4


#738293 Odtwarzanie dźwięku, gdy ktos Nas zabije

Napisane przez Robiin w 09.04.2017 01:24

#include <amxmodx>

new  const sound[]={"cos/zabil"}//tu sobie zmieniasz dźwięk, bez .wav na końcu

public plugin_init() {

    register_plugin("Cus", "1.0", "Screeaam..");

    register_event("DeathMsg", "Death", "a");

}

public Death(){

    new ofiara = read_data(2);

    

    if(is_user_connected(ofiara))

        client_cmd(ofiara, "spk %s",sound)

    return PLUGIN_CONTINUE;

}

public plugin_precache() 

{

    new snd[sizeof(sound)]

    format(snd,sizeof(sound)-1,"%s.wav",sound)

    precache_sound(snd)

}

  • +
  • -
  • 1


#738294 Odtwarzanie dźwięku, gdy ktos Nas zabije

Napisane przez d0naciak w 09.04.2017 07:35

Wy daliście do pliku WAV, a miałbyć MP3"

#include <amxmodx>
 
new const dzwiek[] = "sciezka/do/pliku.mp3"
 
public plugin_init() {
register_plugin("Cus", "1.0", "Screeaam..");
register_event("DeathMsg", "Death", "a");
}
 
public plugin_precache() {
precache_sound(dzwiek)
}
 
public Death(){
new ofiara = read_data(2);
 
if(is_user_connected(ofiara))
client_cmd(ofiara, "mp3 play sound/%s", dzwiek)
}

  • +
  • -
  • 1


#738286 Odtwarzanie dźwięku, gdy ktos Nas zabije

Napisane przez Robiin w 08.04.2017 23:33

https://amxx.pl/topic/1680-eventy/

DeathMsg - ktos umarl

#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("DeathMsg", "DeathMsg", "a")
}
 
public DeathMsg()
{
	new kid = read_data(1)	//zabojca
	
	new vid = read_data(2)	// ofiara
	
	new hs = read_data(3)	// HeadShot (1 == true)
	
	new weapon[64]		
	read_data(4,weapon,63)	//krotka nazwa broni (bez weapon_ / CSW_ )
 
	//code
}

kid i vid sa sobie rowne gdy zabije cie wlasna bron (granat) lub np. admin uzyje slay'a...

kid == 0 gdy np. spadniesz z wysokiej wysokosci...

 

https://amxx.pl/doku...kcja=emit_sound


  • +
  • -
  • 1


#737185 Edycja wyglądu wiadomości na HUD

Napisane przez Toldi w 07.03.2017 17:29

/**
* csdm_tickets.sma
* CSDM plugin that lets you have round ticketing.
* Every time a player dies their team loses a ticket. Once all their tickets are used up,
* they cannot respawn.
*
* (C)2003-2006 David "BAILOPAN" Anderson
*
* Give credit where due.
* Share the source - it sets you free
* http://www.opensource.org/
* http://www.gnu.org/
*/

#include <amxmodx>
#include <amxmisc>
#include <csdm>

new bool:g_Enabled = false
new g_TeamTickets
new g_Respawns[3]

//Tampering with the author and name lines can violate the copyright
new PLUGINNAME[] = "CSDM Ticketing"
new VERSION[] = CSDM_VERSION
new AUTHORS[] = "BAILOPAN"

public csdm_Init(const version[])
{
    if (version[0] == 0)
    {
        set_fail_state("CSDM failed to load.")
        return
    }
}

public csdm_CfgInit()
{
    csdm_reg_cfg("ticketing", "read_cfg")
}

public plugin_init()
{
    register_plugin(PLUGINNAME, VERSION, AUTHORS);
    
    new menu = csdm_main_menu();
    menu_additem(menu, "", "csdm_ticketing", ADMIN_MAP)
}

public plugin_cfg()
{
    if (g_TeamTickets)
    {
        csdm_set_mainoption(CSDM_OPTION_SAYRESPAWN, CSDM_SET_DISABLED)
    }
}

public csdm_RoundRestart()
{
    g_Respawns[_TEAM_T] = 0
    g_Respawns[_TEAM_CT] = 0
}

public csdm_PostDeath(killer, victim, headshot, const weapon[])
{
    if (!g_Enabled)
        return PLUGIN_CONTINUE
        
    new team = get_user_team(victim)
    
    if (g_Respawns[team] >= g_TeamTickets)
        return PLUGIN_HANDLED
        
    g_Respawns[team]++
    
    update_views()
    
    return PLUGIN_CONTINUE
}

public csdm_PreSpawn(player, bool:fake)
{
    if (!g_Enabled || !fake)
        return PLUGIN_CONTINUE
        
    new team = get_user_team(player)
    if (g_Respawns[team] >= g_TeamTickets)
        return PLUGIN_HANDLED
        
    update_views()
    
    return PLUGIN_CONTINUE
}

update_views()
{
    //stolen from twisty
    set_hudmessage(170, 200, 255, -1.0, 0, 0, 6.0, 240.0, 0.1, 0.1, 4)
    new message[101]
    new ct = g_TeamTickets - g_Respawns[_TEAM_CT]
    new t = g_TeamTickets - g_Respawns[_TEAM_T]
    if (t < 0)
        t = 0
    if (ct < 0)
        ct = 0
    format(message, 100, "..::CS-Zgrywus.PL::..^n NIESMIERTELNIKI DRUZYN ^nCT: %d | TT: %d", ct , t)
    show_hudmessage(0, "%s", message)
}

public read_cfg(readAction, line[], section[])
{
    if (!csdm_active())
    {
        return
    }
        
    if (readAction == CFG_READ)
    {
        new setting[24], sign[3], value[32];

        parse(line, setting, 23, sign, 2, value, 31);
        
        if (equali(setting, "tickets"))
        {
            g_TeamTickets = str_to_num(value)
        } else if (equali(setting, "enabled")) {
            g_Enabled = str_to_num(value) ? true : false
        }
    }
}

  • +
  • -
  • 1


#736820 Plugin na odliczanie ilości respawnów

Napisane przez _McHappy w 24.02.2017 22:21

W tym miejscu

format(message, 100, "Round Tickets - ^nTerrorists: %d^nCounter-Terrorist Tickets: %d", t , ct)

Modyfikuj tekst w cudzysłowie.

"%d" nie dotykaj/nie usuwaj.


  • +
  • -
  • 1


#736698 Każdy na każdego bez CSDM

Napisane przez Skull. w 20.02.2017 21:19

To mój stary kod który kiedyś sam używałem (myślę że że to jest ta ostatnia wersja w której wszystko było naprawione).

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Free For All"
#define AUTHOR "ConnorMcLeod @Skull"
#define VERSION "0.7c"

#define fm_get_user_team(%1)	get_pdata_int(%1,114)
#define fm_set_user_team(%1,%2)	set_pdata_int(%1,114,%2)

new gmsgRadar;
new g_iMaxPlayers;
new mp_friendlyfire;
new HamHook:g_hTraceAttack, HamHook:g_hTakeDamage, HamHook:g_hKilled, g_mRadarHook;
new bool:g_bFFA;

public plugin_init()
{
	register_plugin( PLUGIN, VERSION, AUTHOR );

	mp_friendlyfire = get_cvar_pointer("mp_friendlyfire");
	gmsgRadar = get_user_msgid("Radar");
}

public plugin_cfg()
{
	g_iMaxPlayers = get_maxplayers();
	set_pcvar_num(mp_friendlyfire, 1);
	client_cmd(0, "hideradar");
	Register_Forwards((g_bFFA = true));
}

public client_connect(id)
{
	if(g_bFFA)
		client_cmd(id, "hideradar");
}

public TraceAttack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_TraceAttack, victim, attacker, damage, direction, tracehandle, damagebits);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public TakeDamage(victim, idinflictor, attacker, Float:damage, damagebits)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_TakeDamage, victim, idinflictor, attacker, damage, damagebits);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public Killed(victim, attacker, shouldgib)
{
	if(victim != attacker && (1 <= attacker <= g_iMaxPlayers))
	{
		new vteam = fm_get_user_team(victim);
		
		if(vteam == fm_get_user_team(attacker))
		{
			fm_set_user_team(victim, vteam == 1 ? 2 : 1);
			ExecuteHamB(Ham_Killed, victim, attacker, shouldgib);
			fm_set_user_team(victim, vteam);
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public Message_Radar(iMsgId, MSG_DEST, id)
	return PLUGIN_HANDLED;

Register_Forwards(bool:bState)
{
	if(bState)
	{
		if(g_hTraceAttack)
			EnableHamForward(g_hTraceAttack);
		else
			g_hTraceAttack = RegisterHam(Ham_TraceAttack, "player", "TraceAttack");

		if(g_hTakeDamage)
			EnableHamForward(g_hTakeDamage);
		else
			g_hTakeDamage = RegisterHam(Ham_TakeDamage, "player", "TakeDamage");

		if(g_hKilled)
			EnableHamForward(g_hKilled);
		else
			g_hKilled = RegisterHam(Ham_Killed, "player", "Killed");

		if(!g_mRadarHook)
			g_mRadarHook = register_message( gmsgRadar, "Message_Radar");
	}
	else
	{
		if(g_hTraceAttack)
			DisableHamForward(g_hTraceAttack);

		if(g_hTakeDamage)
			DisableHamForward(g_hTakeDamage);

		if(g_hKilled)
			DisableHamForward(g_hKilled);

		if(g_mRadarHook)
		{
			unregister_message(gmsgRadar, g_mRadarHook);
			g_mRadarHook = 0;
		}
	}
}

  • +
  • -
  • 3


#736181 Mod:Go

Napisane przez Sequ w 11.02.2017 08:35

Witajcie!!!
Chciałem wam obwieścić że praca nad wersją 1.0 (Testową) modyfikacji Mod:Go dobiega powoli do końca.Z tej właśnie okazji chce wam opisać na czym modyfikacja będzie polegała.

*INFORMACJE*

-W modyfikacji jest 18 rang (All z Cs:Go)
-Do rangi możemy awansować albo z niej spaść
poprzez odpowiednie punkty które są liczone od zabójstw wroga i od naszych śmierci
-Poprzez komendę /ranga będziemy mogli sprawdzić ile nam brakuje do następnej rangi
-Do silnika gry dodano punkty
*Życia
*Szybkości
*Grawitacji
*Widzialności
*Obrażeń
Punkty te będziemy mogli ustawiać w danym pluginie od skinu.
-Dodano system skinów które będą nam zmieniały model zwykły z Cs:Go na nowy skin tez prosto z cs go.Siły też będą dawały małe bonusy w punktach które podałem w poprzednim punkcie zapowiedzi
-Silnik gry od początku zamieni nam zwykłe modele cs 1.6 na modele wprost z cs:go
-Modyfikacja w wersi 1.0 będzie miała jedną mapę
de_dust2 (Wprost z cs:go)
-Modyfikacja w wersji 1.0 będzie miała już w pełni sprawny ranking pod względem Rangi i Punktów
-Dodano też prefix w say z aktualną rangą
-Zapis danych na razie wyłącznie jest możliwy przez "Nvault" ponieważ sql nie było mi potrzebne.W aktualizacjach na pewno wejdzie zapis do sql aby na stronie można było łatwo wyświetlić ranking lub topke
-Kod jest napisany profesjonalnie z zachowaniem łatwości edycji
-Dodane są natywy aby można było tworzyć własne pluginy skinów i własnych dodatków pod modyfikacje


To na razie wszystko.Wersję próbną wypuszcze za 7 dni.Abyście przetestowali ją pod względem pomysłu i przyjemności gry.Modyfikacja pod względem wydajności wypada bardzo dobrze.Żadnymi błędami nie sypie.Modyfikacje można też zainstalować na własnym cs bez serwera.Kompatybilna z "podBotami".


Czekam na ocenę i sugestie względem modyfikacji.

Jeszcze dziś dam z 2-3 SS jak to wygląda z gry.

Pozdrawiam
  • +
  • -
  • 1


#732388 [ROZWIĄZANE] Server shutting down / overflowed

Napisane przez vanillah w 13.11.2016 14:55

https://amxx.pl/topi...netbufextender/to naprawi overflowed


  • +
  • -
  • 1


#732189 Lekka edycja pluginu ranga.amxx

Napisane przez _McHappy w 05.11.2016 22:25

Wgraj do scripting/include

Załączone pliki


  • +
  • -
  • 1


#732185 Lekka edycja pluginu ranga.amxx

Napisane przez _McHappy w 05.11.2016 21:10

3maj

Załączone pliki


  • +
  • -
  • 1


#731948 Prefix [VIP] - nagle znikł ?

Napisane przez _McHappy w 30.10.2016 13:12

Wyłącz w takim razie wszystkie dodatkowe pluginy i pozostaw tego vipa po czym zrestartuj serwer.
Jeżeli będzie działał, dodawaj stopniowo pluginy - dzięki temu stosunkowo szybko znajdziesz winowajcę.
Jeżeli nadal nie będzie tego prefiksu, to zmień wersję amxx'a i/lub metamoda / hlds.
  • +
  • -
  • 1


#727295 EdycjaNaprawa Pluginu Menu Broni wraz z możliwością zapamiętania broni + Bezl...

Napisane przez rzeznik9871 w 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


#727297 EdycjaNaprawa Pluginu Menu Broni wraz z możliwością zapamiętania broni + Bezl...

Napisane przez Asiap w 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;
}

  • +
  • -
  • 2


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

Napisane przez Skull. w 15.05.2015 07:55

opis.png
Plugin nam daje:

  • Menu Broni Głównych
  • Menu Broni krótkich
  • Zapamiętuje poprzednie bronie (Po przednie bronie pod 2 w menu)
  • Bezlik magazynków.

instalacja.png
Standardowa!
 
 
cvary.png
Brak!
 
 
inneinformacje.png
Podziękowania Dla użytkownika: Asiap za pomoc przy zrobieniu zapamiętania poprzednich broni! :)

Temat gdzie mi pomogła: http://amxx.pl/topic...iu/#entry700559
 
 
download.png

Załączone pliki


  • +
  • -
  • 3