Ir para conteúdo

Sistema De Achievements No Site! [Gesior]


Piabeta Kun

Posts Recomendados

Vamus ao que entereça!

 

abara seu config/config.php e dentro adicione isso:

 


$config['archez']['achievements'] = array(
	1 => 'Allow Cookies?',
	2 => 'Backpack Tourist',
	3 => 'Bearhugger',
	4 => 'Bone Brother',
	5 => 'Chorister',
	6 => 'Fountain of Life',
	7 => 'Here, Fishy Fishy!',
	8 => 'Honorary Barbarian',
	9 => 'Huntsman',
	10 => 'Just in Time',
	11 => 'Matchmaker',
	12 => 'Nightmare Knight',
	13 => 'Party Animal',
	14 => 'Secret Agent',
	15 => 'Talented Dancer',
	16 => 'Territorial',
	17 => 'Worm Whacker',
	18 => 'Allowance Collector',
	19 => 'Amateur Actor',
	20 => 'Animal Activist',
	21 => 'Beach Tamer',
	22 => 'Blessed!',
	23 => 'Exquisite Taste',
	24 => 'Fireworks in the Sky',
	25 => 'Greenhorn',
	26 => 'Jinx',
	27 => 'Lucid Dreamer',
	28 => 'Mathemagician',
	29 => 'Masquerader',
	30 => 'Ministrel',
	31 => 'Poet Laureate',
	32 => 'Quick as a Turtle',
	33 => 'Sea Scout',
	34 => 'Steampunked',
	35 => 'Superstitios',
	36 => 'The Milkman',
	37 => 'Turncoat',
	38 => 'Vive la Resistance',
	39 => 'Archpostman',
	40 => 'Clay Fighter',
	41 => 'Efreet Ally',
	42 => 'Ghostwisperer',
	43 => 'His True Face',
	44 => 'Ice Sculptor',
	45 => 'King Tibanus Fan',
	46 => 'Marblelous',
	47 => 'Marid Ally',
	48 => 'Passionate Kisser',
	49 => 'Perfect Fool',
	50 => 'Recognised Trader',
	51 => 'Rockstar',
	52 => 'Scrapper',
	53 => 'Vanity',
	54 => 'Wayfarer',
	55 => 'Champion of Chazorai',
	56 => 'Culinary Master',
	57 => 'Explorer',
	58 => 'Follower of Azerus',
	59 => 'Follower of Palimuth',
	60 => 'Friend of the Apes',
	61 => 'Golem in the Gears',
	62 => 'High-Flyer',
	63 => 'Interior Decorator',
	64 => 'Master Thief',
	65 => 'Turncoat',
	66 => 'Potion Addict',
	67 => 'Ruthless',
	68 => 'Ship\'s Kobold',
	69 => 'Top AVIN Agent',
	70 => 'Top CGB Agent',
	71 => 'Top TBI Agent',
	72 => 'Annihilator',
	73 => 'Castlemania',
	74 => 'Elite Hunter',
	75 => 'High Inquisitor',
	76 => 'Jamjam',
	77 => 'Lord of the Elements',
	78 => 'Warlord of Svargrond',
	79 => 'Master of the Nexus',
	80 => 'Razing!',
	81 => 'Dread Lord',
	82 => 'Lord Protector',
	83 => 'Herbicide'

 

agora em character.php procure por isso:

 

[b].$player->getLevel().'</TD></TR>[/b]

 

e em baixo adicione isso:

 

/* Achievements Points */
					$achievementPoints = $SQL->query('SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetch();

					if(!$achievementPoints['sum']) { $achPoints = '0'; } else { $achPoints = $achievementPoints['sum']; }

					if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
							$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Achievement Points:</TD><TD>'.$achPoints.'</TD></TR>';
					/* Achievements Points END*/

 

e agora procure por isso'Premium Account' : 'Free Account';, e abaixo disso $main_content .= '</TABLE>';

 

 

cole isso:

 

/*
							Achievements website script by Archez.
							http://otland.net/members/archez/
							Achievements in-game functions and script by darkhaos.
							http://otland.net/members/darkhaos/
							A person that made this script possible, Chris.
							http://otland.net/members/chris/
							------------------------------------------------------
							Merely scripted for Gesior AAC.
							------------------------------------------------------
					*/

							$achievements = $SQL->query('SELECT `key`, `player_id` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetchAll();

							$main_content .= '</br><table border=0 cellspacing="1" cellpadding="4" width=100%><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class=white><b>Account Achievements</b></td></tr>';

							if(!$achievements)
							{
									$main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are no achievements set to be displayed for this character.</td></tr>';
							}
							else
							{
									$number_of_rows = 0;

									foreach($achievements as $row)
									{
											if(!array_key_exists(($row['key'] - 19999 ), $achievements))
											{
													if($row['key'] - 20000 <= 54) { $grade = '<img src="images/achievements/grade.gif" />'; }
													elseif($row['key'] - 20000 <= 79) { $grade = '<img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }
													elseif($row['key'] - 20000 >= 80) { $grade = ' <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }

													$secret = false;

													if(in_array(($row['key'] - 20000), $config['archez']['secret']))
													{
															$secret = '<img src="images/achievements/secret.gif" />';
													}

													if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; }

													$main_content .= '<tr bgcolor="'.$bgcolor.'"><td width="20%">'.$grade.'</td><td>' . $config['archez']['achievements'][$row['key'] - 20000] . '<span style="float:right;">'.$secret.'</span></td></tr>';

													$number_of_rows++;
											}
									}
							}

							$main_content .= '</table>';

					/* END OF ACHIEVEMENTS */

 

e agora crie uma pasta com o nome achievements na pasta images e salve essa imagens KN627j4lLN.gifPuMz0mVqSG.gif pronto seu sistema de achievements está pronto para o site, e para que apareça no site os achievements dos players basta por como embaiaxo do storage da quest no seguinte exemplo:

 

			doPlayerSendTextMessage(cid,22,"Congratulations! You earned the achievement \"Annihilator\".")
			doCreatureSetStorage(cid, 20072, 5)

 

explicando o que significa o que!

 

			doPlayerSendTextMessage(cid,22,"Congratulations! You earned the achievement \"Annihilator\".")

 

aqui é a mensagem que aparecerá para o player que gahou o achievement, no caso o exmplo dado é da annihilator quest!

 

doCreatureSetStorage(cid, 20072, 5)

 

é a storage do ahievemente + os pontos ganhos com ele, seguido assim: storage: 20072, pontos 5 !!!

 

como eu sei o storage do achievement?

 

simples, aquilo que você colocou no config.php é a configuarção dos storages dos achievemtnes que seguem da seguinte forma!

 

os storages variam de 20001 a 2999, sendo que configurado tem apenas de 20001 a 20083 e os numeros citados em cada achiement (onde esta o nome deles) é o seguiento final pensando assim:

 

20000 + o numero citado no nome do achievement, ou seja, se o achievement annihilator está o numero 72 será esse o storage da quest para ser adiconado: 20072!

 

Resultado

 

0qHyeMTJF.png

 

Creditos

  • darkhaos (criado do script)
  • Chris (colaborador do script)
  • PiabetaMan01 (por trazer ao Xtibia e por fazer funcionar as grades de 3 estrelas)

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

dai vc precisa confirar achievement por achievement, eu costmo fazer os de quest pois sao mais faceis como eu expliquei acima é so add storage a mensagem q ele funfa de boa vc pode até fazer outros achievements pode fazer o q quizer com ele, é muito facil de manipular!

 

tbm muito bom para ots derivados, pois vc tera seus achievements personalizados e etc..

 

e sim funfa em qualquer ot, so precisa configurar pra ganha no servidor q no site aparece normamente o q vc botar!

 

GRato a todos pelo apoio! e seu comentario é muito importante para a aprovaçao do topico!

Link para o comentário
Compartilhar em outros sites

ja tentei de varias formas instalar o sistema mais nada, toda vez que altero no config.php ou character.php da erro.

 

@ edited

 

ja sei porque não pegou, é pelo simples motivo de você ter copiado uma parte de explicação junto ao codigo php eu achei o correto em outro forum que provavelmente o conteudo saiu de la depois mande pm que ajudo na correção.

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

creio que esta equivocada, pois eu fiz esse tuto para outro forum , ou seja ele é 100% feito por mim, e da msma maneira q eu expliquei eu fiz pra instalar no meu, eu usei de um forum gringo e melhorei e postei nos forums br!

Link para o comentário
Compartilhar em outros sites

Copia, pois o codigo seu esta assim

 

/* Achievements Points */
					$achievementPoints = $SQL->query('SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetch();

					if(!$achievementPoints['sum']) { $achPoints = '0'; } else { $achPoints = $achievementPoints['sum']; }

					if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
							$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Achievement Points:</TD><TD>'.$achPoints.'</TD></TR>';
					/* Achievements Points END*/

e agora procure por isso[b]'Premium Account' : 'Free Account';[/b], e abaixo disso [b]$main_content .= '</TABLE>';[/b]

cole isso:

/*
							Achievements website script by Archez.
							http://otland.net/members/archez/
							Achievements in-game functions and script by darkhaos.
							http://otland.net/members/darkhaos/
							A person that made this script possible, Chris.
							http://otland.net/members/chris/
							------------------------------------------------------
							Merely scripted for Gesior AAC.
							------------------------------------------------------
					*/

							$achievements = $SQL->query('SELECT `key`, `player_id` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetchAll();

							$main_content .= '</br><table border=0 cellspacing="1" cellpadding="4" width=100%><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class=white><b>Account Achievements</b></td></tr>';

							if(!$achievements)
							{
									$main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are no achievements set to be displayed for this character.</td></tr>';
							}
							else
							{
									$number_of_rows = 0;

									foreach($achievements as $row)
									{
											if(!array_key_exists(($row['key'] - 19999 ), $achievements))
											{
													if($row['key'] - 20000 <= 54) { $grade = '<img src="images/achievements/grade.gif" />'; }
													elseif($row['key'] - 20000 <= 79) { $grade = '<img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }
													elseif($row['key'] - 20000 >= 80) { $grade = ' <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }

													$secret = false;

													if(in_array(($row['key'] - 20000), $config['archez']['secret']))
													{
															$secret = '<img src="images/achievements/secret.gif" />';
													}

													if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; }

													$main_content .= '<tr bgcolor="'.$bgcolor.'"><td width="20%">'.$grade.'</td><td>' . $config['archez']['achievements'][$row['key'] - 20000] . '<span style="float:right;">'.$secret.'</span></td></tr>';

													$number_of_rows++;
											}
									}
							}

							$main_content .= '</table>';

					/* END OF ACHIEVEMENTS */

 

e o certo seria :

 

agora em character.php procure por isso:

 

.$player->getLevel().'</TD></TR>

 

e em baixo adicione isso:

 

/* Achievements Points */
					$achievementPoints = $SQL->query('SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetch();

					if(!$achievementPoints['sum']) { $achPoints = '0'; } else { $achPoints = $achievementPoints['sum']; }

					if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
							$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Achievement Points:</TD><TD>'.$achPoints.'</TD></TR>';
					/* Achievements Points END*/

 

e agora procure por isso'Premium Account' : 'Free Account';, e abaixo disso $main_content .= '</TABLE>';

 

cole isso:

 

/*
							Achievements website script by Archez.
							http://otland.net/members/archez/
							Achievements in-game functions and script by darkhaos.
							http://otland.net/members/darkhaos/
							A person that made this script possible, Chris.
							http://otland.net/members/chris/
							------------------------------------------------------
							Merely scripted for Gesior AAC.
							------------------------------------------------------
					*/

							$achievements = $SQL->query('SELECT `key`, `player_id` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetchAll();

							$main_content .= '</br><table border=0 cellspacing="1" cellpadding="4" width=100%><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class=white><b>Account Achievements</b></td></tr>';

							if(!$achievements)
							{
									$main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are no achievements set to be displayed for this character.</td></tr>';
							}
							else
							{
									$number_of_rows = 0;

									foreach($achievements as $row)
									{
											if(!array_key_exists(($row['key'] - 19999 ), $achievements))
											{
													if($row['key'] - 20000 <= 54) { $grade = '<img src="images/achievements/grade.gif" />'; }
													elseif($row['key'] - 20000 <= 79) { $grade = '<img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }
													elseif($row['key'] - 20000 >= 80) { $grade = ' <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" /> <img src="images/achievements/grade.gif" />'; }

													$secret = false;

													if(in_array(($row['key'] - 20000), $config['archez']['secret']))
													{
															$secret = '<img src="images/achievements/secret.gif" />';
													}

													if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; }

													$main_content .= '<tr bgcolor="'.$bgcolor.'"><td width="20%">'.$grade.'</td><td>' . $config['archez']['achievements'][$row['key'] - 20000] . '<span style="float:right;">'.$secret.'</span></td></tr>';

													$number_of_rows++;
											}
									}
							}

							$main_content .= '</table>';

					/* END OF ACHIEVEMENTS */

 

 

 

OBS: FICOU UNS ERROS AI POR CAUSA QUE COPIEI DIREITO LA DE CIMA, MAIS DEU PRA ENTENDER AONDE VOCÊ ERROU, SE QUISER MANDE PM QUE TE MANDO O LINK DO TOPICO CERTO EM OUTRO FORUM.

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

bem ane deixa eu te contar uma coisa esse script eu peguei do meu servidor dedicado para fazer o tuto , a unica coisa que eu relembrei no forum gringo foi o alvo de busca para poder coloca-lo no character.php, mais msmo assim vou dar uma revisada!

 

EDIT

 

Anne me desculpe pois eu revisei e realmente esqueci de separar uma coisa, eu copiei o meu outro tuto no outro forum e esqueci de separar, obrigado pela observaçao agora está correto ! +rep proce!

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

  • 5 weeks later...

Aprovado, Parabéns, Continue Assim!

Mostrou um bom conteúdo, que, com certeza, deverá ajudar muita gente.

 

Movido para a Seção Correta!

 

Aprovado, Parabéns, Continue Assim!

Mostrou um bom conteúdo, que, com certeza, deverá ajudar muita gente.

 

Movido para a Seção Correta!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...