Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
[ROZWIĄZANE] ustawianie graczowi tlumik na usp/m4a1 przez offset
Najlepsza odpowiedź GwynBleidD, 17.01.2014 16:21
Bo w złym miejscu wykonujesz to.
Forward cod_class_enabled wykona się w momencie, gdy gracz wybierze z menu podaną klasę. Nie wykona się ani razu więciej... Więc gdy posiada usp i m4 w momencie wyboru klasy, zostanie mu tłumik na te bronie założony...
Musisz wychwycić kupno/podniesienie broni i wtedy tłumik zakładać. Oczywiście jeśli gracz posiada daną klasę.
Uwaga! Nie zakładaj w evencie weapon change, bo po 1 doprowadzisz ludzi do szału (nie będzie się dało tłumików zdjąć), a po 2 będzie to wykonywało się o dużo za dużo razy
Przejdź do postu#1
Napisano 13.01.2014 19:30
Chcialbym sie dowiedziec jak ustawic tlumik graczowi poprzes set_pdata_int(id, x, x)
jak to zrobic?
#2
Napisano 13.01.2014 20:39
znalezione w pliku usp.inc
#define m_fWeaponState_Usp 74 //(int) Bit flag status of weapon silencer/shield. #define CBASE_WEAPONSTATE_USP_SILENCED ( 1 << 0 ) #define CBASE_WEAPONSTATE_M4A1_SILENCED ( 1 << 2 ) #define CBASE_WEAPONSTATE_SHIELD_ARMED ( 1 << 5 )
musisz tylko wiedzieć, że to dla id enta broni (nie mylić z id broni)
czyli np. dla USP
new ent = find_ent_by_owner(-1, "weapon_usp", id)
if(ent) set_pdata_int(ent, m_fWeaponState_Usp, get_pdata_int(ent, m_fWeaponState_Usp, 4) | CBASE_WEAPONSTATE_USP_SILENCED, 4)
oraz dla m4a1
new ent = find_ent_by_owner(-1, "weapon_m4a1", id)
if(ent) set_pdata_int(ent, m_fWeaponState_Usp, get_pdata_int(ent, m_fWeaponState_Usp, 4) | CBASE_WEAPONSTATE_M4A1_SILENCED, 4)
Oczywiście wszystkie te #define musisz wszystko zdefiniować w pluginie.
Niestety nie znalazłem sumy bitowej na demontaż tłumików dla usp/m4a1.
Oczywiście nie testowałem, więc nie daję gwarancji, że zadziała.
Sprzedam:
System odznak premium do BF2 Rank Mod (dodatkowy sposób na zarobek)
Więcej Informacji na STEAM/GG/PW
#3
Napisano 13.01.2014 21:21
A moglbys podac taki kod:
if(ma tlumik)
...
Else
...
#4
Napisano 13.01.2014 22:27
new ent = find_ent_by_owner(-1, "weapon_usp", id) // tu daj albo "weapon_usp", albo "weapon_m4a1"if(ent)
if(get_pdata_int(ent, m_fWeaponState_Usp, 4) & CBASE_WEAPONSTATE_USP_SILENCED) // sytuacja, gdy jest zamontowany tłumik (w tym przypadku USP, dla m4a1 stosuj CBASE_WEAPONSTATE_M4A1_SILENCED)
{
...
}
else // sytuacja, kiedy NIE jest
{
...
}
Sprzedam:
System odznak premium do BF2 Rank Mod (dodatkowy sposób na zarobek)
Więcej Informacji na STEAM/GG/PW
#5
Napisano 15.01.2014 18:39
cos to nie chce mi dzialac
#include <amxmodx> #include <codmod> #include <engine> #include <fakemeta> #define m_fWeaponState_Usp 74 //(int) Bit flag status of weapon silencer/shield. #define CBASE_WEAPONSTATE_USP_SILENCED ( 1 << 0 ) #define CBASE_WEAPONSTATE_M4A1_SILENCED ( 1 << 2 ) new const nazwa[] = "Cichy"; new const opis[] = "Ma od razu zalozony tlumik na usp i m4a1"; new const bronie = (1<<CSW_USP)|(1<<CSW_M4A1); new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 5; new const wytrzymalosc = 10; public plugin_init() { register_plugin(nazwa, "1.0", "TibacK"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); } public cod_class_enabled(id) { new ent1 = find_ent_by_owner(-1, "weapon_usp", id) new ent2 = find_ent_by_owner(-1, "weapon_m4a1", id) if(ent1) set_pdata_int(ent1, m_fWeaponState_Usp, get_pdata_int(ent1, m_fWeaponState_Usp, 4) | CBASE_WEAPONSTATE_USP_SILENCED, 4) if(ent2) set_pdata_int(ent2, m_fWeaponState_Usp, get_pdata_int(ent2, m_fWeaponState_Usp, 4) | CBASE_WEAPONSTATE_M4A1_SILENCED, 4) }
Zrobilem tak jak ty podałes
#6
Napisano 17.01.2014 16:21 Najlepsza odpowiedź
Bo w złym miejscu wykonujesz to.
Forward cod_class_enabled wykona się w momencie, gdy gracz wybierze z menu podaną klasę. Nie wykona się ani razu więciej... Więc gdy posiada usp i m4 w momencie wyboru klasy, zostanie mu tłumik na te bronie założony...
Musisz wychwycić kupno/podniesienie broni i wtedy tłumik zakładać. Oczywiście jeśli gracz posiada daną klasę.
Uwaga! Nie zakładaj w evencie weapon change, bo po 1 doprowadzisz ludzi do szału (nie będzie się dało tłumików zdjąć), a po 2 będzie to wykonywało się o dużo za dużo razy
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
#7
Napisano 17.01.2014 21:22
@up
Dzięki.
Zrobilem to tak aby w czasie freezetime zakladalo.
ROZWIAZANE
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych