Otrzymujący obrażenia nie dostaje XP.
Droso
04.03.2012
Witam mam problem otóż mam moda i chciałem zrobić taki myk, że jak gracz włączy sobie pancerz i ktoś go uderzy z bron to zmniejsza mu obrażenia (dzieli obrażenia) im większy lvl pancerza tym bardziej zmniejsza dmg.
Otóż nie działa anie zmniejszanie dmg a ni nie daje doswiadczenia
Otóż nie działa anie zmniejszanie dmg a ni nie daje doswiadczenia
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_gracza[idattacker]) return HAM_IGNORED; new health = get_user_health(this); new weapon = get_user_weapon(idattacker); /*Level 0*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 0) { damage /= 1.5 energia[this] -= 120 doswiadczenie_gracz[this] += 10 } /*Level 1*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 1) { damage /= 1.55 energia[this] -= 115 doswiadczenie_gracz[this] += 10 } /*Level 2*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 2) { damage /= 1.6 energia[this] -= 110 doswiadczenie_gracz[this] += 10 } /*Level 3*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 3) { damage /= 1.65 energia[this] -= 105 doswiadczenie_gracz[this] += 10 } /*Level 4*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 4) { damage /= 1.7 energia[this] -= 100 doswiadczenie_gracz[this] += 10 } /*Level 5*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 5) { damage /= 1.75 energia[this] -= 95 doswiadczenie_gracz[this] += 10 } /*Level 6*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 6) { damage /= 1.8 energia[this] -= 90 doswiadczenie_gracz[this] += 10 } /*Level 7*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 7) { damage /= 1.85 energia[this] -= 90 doswiadczenie_gracz[this] += 10 } /*Level 8*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 8) { damage /= 1.9 energia[this] -= 90 doswiadczenie_gracz[this] += 10 } /*Level 9*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 9) { damage /= 1.9 energia[this] -= 86 doswiadczenie_gracz[this] += 11 } /*Level 10*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 10) { damage /= 1.95 energia[this] -= 85 doswiadczenie_gracz[this] += 10 } /*Level 11*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 11) { damage /= 1.9 energia[this] -= 80 doswiadczenie_gracz[this] += 10 } /*Level 12*/ if(energia[this] > 100 && pancerz[this] == true && poziom_gracza[this] == 12) { damage /= 2.0 energia[this] -= 80 doswiadczenie_gracz[this] += 10 } if(weapon == CSW_KNIFE && KNIFE == 1){ damage += 35 } if(health < 2) return HAM_IGNORED; SetHamParamFloat(4, damage); return HAM_IGNORED; }P.s testuje na PodBotach
Zapalka
04.03.2012
Zapoznaj się lepiej z parametrami funkcji TakeDamage
idattacker to id gracza atakującego, nie (tak jak ty podałeś) this.
idattacker to id gracza atakującego, nie (tak jak ty podałeś) this.
Droso
04.03.2012
Widzę twoje umiejętności są genialne
Nieważne chyba sobie poradziłem
, że jak gracz włączy sobie pancerz i ktoś go uderzy z broni to zmniejsza mu obrażeniaI ? To chyba this
Nieważne chyba sobie poradziłem
Nakupenda.
04.03.2012
od razu do optymalizacji: zamień to na switcha albo conajmniej na else if'y