Ir para conteúdo

Monsters Check-list V1.0 - By Arkilus


Arkilus

Posts Recomendados

Monsters Check-List v1.0 - by Arkilus

 

Como pedido por um colega de equipe, eu escrevi esse script que mostra uma lista de todos os monstros do tibia, destacando os que estão faltando.

 

Você terá que configurá-lo de acordo com sua necessidade, a configuração padrão utiliza a lista de monstros do T!biaBR.

 

v1.0

  • Simple Design
  • Default settings for T!biaBR's page
  • Cache File created at first use, and updated as set
  • List with images

Obs: caso copie direto do fórum, será necessário substituir as partes de [Retirado] pela URL do T!biaBR

 

Enjoy

 

monsterscklistcd9.jpg

 

Download:

PasteLog View: <a href="http://paste.lymas.com.br//?q=4173" target="_blank">http://paste.lymas.com.br//?q=4173</a>

 

<?php
/**
 *  Monsters Checklist
 *  by Arkilus
 *
 *  v1.0 - 08/03/2007
 *
 *  - Please scroll down and fill in
 *  - configuration's variables
 */
?>


<style type="text/css">
body {
	background: #E7E7E7;
}

.cache {
	color: #283485;
	font: 800 13px arial;
	background: #FFE1E1;
	padding: 4px;
	border: 1px ridge #000;
}

table.monsters {
	background: #E8EEFF;
	border: 1px ridge #00095F;
}

.monsters td.yes {
	background: #B4FFBE;
	border: 1px ridge #F1FFF2;
	color: #106000;
}

.monsters td.no {
	background: #FFB4B4;
	border: 1px ridge #FFF1F1;
	color: #BF0808;
}

.mname {
	padding: 3px;
}
</style>


<?php

/* * * *
 * Script Settings
 * * * */

	// URL to the monsters page, it must be any url where all tibia monsters are listed (with images)
	$sURL		 = 'http://[Retirado]/?rs=OpenLink&rst=&rsrnd=1173373384390&rsargs[]=38&rsargs[]=0&rsargs[]=0';

	// Base URL for images
	$sImgBase	 = 'http://[Retirado]/imgs/conteudo/criaturas/';

	// The 'nucleus' of the script, this regexp pattern must cover both the images src and monster name parts
	$sFindPattern = '/criaturas\/(\w+)\.gif"><\/td>\s*<[^<]*<a href="#" onclick="Detalhes\([^>]+><b>([a-z ]+)/i';

	// The file that will be used as cache for the page
	$sFile		= './tbr.txt';

	// Directory where are all monsters files
	$sMonsterDir  = 'C:\The Forgotten Server 0.0.83\binary\data\monster';

	// Minimum time (seconds) to the cache file be updated
	$iCacheTime   = (10 * 24 * 3600);



echo '<base href="'.$sImgBase.'" />';


/* * * *
 * Functions Definition
 * * * */

	/**
	 * Returns a page-string containing formatted-html
	 */
	function getPage() {
		global $sFile, $sURL, $iCacheTime;

		if(!file_exists($sFile) || filemtime($sFile) > time() + $iCacheTime) {
			$oFp = fopen($sFile, 'w+');
			fwrite($oFp, file_get_contents($sURL));
			fclose($oFp);

			echo '<center><span class="cache">CACHE FILE UPDATED</span></center> <br />';
		}

		$sPage = file_get_contents($sFile);
		$sPage = stripslashes($sPage);

		return $sPage;
	}

	/**
	 * Callback for array_walk
	 */
	function ArrayToFName(&$v, $k) {
		$v = strtolower($v);
		$v = preg_replace('/\s+/', '', $v);
	}

	/**
	 * Reads monsters directory and returns as array
	 */
	function getDirMonsters(&$aDirMonsters, $sDir) {
		$oDir = dir($sDir);

		while(($sFile = $oDir->read()) !== false) {
			if(eregi('.xml$', $sFile)) {
				$aDirMonsters[] = str_replace('.xml', '', $sFile);
			}
		}
		array_walk($aDirMonsters, 'ArrayToFName');
	}

	/**
	 * Prints Table-Rows with data from arg-Arrays
	 */
	function printMonsterTable($aPgMts, $aDirMts) {
		global $aMonsterNames, $aMtsImgs;

		$iTR = 0;
		echo '<tr>';
		foreach($aPgMts as $iKey => $sPgMt) {
			if($iTR > 2) {
				echo '</tr><tr>';
				$iTR = 0;
			}

			$bMtIn = in_array($sPgMt, $aDirMts);

			?>
				<td valign="middle" align="center" class="<?=($bMtIn) ? 'yes' : 'no'?>"><img src="<?=$aMtsImgs[$iKey]?>.gif" align="absmiddle" alt="n/f" /> <span class="mname"><?=$aMonsterNames[$iKey]?></td>
				<td valign="middle" align="center" class="<?=($bMtIn) ? 'yes' : 'no'?>"><?=($bMtIn) ? '<span style="color:green">YES' : '<span style="color:red">NO'?></td>
			<?php

			++$iTR;
		}
	}


/* * * *
 * Action
 * * * */
	preg_match_all($sFindPattern, getPage(), $aMatches);

	$aMonsterNames = $aMatches[2];
	array_walk($aMatches[2], 'ArrayToFName');

	$aMtsImgs	 = &$aMatches[1];
	$aMonsters	= &$aMatches[2];
	$aDirMonsters = array();
	getDirMonsters($aDirMonsters, $sMonsterDir);

	echo '<table align="center" cellspacing="3" class="monsters"><tr><th>Monsters Check-List</th></tr>';
	printMonsterTable($aMonsters, $aDirMonsters);

?>


</table>

Editado por Arkilus
Link para o comentário
Compartilhar em outros sites

Muito bom,

 

Da pra coloca a quantidade de bicho que tão on-line?

 

Até daria -só o total-, acontece que não seria muito útil, uma vez que a ideía do script é para uso no desenvolvimento mesmo.

Link para o comentário
Compartilhar em outros sites

Ficou bem legal a lista, o problema é que o xtibia da str_replace no www.t!biabr.com

ai fica [retirado].

Quando copiarem façam a troca de [retirado] por www.t!biabr.com (troque a letra ! pela letra i), ai vai aparecer as imagens

Editado por ZeZiNhOxD
Link para o comentário
Compartilhar em outros sites

Ficou bem legal a lista, o problema é que o xtibia da str_replace no www.t!biabr.com

ai fica [retirado].

Quando copiarem façam a troca de [retirado] por www.t!biabr.com (troque a letra ! pela letra i), ai vai aparecer as imagens

 

Eu avisei disso quando postei o tópico, para evitar isso é só usar os links para downloads ou pegar do pastelog.

Link para o comentário
Compartilhar em outros sites

hmm...

goatei

só nao entendi

como ele funciona? e pra que?

gostei pq le ta bonito

pra primeira versao

 

Esse script captura todos os monstros de uma tabela em um site, que supostamente lista todos os monstros do global.

A partir dessa lista, ele checa com os arquivos da pasta de monstros de seu servidor, e imprime aquela lista do site, deixando em vermelho os montros não encontrados na pasta.

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
×
×
  • Criar Novo...