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); } }
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; } }