Пример #1
0
 protected function onConstruct()
 {
     $this->setLayer(\ManiaLive\Gui\Window::LAYER_CUT_SCENE);
     $this->setSize(self::SIZE_X, self::SIZE_Y);
     $this->setRelativeAlign('center', 'top');
     $this->setPosition(0, 84);
     $this->bg = new Elements\Quad(self::SIZE_X, self::SIZE_Y);
     $this->bg->setImage('file://Media/Manialinks/Common/Lobbies/header.png');
     $this->bg->setAlign('center');
     $this->addComponent($this->bg);
     $this->serverNameLabel = new Elements\Label(self::SIZE_X - 7);
     $this->serverNameLabel->setStyle(Elements\Label::TextRaceMessage);
     $this->serverNameLabel->setAlign('center', 'top');
     $this->serverNameLabel->setPosition(0, -4);
     $this->serverNameLabel->setTextSize(3);
     $this->addComponent($this->serverNameLabel);
     $this->avgWaitingTimeLabel = new Elements\Label(self::SIZE_X / 3);
     $this->avgWaitingTimeLabel->setAlign('right', 'center');
     $this->avgWaitingTimeLabel->setStyle(Elements\Label::TextRaceMessage);
     $this->avgWaitingTimeLabel->setPosition(self::SIZE_X / 2 - 5, -16);
     $this->avgWaitingTimeLabel->setTextId('avgWaiting');
     $this->avgWaitingTimeLabel->setTextSize(2);
     $this->avgWaitingTimeLabel->setOpacity(0.75);
     $this->addComponent($this->avgWaitingTimeLabel);
     $this->avgWaitingTimeHelperLabel = new Elements\Label(self::SIZE_X / 2);
     $this->avgWaitingTimeHelperLabel->setAlign('right', 'top');
     $this->avgWaitingTimeHelperLabel->setStyle(Elements\Label::TextRaceMessage);
     $this->avgWaitingTimeHelperLabel->setPosition($this->avgWaitingTimeLabel->getPosX(), -18);
     $this->avgWaitingTimeHelperLabel->setTextId('avgWaitingHelper');
     $this->avgWaitingTimeHelperLabel->setScale(0.5);
     $this->avgWaitingTimeHelperLabel->setOpacity(0.5);
     $this->addComponent($this->avgWaitingTimeHelperLabel);
     $this->playerCountLabel = new Elements\Label(self::SIZE_X / 3);
     $this->playerCountLabel->setAlign('left', 'center');
     $this->playerCountLabel->setStyle(Elements\Label::TextRaceMessage);
     $this->playerCountLabel->setPosition(-self::SIZE_X / 2 + 5, -16);
     $this->playerCountLabel->setOpacity(0.75);
     $this->playerCountLabel->setTextSize(2);
     $this->playerCountLabel->setTextid('nPlayers');
     $this->addComponent($this->playerCountLabel);
     $this->playerCountHelperLabel = new Elements\Label(self::SIZE_X / 2);
     $this->playerCountHelperLabel->setAlign('left', 'top');
     $this->playerCountHelperLabel->setStyle(Elements\Label::TextRaceMessage);
     $this->playerCountHelperLabel->setPosition($this->playerCountLabel->getPosX(), -18);
     $this->playerCountHelperLabel->setTextId('nPlayersHelper');
     $this->playerCountHelperLabel->setScale(0.5);
     $this->playerCountHelperLabel->setOpacity(0.5);
     $this->addComponent($this->playerCountHelperLabel);
 }
    public function display()
    {
        Manialink::load();
        Manialink::appendXML(Dictionary::getInstance()->getManiaLink($this->displayedText));
        Manialink::appendScript(<<<MANIASCRIPT
#RequireContext CMlScript
#Include "MathLib" as MathLib
#Include "TextLib" as TextLib
main()
{
\tdeclare Boolean countdown = True;
\tdeclare Integer countdownTime = CurrentTime;
\tdeclare Integer countdownTimeLeft = 10;
\tdeclare CMlFrame frame  <=> (Page.MainFrame.GetFirstChild("block-quit") as CMlFrame);
\tdeclare CMlLabel label <=> (Page.MainFrame.GetFirstChild("countdown-label") as CMlLabel);
\tlabel.SetText(TextLib::ToText(countdownTimeLeft));

\twhile(True)
\t{
\t\tif(countdown && countdownTimeLeft >= 0 && CurrentTime - countdownTime > 1000)
\t\t{
\t\t\tcountdownTime = CurrentTime;
\t\t\tcountdownTimeLeft = countdownTimeLeft - 1;
\t\t\tlabel.SetText(TextLib::ToText(countdownTimeLeft));
\t\t}
\t\telse if(countdown && countdownTimeLeft <= 0)
\t\t{
\t\t\tframe.Hide();
\t\t}
\t\tyield;
\t}
}
MANIASCRIPT
);
        $frame = new \ManiaLib\Gui\Elements\Frame();
        $frame->setPosition(0, 5, 0);
        $label = new Label(170);
        $label->setAlign('center', 'center2');
        $label->setStyle(Label::TextRaceMessageBig);
        $label->setTextSize(5);
        $label->setTextColor('f00');
        $label->setTextId('text');
        $frame->add($label);
        $iconBlink = new Icons128x128_Blink(15);
        $iconBlink->setAlign('right', 'center');
        $iconBlink->setPosition(-87, 0);
        $iconBlink->setSubStyle(Icons128x128_Blink::Hard);
        $frame->add($iconBlink);
        $iconBlink = new Icons128x128_Blink(15);
        $iconBlink->setAlign('left', 'center');
        $iconBlink->setPosition(87, 0);
        $iconBlink->setSubStyle(Icons128x128_Blink::Hard);
        $frame->add($iconBlink);
        $frame->save();
        $frame = new \ManiaLib\Gui\Elements\Frame();
        $frame->setPosition(0, -6.5, 10);
        $frame->setScriptEvents();
        $frame->setId('block-quit');
        $bg = new Bgs1(180, 45);
        $bg->setSubStyle(Bgs1::BgDialogBlur);
        $bg->setAlign('center');
        $bg->setScriptEvents();
        $bg->setId('background');
        $bg->setManialink('');
        $frame->add($bg);
        $bg = new Quad(180, 45);
        $bg->setBgcolor('0008');
        $bg->setAlign('center');
        $bg->setScriptEvents();
        $frame->add($bg);
        $ui = new Label(120);
        $ui->setAlign('center');
        $ui->setPosition(0, -6, 0.1);
        $ui->setStyle(Label::TextRaceMessageBig);
        $ui->setTextSize(4);
        $ui->setTextid('available');
        $frame->add($ui);
        $ui = new Label(20);
        $ui->setId('countdown-label');
        $ui->setAlign('center');
        $ui->setPosition(0, -15, 0.1);
        $ui->setStyle(Label::TextRaceMessageBig);
        $ui->setTextSize(5);
        $ui->setText('10');
        $frame->add($ui);
        $frame->save();
        return Manialink::render(true);
    }