本文整理汇总了PHP中game::calc_rank_diff方法的典型用法代码示例。如果您正苦于以下问题:PHP game::calc_rank_diff方法的具体用法?PHP game::calc_rank_diff怎么用?PHP game::calc_rank_diff使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类game
的用法示例。
在下文中一共展示了game::calc_rank_diff方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: health_calc_rankpoints
/**
* Kalkuler antall rankpoeng man får ved å skade en spiller
* @param player $up offeret
* @param bool $killed ble spilleren drept
* @param bool $skadeprosent
*/
public function health_calc_rankpoints($up, $killed, $skadeprosent = null)
{
// hvilken rank ble angrepet?
if ($up->rank['pos_id']) {
// spesialrank
if ($killed) {
$table =& weapon::$rankpoeng_success_special;
} else {
$table =& weapon::$rankpoeng_try_special;
}
$rank_num = count(game::$ranks['pos']) - game::$ranks['pos'][$up->rank['pos_id']]['number'] + 1;
} else {
// normal rank
if ($killed) {
$table =& weapon::$rankpoeng_success;
} else {
$table =& weapon::$rankpoeng_try;
}
$rank_num = $up->rank['number'];
}
// finn verdien hvis den finnes, hvis ikke bruk den høyeste verdien
if (isset($table[$rank_num])) {
$value = $table[$rank_num];
} else {
$value = end($table[$rank_num]);
}
// sett i forhold til rankforskjellen
$rankdiff = game::calc_rank_diff($this, $up);
if ($rankdiff < weapon::RANKPOENG_RATIO_LOW) {
$rankdiff = weapon::RANKPOENG_RATIO_LOW;
} elseif ($rankdiff > weapon::RANKPOENG_RATIO_HIGH) {
$rankdiff = weapon::RANKPOENG_RATIO_HIGH;
}
$value *= weapon::$rankpoeng_ratio[$rankdiff];
// sett i perspektiv med skadeprosent
if (!$killed && $skadeprosent !== null) {
$value *= $skadeprosent;
}
return round($value);
}
示例2: calc_weight
/**
* Kalkuler beskyttelse man får med vektpoengene
* @param player $up spiller som angriper
*/
public function calc_weight(player $up)
{
$vekt = 0;
// sjekk for broderskapmedlemskap
$result = \Kofradia\DB::get()->query("SELECT MIN(ffm_priority) FROM ff_members WHERE ffm_up_id = {$this->up->id} AND ffm_status = 1");
$pos = $result->fetchColumn(0);
if ($pos) {
if (isset(self::$vekt_familie[$pos])) {
$vekt += self::$vekt_familie[$pos];
} else {
// finn nærmeste verdi
if ($pos < 1) {
$vekt += reset(self::$vekt_familie);
} else {
$vekt += end(self::$vekt_familie);
}
}
}
// sjekk for rankforskjeller
if ($up) {
// ren rankforskjell
$diff = abs(game::calc_rank_diff($up, $this->up));
// har vi den bestemt?
if (isset(self::$vekt_rankdiff[$diff])) {
$vekt += self::$vekt_rankdiff[$diff];
} elseif ($diff != 0) {
// hent maksimalt (må være over 0, som tilsier at vi kan velge siste alternativ)
$vekt += end(self::$vekt_rankdiff);
}
// spesialrank
$diff = game::calc_specrank_diff($up, $this->up);
if ($diff > 0) {
if (isset(self::$vekt_specrankdiff[$diff])) {
$vekt += self::$vekt_specrankdiff[$diff];
} else {
// bruk siste mulighet
$vekt += end(self::$vekt_specrankdiff);
}
}
}
// maksimalt kan den være 0,5
return min($vekt, 0.5);
}