←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Jak zrobić bezlik ammo z wybranej broni.

  • +
  • -
Danio7 - zdjęcie Danio7 22.01.2014

Jak w temacie prosiłbym o rozpisanie w postaci includów rejestru i kodu.
 
Odpowiedz

  • +
  • -
Halucyn - zdjęcie Halucyn 22.01.2014

Bilioteki:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

Zmienna:

new CSW_MAXAMMO[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}

W plugin_init()

register_event("CurWeapon", "event_curweapon", "be", "1=1")

A na dole tworzysz nową funkcję publiczną:

public event_curweapon(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_MAXAMMO[weaponID])
cs_set_user_bpammo(id, weaponID, CSW_MAXAMMO[weaponID])

return PLUGIN_CONTINUE;
}
Odpowiedz

  • +
  • -
Danio7 - zdjęcie Danio7 22.01.2014

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

a jak to ma wyglądąć na jedną broń np. XM 1014

Odpowiedz

  • +
  • -
Halucyn - zdjęcie Halucyn 22.01.2014

Nie nie to działa inaczej. Chodzi o to, że nie można mieć bezliku w tych przedmiotach o których napisałeś. Np powielać C4. 

 

Bezlik będziesz miał we wszystkich broniach (bonie dodajesz normalnie do klasy) oprócz tych właśnie tam wymienionych.

 

Czyli jeśli wstawisz do klasy, która ma XM1014 ten kod będzie ona również miała bezlik na tej broni.


Użytkownik Halucyn edytował ten post 22.01.2014 12:33
Odpowiedz

  • +
  • -
Danio7 - zdjęcie Danio7 22.01.2014

można close
Jednak nie może ktoś z tym pomóc jak mieć bezlik z jednej broni?
Odpowiedz

  • +
  • -
Halucyn - zdjęcie Halucyn 22.01.2014

Zrób tak:

Usuń to:
if(weaponID==CSW_C4 || weaponID==CSW_KNIFE || weaponID==CSW_HEGRENADE || weaponID==CSW_SMOKEGRENADE || weaponID==CSW_FLASHBANG)
return PLUGIN_CONTINUE;

I ostatni if zamień na:

if(weaponID==CSW_XM1014 && cs_get_user_bpammo(id,weaponID)!=CSW_MAXAMMO[weaponID])
cs_set_user_bpammo(id, weaponID, CSW_MAXAMMO[weaponID])

Jak chcesz zmienić broń, zmieniasz nazwę tam gdzie xm1014. Kod bez code i może go troche rozstrzelić, bo na komórce jestem.
Użytkownik Halucyn edytował ten post 22.01.2014 19:44
Odpowiedz

  • +
  • -
RasiaQ - zdjęcie RasiaQ 22.01.2014

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

 

na to:

new weaponID= read_data(2)
if(weaponID==CSW_BRON)
return PLUGIN_CONTINUE;

 

Spróbuj :D

Odpowiedz

  • +
  • -
Halucyn - zdjęcie Halucyn 22.01.2014

RasiaQ a to nie będzie tak, że plugin będzie dalej wykonywany?

Popatrz: Jeśli ma broń to będzie kontynuowało, a jeśli nie ma tej broni to pominie ifa i dalej będzie wykonywało.

To co napiałaś nie zadziała. Lepiej tak jak ja napisałem dodać warunek do drugiego if.
Odpowiedz

  • +
  • -
Danio7 - zdjęcie Danio7 23.01.2014

Nie działa żaden

Odpowiedz

  • +
  • -
Halucyn - zdjęcie Halucyn 23.01.2014

Musiałeś coś źle zrobić... Klasa się skompilowała?

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <codmod>

new const nazwa[] = "bezlik z xm1014";
new const opis[] = "Brak";
new const bronie = 1<<CSW_XM1014;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new CSW_MAXAMMO[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() {
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("CurWeapon", "event_curweapon", "be", "1=1")
}

public event_curweapon(id)
{

if(!is_user_alive(id))
return PLUGIN_CONTINUE;

new weaponID= read_data(2)

if(weaponID==CSW_XM1014 && cs_get_user_bpammo(id, weaponID)!=CSW_MAXAMMO[weaponID]) {
cs_set_user_bpammo(id, weaponID, CSW_MAXAMMO[weaponID])
}

return PLUGIN_CONTINUE;
}

Takie coś masz?

Odpowiedz

  • +
  • -
Danio7 - zdjęcie Danio7 23.01.2014

Już mam można close + dla was za starania

 

Odpowiedz