hitzone
Engi
17.03.2013
public fw_traceline(Float:vecStart[3],Float:vecEnd[3],ignoreM,id,trace)
{
if(!is_user_connected(id))
return;
new hit = get_tr2(trace, TR_pHit);
if(!is_user_connected(hit))
return;
new hitzone = get_tr2(trace, TR_iHitgroup);
if(informacje_przedmiotu_gracza[hit][0] == 52 && hitzone != HIT_HEAD)
set_tr2(trace, TR_iHitgroup, 8);
}
Gość_21977_* 17.03.2013
#define IsPlayer(%1) (1<=%1<=maxPlayers)
new maxPlayers;
public plugin_cfg(){
maxPlayers=get_maxplayers();
}
public Ham_TraceAttack_playerPre(vid, id, Float:damage, Float:dir[3], tr, damagebits){
if(
informacje_przedmiotu_gracza[vid][0]==52
&& IsPlayer(id)
&& id!=vid
&& damagebits & DMG_BULLET
&& !random(3)
&& get_tr2(tr, TR_iHitgroup)!=HIT_HEAD
){
SetHamParamFloat(3, 0.0);
return HAM_HANDLED;
}
return HAM_IGNORED;
}
Engi
17.03.2013
public Ham_TraceAttack_playerPre(vid, id, Float:damage, Float:dir[3], tr, damagebits){
if(
informacje_przedmiotu_gracza[vid][0]==52
&& IsPlayer(id)
&& id!=vid
&& damagebits & DMG_BULLET
&& !random_num(2,4 == 1)
&& get_tr2(tr, TR_iHitgroup)!=HIT_HEAD
){
SetHamParamFloat(3, 0.0);
return HAM_HANDLED;
}
return HAM_IGNORED;
}
Tak zrobiłem i wyświetla się zamiast np 1/2 to 1/0 + po dodaniu itemu żadna klasa nie dostaje zapasowej amunicji
Gość_21977_* 17.03.2013
!random_num(2,4 == 1)Skąd w ogóle taki pomysł?
@edit. Ten kod nie powoduje wyświetlania niczego, nie wpływa też na dodawaną amunicję.
Engi
17.03.2013
Engi
17.03.2013
Gość_21977_* 17.03.2013
#define IsPlayer(%1) (1<=%1<=maxPlayers)
new maxPlayers;
public plugin_cfg(){
maxPlayers=get_maxplayers();
}
public Ham_TraceAttack_playerPre(vid, id, Float:damage, Float:dir[3], tr, damagebits){
if(
informacje_przedmiotu_gracza[vid][0]==52
&& IsPlayer(id)
&& id!=vid
&& damagebits & DMG_BULLET
&& random(8)<3
&& get_tr2(tr, TR_iHitgroup)!=HIT_HEAD
){
SetHamParamFloat(3, 0.0);
return HAM_HANDLED;
}
return HAM_IGNORED;
}
Engi
17.03.2013
GwynBleidD
18.03.2013
@playaz44, wstawiasz nam kod, w którym nie ma ani 1 linii dotyczącej wyświetlania i narzekasz, że Ci wyświetlanie nie działa? Co do Twojego ostatniego postu, chcesz teraz uzyskać odwrotność tego, o co wcześniej prosiłeś? Czy benio dał Ci kod działający odwrotnie niż chciałeś? bo nic z Twojego postu nie rozumiem..
K!113r
18.03.2013
Hmm, czy mi się dobrze wydaje, że szansa 1/3 oznacza, że mamy 33% szans, że trafimy? Co oznacza losowość... Po co wprowadzać dodatkową losowość do losowości? To tak jakbym chciał wyrzucić jedynkę, ale przy każdym rzucie losowo zmieniał kostkę na jedną z tych trzech: 2 ścienna (moneta), 3 ścienna (załóżmy, że moneta, która ma 33% szans, że spadnie na kant) i 4 ścienna... Wynik prawdopodobieństwa będzie taki sam, jak dla rzucania non stop 3 ścienną kostką... No można, ale się pytam PO CO?
@playaz44, wstawiasz nam kod, w którym nie ma ani 1 linii dotyczącej wyświetlania i narzekasz, że Ci wyświetlanie nie działa? Co do Twojego ostatniego postu, chcesz teraz uzyskać odwrotność tego, o co wcześniej prosiłeś? Czy benio dał Ci kod działający odwrotnie niż chciałeś? bo nic z Twojego postu nie rozumiem..
Zapewne jest to perk pod cod mod, przy losowaniu zdobytego perku losowana jest "losowość"
Teoretycznie takie perki mają w opisie szanse 1/lw, gdzie lw to losowana liczba, więc trochę ma sens bo perk z szansą 1/2 jest teoretycznie którzy od tego z szansą 1/6.
GwynBleidD
18.03.2013
Engi
18.03.2013
Item ma działać tak żeby obrażenia w głowę zawsze wchodziły a w reszte ciała szansa uniknięcie pocisku wynosiła 1/LW gdzie LW to wartość wybierana losowo od 1/2 do 1/4 czyli jak ktoś zdobędzie item to raz będzie miał 1/2 na uniknięcie pocisku, innego razu 1/4 a jeszcze innego 1/3, innego razu czyli jak wyrzuci item i zdobędzie go jeszcze raz, bardziej łopatologicznie nie umiem tego napisać.
A ten kod co podał benio działa tak, że kiedy strzela się w ciało to jest 1/LW szans na trafienie headshota czyli to samo co item "1/10 na headshota z AWP" który ma taki kod:
public fw_traceline(Float:vecStart[3],Float:vecEnd[3],ignoreM,id,trace)
{
if(!is_user_connected(id))
return;
new hit = get_tr2(trace, TR_pHit);
if(!is_user_connected(hit))
return;
new hitzone = get_tr2(trace, TR_iHitgroup);
if(informacje_przedmiotu_gracza[id][0] == 69 && !random(10) && get_user_weapon(id) == CSW_AWP)
set_tr2(trace, TR_iHitgroup, HIT_HEAD);
}
Edited by playaz44, 18.03.2013 15:44.
Gość_21977_* 18.03.2013
Następnie jednak pomyślałem, że chcesz średnią arytmetyczną 1/4 i 1/2, co daje 37,5%, nie 33,(3), stąd random(8)<3.
Teraz jednak dopiero widzę (bo chyba dopiero teraz to napisałeś), że kod ma losować wartość przy każdym evencie, którego kodu nam jednak nie podałeś, więc nie oczekuj gotowca, skoro nie wiemy, gdzie ten kod podać.
Pomijając to jednak, kod, który Ci podałem ma, odpowiednio w pierwszym poście 33,(3)%, a w drugim 37,5% szansy na uniknięcie pocisku, o ile nie został on wycelowany w głowę, a nie, jak napisałeś w poście wyżej, zmiany hitzone na głowę.
Nie wiem, skąd ten pomysł, gdyż nawet nie zmieniam w podanym przeze mnie kodzie, hitzone, tym bardziej, nie rozumiem Twojej odpowiedzi, zwłaszcza porównania tego kanapkowego kodu z podanym przez ciebie tracelinem fakemetowym.
Podsumowując, nie wiem już, o co ci chodzi, jeśli wyraziłeś się jasno, a nie zrozumiałem, to najmocniej przepraszam.
GwynBleidD
18.03.2013
random(8)<3
kod:
random(zmienna)
Gdzie zmienna, to LW wylosowane przy podnoszeniu itemu. Prorokami nie jesteśmy i na podstawie tego, co nam dałeś tylko tyle jesteśmy w stanie Ci podpowiedzieć. Reszta już należy do Ciebie, chyba że dasz coś więcej nam.
Engi
18.03.2013
Kod benia daje Ci 1/3 na hit w inne części ciała, niż głowa. W głowę zawsze
Właśnie to nie działa*, z tym "od 1/2 do 1/4" to fakt, mój błąd bo mogłem od razu to określić
Nie wiem, skąd ten pomysł, gdyż nawet nie zmieniam w podanym przeze mnie kodzie, hitzone, tym bardziej, nie rozumiem Twojej odpowiedzi, zwłaszcza porównania tego kanapkowego kodu z podanym przez ciebie tracelinem fakemetowym.
*Tak jak wyżej napisałem, item nie działa tak jak powinien, niby jak wpisuje /item to wyświetla się 1/2 ale każdy pocisk trafia i zabiera hp niezależnie gdzie się strzeli i kiedy strzela się w inną część ciała niż głowa to wchodzą headshoot'y a nie powinny. W porównaniu chodziło mi o to, że ten kanapkowy kod zachowuje się jak ten fakemetowy
Edited by playaz44, 18.03.2013 22:44.