←  Gotowe funkcje

AMXX.pl: Support AMX Mod X i SourceMod

»

Dodanie broni dla gracza + ammo

  • +
  • -
sebul's Photo sebul 10.11.2011

Funkcja przyda się jeśli chcemy od razu dać komuś broń razem z ammo.
stock const WA_PRI_WEAPONS = ((1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90));
stock const WA_SEC_WEAPONS = ((1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE));
stock const WA_GRENADES = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG));
stock const WA_NO_WEAPONS = ((1<<0)|(1<<2)|(1<<CSW_VEST)|(1<<CSW_VESTHELM));

stock const maxClip[] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, 1, 50, 0, 0 };
stock const maxAmmo[] = { -1, 52, -1, 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, 1, 100, 0, 0 };

enum WeaponType {
WTEmpty = 0,
WTPistol,
WTPrimary,
WTGrenade,
WTBomb,
WTKnife
}

stock const WeaponType:g_weapons[] = {
WTEmpty,
WTPistol,
WTEmpty,
WTPrimary,
WTGrenade,
WTPrimary,
WTBomb,
WTPrimary, WTPrimary,
WTGrenade,
WTPistol, WTPistol,
WTPrimary, WTPrimary, WTPrimary, WTPrimary,
WTPistol, WTPistol,
WTPrimary, WTPrimary, WTPrimary, WTPrimary, WTPrimary, WTPrimary, WTPrimary,
WTGrenade,
WTPistol,
WTPrimary, WTPrimary,
WTKnife,
WTPrimary
};

stock give_weapon(id, weap = 0, ammo = 0, clip = -1) {
if(!is_user_alive(id))
return;

if(weap <= 0 || weap > 30) weap = random_num(1,30);

if(!((1<<weap) & (WA_PRI_WEAPONS|WA_SEC_WEAPONS))) {
give_weapon(id, _, ammo, clip);
return;
}

new weaponname[32];
get_weaponname(weap, weaponname, 31);

give_item(id, weaponname);
if(ammo != 0) cs_set_user_bpammo(id, weap, ammo < 0 ? maxAmmo[weap] : ammo);
if(clip >= 0 && clip < maxClip[weap]) {
new went = find_ent_by_owner(-1, weaponname, id);
if(is_valid_ent(went)) cs_set_weapon_ammo(went, clip);
}
}


I teraz chcąc dać komuś jakąś broń robimy to tak
give_weapon(id, CSW_M4A1); // gracz dostanie m4 bez dodatkowej amunicji
give_weapon(id, CSW_USP, 20); // gracz dostanie usp i 20 dodatkowej amunicji
give_weapon(id, CSW_AWP, 20, 1); // gracz dostanie awp i 20 dodatkowej amunicji oraz 1 nabojem w magazynku
give_weapon(id, CSW_FAMAS, -1); // gracz dostanie famasa i max dodatkowej amunicji dla tej broni
give_weapon(id, CSW_MP5NAVY, _, 2); // gracz dostanie mp5 bez dodatkowej amunicji z 2 nabojami w magazynku
give_weapon(id, _, -1); // gracz dostanie losową broń i max dodatkowej amunicji dla tej broni
give_weapon(id); // gracz dostanie losową broń bez dodatkowej amunicji


Wymagane biblioteki:
- fun
- cstrike
- engine

Attached Files

Quote

  • +
  • -
Fili:P's Photo Fili:P 10.11.2011

o_O fajne chętnie będę używał, leci +
Quote

  • +
  • -
Haliax's Photo Haliax 26.02.2012

Tu chodzi o bron dla konkretnego gracza co runde czy dla wszystkich?
Quote

  • +
  • -
sebul's Photo sebul 26.02.2012

Tu chodzi o bron dla konkretnego gracza co runde czy dla wszystkich?

"Dodanie broni dla gracza + ammo"
Quote

  • +
  • -
Haliax's Photo Haliax 26.02.2012

No czyli dla okreslonego gracza, mozna to zrobic na jakas flage czy cos?
Quote

  • +
  • -
Misiaczek ;c's Photo Misiaczek ;c 26.02.2012

No czyli dla okreslonego gracza, mozna to zrobic na jakas flage czy cos?


można
Quote

  • +
  • -
Misiaczek ;c's Photo Misiaczek ;c 26.02.2012

Plik weapon.inc

w pluginie tylko dopisujecie

#include <weapon>

w pliku inc sa definicje ze w przypadku braku funa i csrike w pluginie to je z automatu doda
sebul (27.02.2012 22:15):
Dodałem do pierwszego posta ^^

Attached Files

Quote

  • +
  • -
sebul's Photo sebul 26.12.2012

Trochę zmieniłem sposób sprawdzania, czy dawana rzecz, jest bronią do strzelania. Później pewnie dodam jeszcze możliwość zmieniania początkowej ilości amunicji w aktualnym magazynku.
sebul (26.12.2012 14:57):
"Później pewnie dodam jeszcze możliwość zmieniania początkowej ilości amunicji w aktualnym magazynku."
Dodane.
Quote

  • +
  • -
tiger3153's Photo tiger3153 28.02.2013

Przyda się
Quote

  • +
  • -
sebul's Photo sebul 28.02.2013

Funkcja poprawiona, bo w sumie nawet nie wiem kiedy to się stało, ale był poważny błąd w jednym warunku, który zresztą był na tyle poważny, że na pewno przy pierwszej wersji był on poprawny, ale musiało się coś popsuć przy którejś edycji postu.

Quote

  • +
  • -
vanillah's Photo vanillah 31.07.2016

czy tylko u mnie ta funkcja dziala dziwnie? jak mam

 give_weapon(id, CSW_FAMAS, -1); 

to dodaje mi losową broń, lub nawet dwie

Quote

  • +
  • -
Rivit's Photo Rivit 01.08.2016

Dodaj broń przez give_item i ustaw ammo przez cs_set_user_bpammo i elo
Quote

  • +
  • -
vanillah's Photo vanillah 01.08.2016

^ ale ja nie chcę zrobić tego w ten sposób
Quote

  • +
  • -
sebul's Photo sebul 03.08.2016

A jaka wersja amxmoda?

Quote