Nazwa: Polaris
Opis: Obrażenie lepsze o 15% ( z każdej broni )
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.
|
Napisano 26.12.2016 22:50
Nazwa: Polaris
Opis: Obrażenie lepsze o 15% ( z każdej broni )
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 26.12.2016 23:24
Sprawdź czy na pewno 15% więcej zadaje, słaby w tym jestem
#include <amxmodx> #include <codmod> #include <hamsandwich> new const nazwa[] = "Polaris"; new const opis[] = "15%% wieksze obrazenia z kazdej broni"; new const bronie = 1<<CSW_M3; new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 0; new const wytrzymalosc = 0; public plugin_init() { register_plugin(nazwa, "1.0", "QTM_Peyote"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_TakeDamage, "player","fwTakeDamage",0); } public fwTakeDamage(victim, inflictor, attacker, Float:damage, damagebits) { if(damagebits & DMG_BULLET) damage*=0.15 SetHamParamFloat(4,damage) return HAM_IGNORED; }
edit.
Możesz też zamienić funkcje na
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); return HAM_IGNORED; }
lub dla bezpieczeństwa dodać sprawdzanie czy ma klase
cod_class_enabled(id)
{
ma_klase[id] = true;
}
i
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(ma_klase[idattacker]) cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); return HAM_IGNORED; }
Użytkownik NEQU# edytował ten post 26.12.2016 23:53
Napisano 27.12.2016 10:06
Sprawdź czy na pewno 15% więcej zadaje, słaby w tym jestem
#include <amxmodx> #include <codmod> #include <hamsandwich> new const nazwa[] = "Polaris"; new const opis[] = "15%% wieksze obrazenia z kazdej broni"; new const bronie = 1<<CSW_M3; new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 0; new const wytrzymalosc = 0; public plugin_init() { register_plugin(nazwa, "1.0", "QTM_Peyote"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_TakeDamage, "player","fwTakeDamage",0); } public fwTakeDamage(victim, inflictor, attacker, Float:damage, damagebits) { if(damagebits & DMG_BULLET) damage*=0.15 SetHamParamFloat(4,damage) return HAM_IGNORED; }edit.
Możesz też zamienić funkcje na
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); return HAM_IGNORED; }lub dla bezpieczeństwa dodać sprawdzanie czy ma klase
cod_class_enabled(id)
{
ma_klase[id] = true;
}
i
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(ma_klase[idattacker]) cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); return HAM_IGNORED; }
A jak sprawdzić czy zadaje 15% wiecej ?
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 27.12.2016 11:12
No proste, standardowe dmg z broni np. ak + dolicz 15% tego, uderz kogos i się dowiesz.
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(ma_klase[idattacker]) cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); return HAM_IGNORED; }
to na 100% zadziała
Napisano 27.12.2016 13:24
damage*=0.15
SetHamParamFloat(4,damage)
Matematyka?
damage = 70.0
damage *= 0.15 --> damage = damage*0.15 --> damage = 70.0*0.15 --> damage = 10.5
SetHamParamFloat(4,damage) --> SetHamParamFloat(4,10.5)
Koniec końców redukujemy obrażenia do 15%, a nie je zwiększamy.
Więc należy to ująć tak:
public fwTakeDamage(victim, inflictor, attacker, Float:damage, damagebits) { if(is_user_connected(attacker) && ma_klase[attacker] && damagebits & DMG_BULLET) { damage*=1.15; SetHamParamFloat(4,damage); } return HAM_IGNORED; }
Użytkownik _McHappy edytował ten post 27.12.2016 13:28
Napisano 27.12.2016 13:27
No proste, standardowe dmg z broni np. ak + dolicz 15% tego, uderz kogos i się dowiesz.
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(ma_klase[idattacker]) cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); return HAM_IGNORED; }to na 100% zadziała
A taki kod będzie poprawny?
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_klase[idattacker]) return HAM_IGNORED; cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); if(damagebits & DMG_BULLET) { new weapon = get_user_weapon(idattacker); if(weapon == CSW_HEGRENADE) cod_inflict_damage(idattacker, this, damage*2.0, 0.0, idinflictor, damagebits); } return HAM_IGNORED; }
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 27.12.2016 13:38
if(damagebits & DMG_BULLET) { new weapon = get_user_weapon(idattacker); if(weapon == CSW_HEGRENADE) cod_inflict_damage(idattacker, this, damage*2.0, 0.0, idinflictor, damagebits); }
Tak, ale w nierealnych okolicznościach
Gracz strzela gracza i zanim pocisk dotrze do celu, zmienia broń na granat - tylko wtedy aktywują się podwojone obrażenia z granata
Poza tym metoda ta nie podwaja, a potraja zadane obrażenia ("naturalne" obrażenia damage + "sztuczne" obrażenia wywołane funkcją Cod Mod'a.
Jeżeli chcesz zmodyfikować obrażenia z granata, polecam tę metodę:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_klase[idattacker]) return HAM_IGNORED; cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); if(damagebits & DMG_HEGRENADE) SetHamParamFloat(4, 2*damage) return HAM_IGNORED; }
+ poniżej sekcji <include> dodaj:
#define DMG_HEGRENADE (1<<24)
Ale z opisu klasy nie wynika, że miałaby ona mieć dodatkowe obrażenia z granata
Użytkownik _McHappy edytował ten post 27.12.2016 13:44
Napisano 27.12.2016 13:46
if(damagebits & DMG_BULLET) { new weapon = get_user_weapon(idattacker); if(weapon == CSW_HEGRENADE) cod_inflict_damage(idattacker, this, damage*2.0, 0.0, idinflictor, damagebits); }Tak, ale w nierealnych okolicznościach
Gracz strzela gracza i zanim pocisk dotrze do celu, zmienia broń na granat - tylko wtedy aktywują się podwojone obrażenia z granata
Poza tym metoda ta nie podwaja, a potraja zadane obrażenia ("naturalne" obrażenia damage + "sztuczne" obrażenia wywołane funkcją Cod Mod'a.
Jeżeli chcesz zmodyfikować obrażenia z granata, polecam tę metodę:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_klase[idattacker]) return HAM_IGNORED; cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); if(damagebits & DMG_HEGRENADE) SetHamParamFloat(4, 2*damage) return HAM_IGNORED; }+ poniżej sekcji <include> dodaj:
#define DMG_HEGRENADE (1<<24)Ale z opisu klasy nie wynika, że miałaby ona mieć dodatkowe obrażenia z granata
Czyli ten kod będzie najlepszy:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_klase[idattacker]) return HAM_IGNORED; if(damagebits & DMG_HEGRENADE) SetHamParamFloat(4, 2*damage) cod_inflict_damage(idattacker, this, damage*0.15, 0.0, idinflictor, damagebits); }
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 27.12.2016 13:49
Potestuj i zobaczymy, czy Ci pasuje
CoD Nowy
Moc Medyka - problemPugin mocmedyka włącza się w klasie w której nie powinien Napisany przez scythe1, 09.02.2023 cod nowy, mocmedyka, codnowy i 1 więcej |
|
||||
|
Klasa
[ROZWIĄZANE] poźba o klase odrodzenieNapisany przez Anonimowy09, 03.02.2023 klasa |
|
|||
Klasa
Poszukuje KlasNapisany przez Aquamarina, 03.01.2023 klasa |
|
||||
|
Klasa
[KOSZ] klasaklasa Napisany przez Anonimowy09, 30.12.2022 klasa |
|
|||
|
Klasa
[KOSZ] klasaklasa Napisany przez Anonimowy09, 30.12.2022 klasa |
|
0 użytkowników, 0 gości, 0 anonimowych