Ustawienie graczowi możliwości podnoszenia...
d0naciak
30.06.2012
Witam, w tym poradniku zaprezentować chciałbym nową funkcję natywną do codmoda, umożliwaiającą włączenie/wyłączenie możliwości blokowania podnoszenia broni graczowi.
Pierw otwieramy nasze *.sma CodModa i tworzymy nową zmienną globalną poprzez dodanie nad plugin_init() tego :
W publicu CurWeapon edytujemy odpowiednio warunek, aby nie wyrzucało broni przy ich podniesieniu
W publicu DotykBroni, dodajemy warunek, który zabrania podneszenia broni, gdy mamy włączoną blokade, a więc pod :
Teraz do publica UsunUmiejetnosci(id) dodajemy to :
Dzięki temu, kiedy gracz wejdzie na serwer, bedzie miał od razu włączoną blokade.
Na koniec wystarczy zarejestrowac natywy, robimy to poprzez dodanie do plugin_natives() tego :
Koniec edycji sma, przechodzimy do codmod.inc oraz na jego koniec dodajemy takie linijki :
Oczywiście należy także cvar cod_weaponsblocking ustawić na 0 w addons/amxmodx/configs/codmod.cfg
Koniec, nie zapomnijcie przekompilowac sma codmoda a takze klasy
Edited by d0n tHe Pr0oo, 02.07.2012 21:00.
Pierw otwieramy nasze *.sma CodModa i tworzymy nową zmienną globalną poprzez dodanie nad plugin_init() tego :
new blokada_broni[33];Na sam koniec kodu dodajemy następujące publici :
public UstawBlokadeBroni(id, wartosc) blokada_broni[id] = wartosc; public SprawdzBlokadeBroni(id) return blokada_broni[id];
W publicu CurWeapon edytujemy odpowiednio warunek, aby nie wyrzucało broni przy ich podniesieniu
if(!(1<<bron & bronie))trzeba zamienić na
if(!(1<<bron & bronie) && blokada_broni[id])
W publicu DotykBroni, dodajemy warunek, który zabrania podneszenia broni, gdy mamy włączoną blokade, a więc pod :
if(!is_user_connected(id)) return HAM_IGNORED;dodajemy
if(!blokada_broni[id]) return HAM_IGNORED;
Teraz do publica UsunUmiejetnosci(id) dodajemy to :
blokada_broni[id] = 1;
Dzięki temu, kiedy gracz wejdzie na serwer, bedzie miał od razu włączoną blokade.
Na koniec wystarczy zarejestrowac natywy, robimy to poprzez dodanie do plugin_natives() tego :
register_native("cod_set_user_weaponsblocking", "UstawBlokadeBroni", 1); register_native("cod_get_user_weaponsblocking", "SprawdzBlokadeBroni", 1);
Koniec edycji sma, przechodzimy do codmod.inc oraz na jego koniec dodajemy takie linijki :
native cod_set_user_weaponsblocking(id, wartosc); //Ustawia graczowi blokade broni (1 włącza, 0 wyłącza) native cod_get_user_weaponsblocking(id); // Zwraca 1, jezeli gracz ma wł. blokade, w przeciwnym wypadku zwraca 0Okej, juz prawie gotowe, wystarczy zrobić np. klase, ktora bedzie mogla podniesc kazdą broń, robimy to poprzez dodanie do cod_class_enabled(id) tego
cod_set_user_weaponsblocking(id, 0);a także w cod_class_disabled dodajemy to
cod_set_user_weaponsblocking(id, 1);
Oczywiście należy także cvar cod_weaponsblocking ustawić na 0 w addons/amxmodx/configs/codmod.cfg
Koniec, nie zapomnijcie przekompilowac sma codmoda a takze klasy
Edited by d0n tHe Pr0oo, 02.07.2012 21:00.
System'ek 30.06.2012
Dajmy na to, że klasa Amadeusza ma na start MP5. Moje pytanie brzmi czy będzie ona podnosiła tylko inne MP5 czy też np. AWP?
ToRRent
01.07.2012
Dajmy na to, że klasa Amadeusza ma na start MP5. Moje pytanie brzmi czy będzie ona podnosiła tylko inne MP5 czy też np. AWP?
To jest nawet przy blokadzie dzięki temu będziesz mógł podnosić każdą broń z ziemi
Flk 02.07.2012
L 07/02/2012 - 16:44:08: [AMXX] [0] QTM_CodMod.sma::DotykBroni (line 1145)
L 07/02/2012 - 16:44:08: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
Edited by Arek :P, 02.07.2012 20:11.
L 07/02/2012 - 16:44:08: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
Edited by Arek :P, 02.07.2012 20:11.
Flk 02.07.2012
public DotykBroni(weapon, id)
{
if(get_pcvar_num(cvar_blokada_broni) < 1)
return HAM_IGNORED;
1145 if(!blokada_broni[id])
return HAM_IGNORED;
if(!is_user_connected(id))
return HAM_IGNORED;
new model[23];
pev(weapon, pev_model, model, 22);
if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1)
return HAM_IGNORED;
return HAM_SUPERCEDE;
}
d0naciak
02.07.2012
public DotykBroni(weapon, id)
{
if(get_pcvar_num(cvar_blokada_broni) < 1)
return HAM_IGNORED;
if(!is_user_connected(id))
return HAM_IGNORED;
if(!blokada_broni[id])
return HAM_IGNORED;
new model[23];
pev(weapon, pev_model, model, 22);
if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1)
return HAM_IGNORED;
return HAM_SUPERCEDE;
}
sprobuj tego
Flk 02.07.2012
na razie nie ma logów dzięki wielkie
dzięki tobie mój cod znów jest czysty od errorow
dzięki tobie mój cod znów jest czysty od errorow
Avexis
10.07.2012
L 07/10/2012 - 11:35:05: [AMXX] [0] QTM_CodMod_671726.sma::WezBron (line 1416)
L 07/10/2012 - 11:35:05: Unhandled dynamic native error\
Error logi, co zrobić ?
L 07/10/2012 - 11:35:05: Unhandled dynamic native error\
Error logi, co zrobić ?
Daj buziaka 23.02.2013
dobra poradnik.
leci +
przydał mi się a długo tego szukałem
tylko jeszcze jak byś umiał zrobić żeby dodać to jak by do silnika i żeby każdy mógł podnosić.
kumasz o co chodzi ?
no a ja chciałem dodać żeby przekomplikować lokalnie.
i dodać swojego codmod.inc do include w kompilatorze
bo widziałem wczoraj jeden gracz napisał że na błędy podczas komplikacji na amxx :PP
leci +
przydał mi się a długo tego szukałem
tylko jeszcze jak byś umiał zrobić żeby dodać to jak by do silnika i żeby każdy mógł podnosić.
kumasz o co chodzi ?
Koniec, nie zapomnijcie przekompilowac sma codmoda a takze klasy
no a ja chciałem dodać żeby przekomplikować lokalnie.
i dodać swojego codmod.inc do include w kompilatorze
bo widziałem wczoraj jeden gracz napisał że na błędy podczas komplikacji na amxx :PP
Kalifta 17.05.2013
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team
Error: Undefined symbol "cod_set_user_weaponsblocking" on line 34
Error: Undefined symbol "cod_set_user_weaponsblocking" on line 40
2 Errors.
Could not locate output file C:\Documents and Settings\Damian\Moje dokumenty\Pobieranie\codclass_Lacznik.amx (compile failed).
Buguje przy kompilacji klasy, co jeszcze dopisać??