←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Ustawienie graczowi możliwości podnoszenia...

  • +
  • -
d0naciak's Photo 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 :
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 0
Okej, 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.
Quote

Flk's Photo Flk 30.06.2012

Ladny poradnik dużo osób tego szukało :) leci + a by wiecej takich poradnikow :)
Quote

System'ek's Photo 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?
Quote

PrO^^KoKSu's Photo PrO^^KoKSu 30.06.2012

Będzie podnosić wszystkie bronie
Quote

  • +
  • -
ToRRent's Photo 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 :D dzięki temu będziesz mógł podnosić każdą broń z ziemi
Quote

  • +
  • -
Pan PrO's Photo Pan PrO 02.07.2012

Przyda się

Leci +
Quote

Flk's Photo 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.
Quote

  • +
  • -
d0naciak's Photo d0naciak 02.07.2012

logi po debugu ?
Quote

Flk's Photo Flk 02.07.2012

tak

nie bedzie to crashowało serwa??
Quote

  • +
  • -
d0naciak's Photo d0naciak 02.07.2012

podaj caly public DotykBroni + odznacz linie 1145
Quote

Flk's Photo 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;
}
Quote

  • +
  • -
d0naciak's Photo 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
Quote

Flk's Photo 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 :)
Quote

  • +
  • -
Avexis's Photo 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ć ?:>
Quote

  • +
  • -
d0naciak's Photo d0naciak 10.07.2012

Napisz temat w odpowiednim dziale, a na pewno ktoś Ci pomoże.
Quote

  • +
  • -
RebelNight's Photo RebelNight 10.07.2012

Jak najbardziej przydatne plusik leci ;)
Quote

Daj buziaka's Photo Daj buziaka 23.02.2013

dobra poradnik.
leci +
przydał mi się a długo tego szukałem :D
tylko jeszcze jak byś umiał zrobić żeby dodać to jak by do silnika i żeby każdy mógł podnosić.
kumasz o co chodzi ? :D

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
Quote

Kalifta's Photo 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ć??

Quote

Daj buziaka's Photo Daj buziaka 17.05.2013

ziomuś lokalnie ^^

Quote

Kalifta's Photo Kalifta 18.05.2013

no kompiluje lokalnie, i error. co jest z tym??

Quote