←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Dawanie broni

Zablokowany

mierzwi - zdjęcie mierzwi 18.04.2011

Witam, chciałbym dać dla gracza broń i ustawić ilość naboi (chodzi o 3 naboje), akurat zrobiłem to, tylko z użyciem cstrike, ale mam pytanie, da się całość zrobić w fakemecie? To co zrobiłem:


fm_give_item(id, "weapon_awp");
cs_set_user_bpammo(id, CSW_AWP, 0);

cs_set_weapon_ammo( find_ent_by_owner( 1, "weapon_awp", id ), 3);


za help dziekuje

@edit: po szukaniu znalazłem takie coś, lecz to ustawia ilość naboi w następnym magazynku :<

const OFFSET_AWM_AMMO = 377
const OFFSET_SCOUT_AMMO = 378
const OFFSET_PARA_AMMO = 379
const OFFSET_FAMAS_AMMO = 380
const OFFSET_M3_AMMO = 381
const OFFSET_USP_AMMO = 382
const OFFSET_FIVESEVEN_AMMO = 383
const OFFSET_DEAGLE_AMMO = 384
const OFFSET_P228_AMMO = 385
const OFFSET_GLOCK_AMMO = 386
const OFFSET_FLASH_AMMO = 387
const OFFSET_HE_AMMO = 388
const OFFSET_SMOKE_AMMO = 389
const OFFSET_C4_AMMO = 390

const OFFSET_LINUX = 5
stock fm_set_user_bpammo(id, weapon, amount)
{
static offset

switch(weapon)
{
case CSW_AWP: offset = OFFSET_AWM_AMMO;
case CSW_SCOUT,CSW_AK47,CSW_G3SG1: offset = OFFSET_SCOUT_AMMO;
case CSW_M249: offset = OFFSET_PARA_AMMO;
case CSW_M4A1,CSW_FAMAS,CSW_AUG,CSW_SG550,CSW_GALI,CSW_SG552: offset = OFFSET_FAMAS_AMMO;
case CSW_M3,CSW_XM1014: offset = OFFSET_M3_AMMO;
case CSW_USP,CSW_UMP45,CSW_MAC10: offset = OFFSET_USP_AMMO;
case CSW_FIVESEVEN,CSW_P90: offset = OFFSET_FIVESEVEN_AMMO;
case CSW_DEAGLE: offset = OFFSET_DEAGLE_AMMO;
case CSW_P228: offset = OFFSET_P228_AMMO;
case CSW_GLOCK18,CSW_MP5NAVY,CSW_TMP,CSW_ELITE: offset = OFFSET_GLOCK_AMMO;
case CSW_FLASHBANG: offset = OFFSET_FLASH_AMMO;
case CSW_HEGRENADE: offset = OFFSET_HE_AMMO;
case CSW_SMOKEGRENADE: offset = OFFSET_SMOKE_AMMO;
case CSW_C4: offset = OFFSET_C4_AMMO;
default: return;
}

set_pdata_int(id, offset, amount, OFFSET_LINUX);
}

Użytkownik funfel edytował ten post 18.04.2011 20:07
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 18.04.2011

Ale po co w fakemecie lepiej w cstrike :D
cstrike łatwiej obsłuzyc to itp :)
Odpowiedz

mierzwi - zdjęcie mierzwi 18.04.2011

cały plugin jest pisany w fakemeta więc wole już ją mieć, jak coś cały moduł cstrike w fakemeta: Cstrike Module to Fakemeta [+Ham] - AlliedModders (sory za reklame)
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 18.04.2011

Spróbój coś z tym
fm_cs_get_weapon_ammo(entity)
fm_cs_set_weapon_ammo(entity, clip)
Odpowiedz

  • +
  • -
diablix - zdjęcie diablix 18.04.2011

static const _CSW_to_offset[] = {
0, OFFSET_AMMO_P228, OFFSET_AMMO_SCOUT, OFFSET_AMMO_HEGRENADE, OFFSET_AMMO_M3, OFFSET_AMMO_C4, OFFSET_AMMO_USP, OFFSET_AMMO_SMOKEGRENADE,
OFFSET_AMMO_GLOCK18, OFFSET_AMMO_FIVESEVEN, OFFSET_AMMO_USP, OFFSET_AMMO_M4A1, OFFSET_AMMO_M4A1, OFFSET_AMMO_M4A1, OFFSET_AMMO_USP, OFFSET_AMMO_GLOCK18,
OFFSET_AMMO_AWP, OFFSET_AMMO_GLOCK18, OFFSET_AMMO_M249, OFFSET_AMMO_M3, OFFSET_AMMO_M4A1, OFFSET_AMMO_GLOCK18, OFFSET_AMMO_SCOUT, OFFSET_AMMO_FLASHBANG,
OFFSET_AMMO_DEAGLE, OFFSET_AMMO_M4A1, OFFSET_AMMO_SCOUT, 0, OFFSET_AMMO_FIVESEVEN
};

fm_set_user_bpammo(client, weapon, ammo) set_pdata_int(client, _CSW_to_offset[weapon], ammo, 5);


fm_set_weapon_ammo(entity, clip) set_pdata_int(entity, 52, clip, 4);

Użytkownik diablix edytował ten post 18.04.2011 20:34
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 18.04.2011

a id bytu jest zwracane przez give_item, nie trzeba go szukać po właścicielu
Odpowiedz

mierzwi - zdjęcie mierzwi 18.04.2011

to i ja sam miałem, tylko fm_cs_set_weapon_ammo nie działa :< daje tak: fm_cs_set_weapon_ammo( find_ent_by_owner( 1, "weapon_awp", id ), 3);

całość:
fm_give_item(id, "weapon_awp");
fm_cs_set_user_bpammo(id, CSW_AWP, 0);
fm_cs_set_weapon_ammo(find_ent_by_owner(1, "weapon_awp", id), 1);
hmm? próbowałem też fm_find_ent_by_owner ale też to samo, daje ciągle awp 10 naboi, 0 magazynków :<

@edit: wszystko wygląda dobrze, dodane all itp. ale fm_cs_set_user_bpammo i fm_cs_set_weapon_ammo nie działają (dałem na test 2 magazynki i dalej było 0)

@edit2: bpammo = set_pdata_int(id, 376 + get_pdata_int(get_pdata_cbase(id, 373), 49, 4), /*ogolna ilosc naboi np. 5*/ 5);
jak na razie w aktualnym magazynku nic nie idzie wymyslić, r3x jak możesz - wymyśl coś ;d

Dodano 19 kwiecień 2011 - 20:19:
po przeszukaniu prawie całej fakemety na aliedach zrobiłem stock ~ close
Użytkownik funfel edytował ten post 18.04.2011 21:43
Odpowiedz

  • +
  • -
dram - zdjęcie dram 20.04.2011

Mhm Pochwalisz się tym stockiem?:)
Odpowiedz

mierzwi - zdjęcie mierzwi 25.04.2011

Mhm.. nie...
Odpowiedz
Zablokowany