This repository has been archived on 2024-07-18. You can view files and clone it, but cannot push or open issues or pull requests.
lwb5/scripts/game/beta5/player/library/breakProtection.inc

54 lines
1.3 KiB
PHP

<?php
//-----------------------------------------------------------------------
// LegacyWorlds Beta 5
// Game libraries
//
// beta5/player/library/breakProtection.inc
//
// This function causes a player to break from protection by the
// Peacekeepers.
//
// Parameters:
// $playerID ID of the player
// $breakType Either 'ACT' or 'BRK'
//
// Copyright(C) 2004-2008, DeepClone Development
//-----------------------------------------------------------------------
class beta5_player_breakProtection {
public function __construct($lib) {
$this->lib = $lib;
$this->db = $this->lib->game->db;
$this->msgs = $this->lib->game->getLib('beta5/msg');
}
public function run($playerID, $breakType) {
// Get protection level and system ID
$q = $this->db->query(
"SELECT s.id, s.prot FROM system s "
. "WHERE s.id IN (SELECT DISTINCT p.system FROM planet p WHERE p.owner = $playerID) "
. "FOR UPDATE"
);
if (dbCount($q) != 1) {
return 0;
}
list($systemID, $protLevel) = dbFetchArray($q);
if ($protLevel == 0) {
return;
}
// Set the system's protection level to 0
$this->db->query("UPDATE system SET prot = 0 WHERE id = $systemID");
$this->db->query("DELETE FROM pk_sys_status WHERE system = $systemID");
// Send message
$this->msgs->call('send', $playerID, 'endprotection', array(
'end_type' => $breakType
));
}
}
?>