AR

Monsters Check-list V1.0 - By Arkilus

Por Arkilus, 08 de mar. de 2007 em Tutoriais de Websites

tibia
otserv
script
12
3k
ArkilusA
08 de março de 2007 às 22:45

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 Junho 7 por Arkilus

RentoR
09 de março de 2007 às 18:45

Rox

Agora nossa vo bota todos que tenho no xml e no mapper editor :D Nosso serv vai ter todos

so falta por os respaw :p

XPauloX
09 de março de 2007 às 18:48

Muito bom,

 

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

ArkilusA
10 de março de 2007 às 04:20
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.

HeNnetH
11 de março de 2007 às 20:26

Aonde vou aranjar as fotos dos monstros?

 

e explica como configurara ;)

 

 

 

Abraços HeNNET :cool:

Editado Março 11 por HeNnet

NostradamusN
11 de março de 2007 às 22:22

@HeNnet

Já é carregado a imagem dos monstros pela lista de monstros do T!biaBR.

 

Só basta modificar essa linha:

 

$sMonsterDir  = 'C:\The Forgotten Server 0.0.83\binary\data\monster';

 

Para a pasta do seu servidor.

ZeZiNhOxDZ
11 de março de 2007 às 22:44

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 Março 11 por ZeZiNhOxD

ArkilusA
12 de março de 2007 às 19:36
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.

HeNnetH
13 de março de 2007 às 21:27

Vlw agora eu consegui.. :)

E fiz umas modificações no design(Adaptei ao do meu site) mas os créditos estão lá..

 

 

Abraços HeNnEt :cool:

LordfireL
13 de março de 2007 às 22:12

hmm...

goatei

só nao entendi

como ele funciona? e pra que?

gostei pq le ta bonito

pra primeira versao

ArkilusA
15 de março de 2007 às 19:44
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.

2 meses depois...
skynagerloasS
13 de maio de 2007 às 11:49

Arkilus,

Alertado em 10%

Burlou filtro de palavras.

 

Abraços.

Editado Maio 13 por Sky Nagerloas