コード例 #1
0
ファイル: skin.php プロジェクト: qexyorg/webMCR-1
function ShowSkin($mini = false, $name = false, $isFemale = false, $saveBuffer = false)
{
    global $site_ways;
    loadTool('skin.class.php');
    if ($isFemale !== false) {
        $cloak = false;
        $skin = MCRAFT . 'tmp/skin_buffer/default/Char' . ($isFemale ? '_female' : '') . '.png';
        $buffer = MCRAFT . 'tmp/skin_buffer/default/Char' . ($mini ? '_Mini' : '') . ($isFemale ? '_female' : '') . '.png';
    } elseif ($name) {
        $skin = MCRAFT . $site_ways['skins'] . $name . ($isFemale ? '_female' : '') . '.png';
        $cloak = MCRAFT . $site_ways['cloaks'] . $name . '.png';
        $buffer = MCRAFT . 'tmp/skin_buffer/' . $name . ($mini ? '_Mini' : '') . '.png';
    } else {
        exit;
    }
    if (file_exists($buffer)) {
        readfile($buffer);
        exit;
    } elseif ($saveBuffer) {
        $image = $mini ? SkinViewer2D::saveHead($buffer, $skin) : SkinViewer2D::savePreview($buffer, $skin, $cloak);
    } else {
        $image = $mini ? SkinViewer2D::createHead($skin) : SkinViewer2D::createPreview($skin, $cloak);
    }
    if ($image) {
        imagepng($image);
    }
}
コード例 #2
0
 public function Rebuild()
 {
     $skin_way = $this->base_dir . $this->fname;
     $preview_way = $this->base_dir . 'preview/' . $this->fname;
     if (!file_exists($skin_way)) {
         $this->Delete();
         vtxtlog('[Rebuild][SkinViewer2D] SPItem ID ' . $this->id . ' not founded - delete');
         return false;
     }
     if (file_exists($preview_way)) {
         unlink($preview_way);
     }
     $skin_scale = SkinViewer2D::isValidSkin($skin_way);
     if (!$skin_scale) {
         $this->Delete();
         vtxtlog('[Rebuild][SkinViewer2D] SPItem ID ' . $this->id . ' wrong skin format - delete');
         return false;
     }
     if (!SkinViewer2D::savePreview($preview_way, $skin_way, false, false, 160)) {
         $this->Delete();
         vtxtlog('[Rebuild][SkinViewer2D] Fail to create preview for SPItem ID ' . $this->id);
         return false;
     }
     if (!file_exists($preview_way)) {
         vtxtlog('[Rebuild][SkinViewer2D] Fail to save preview for SPItem ID ' . $this->id);
     }
     $skin_scale = (int) $skin_scale['scale'];
     getDB()->ask("LOCK TABLES `{$this->db_ratio}` WRITE;");
     getDB()->ask("INSERT INTO `{$this->db_ratio}` (ratio) VALUES ('" . $skin_scale . "') ON DUPLICATE KEY UPDATE `num`= num + 1;");
     getDB()->ask("UNLOCK TABLES;");
     if ($this->ratio != $skin_scale) {
         getDB()->ask("UPDATE `{$this->db}` SET `ratio` = '" . $skin_scale . "' WHERE `id`='" . $this->id . "'");
         $this->ratio = $skin_scale;
     }
 }